Skip to content

refactor(app): remove the vestigial mode toggle; client is the only mode (RIG-3111) - #828

Closed
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-native/rig-3111-remove-mode-toggle
Closed

refactor(app): remove the vestigial mode toggle; client is the only mode (RIG-3111)#828
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-native/rig-3111-remove-mode-toggle

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

Embedded mode was retired in RIG-2554, so the app no longer supervises a stack and client is the only mode; the mode-selection machinery had become dead weight.

Go side: the Mode type, ModeClient const, String() method, and modeStr* consts are deleted. Config is now {ServerURL, CACert}. Parse drops the mode switch and calls parseClient directly after the unknown-key check.

The mode app.toml key is removed entirely (Option B, hard-remove, no compat shim): with the field gone from the TOML struct, a stale mode = "client" line is now an ordinary unknown-key rejection that names the offending key legibly — that IS the migration message.

UI side: the window.__COMPASS_MODE__ global is KEPT — it still distinguishes the shell-from-browser boot path (shellMode() === "client" picks the native boot). Only its type union is narrowed from "embedded" | "client" to "client" and the dead 'embedded' prose is removed.

Spec-impact: supersedes compass-native-client-only design §A3 'sanctioned residue' (the mode="embedded" legible-rejection arm) — the mode key is removed entirely per Matt (RIG-3111).
Refs RIG-3111
Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Sep 1, 2026

Copy link
Copy Markdown

RIG-3111

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-native-rig-3111-remo.compass-eng-docs.pages.dev

Deployed from compass-native/rig-3111-remove-mode-toggle at 6b4a7ca.

…ode (RIG-3111)

Embedded mode was retired in RIG-2554, so the app no longer supervises a stack and `client` is the only mode; the mode-selection machinery had become dead weight.

Go side: the `Mode` type, `ModeClient` const, `String()` method, and `modeStr*` consts are deleted. `Config` is now `{ServerURL, CACert}`. `Parse` drops the mode switch and calls `parseClient` directly after the unknown-key check.

The `mode` app.toml key is removed entirely (Option B, hard-remove, no compat shim): with the field gone from the TOML struct, a stale `mode = "client"` line is now an ordinary unknown-key rejection that names the offending key legibly — that IS the migration message.

UI side: the `window.__COMPASS_MODE__` global is KEPT — it still distinguishes the shell-from-browser boot path (`shellMode() === "client"` picks the native boot). Only its type union is narrowed from `"embedded" | "client"` to `"client"` and the dead 'embedded' prose is removed.

Spec-impact: supersedes compass-native-client-only design §A3 'sanctioned residue' (the mode="embedded" legible-rejection arm) — the mode key is removed entirely per Matt (RIG-3111).
Refs RIG-3111
Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass-native/rig-3111-remove-mode-toggle branch from 7a1e91c to 6b4a7ca Compare September 1, 2026 03:14
@rigel-mintaka
rigel-mintaka marked this pull request as ready for review September 1, 2026 03:17
@rigel-mintaka

Copy link
Copy Markdown
Contributor Author

Withdrawing: reversing course on mode removal. Per discussion with compass-obs, we're supporting BOTH podman and microVM runners going forward, which means embedded app mode stays (and needs finishing for macOS). RIG-3111 reopened/repurposed to track that work instead. This removal PR is superseded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant