@@ -33,7 +33,7 @@ This document is the canonical implementation plan for shipping CodexMonitor on
3333- Remote provider settings baseline is implemented:
3434 - ` remoteBackendProvider ` : ` "tcp" | "orbit" `
3535 - ` remoteBackendHost ` , ` remoteBackendToken `
36- - ` orbitDeploymentMode ` , ` orbitWsUrl ` , ` orbitAuthUrl `
36+ - ` orbitWsUrl ` , ` orbitAuthUrl `
3737 - ` orbitRunnerName ` , ` orbitAutoStartRunner `
3838 - ` orbitUseAccess ` , ` orbitAccessClientId ` , ` orbitAccessClientSecretRef `
3939- Orbit remote operations are implemented in app and daemon wiring via shared core:
@@ -45,7 +45,7 @@ This document is the canonical implementation plan for shipping CodexMonitor on
4545 - ` orbit_runner_stop `
4646 - ` orbit_runner_status `
4747- Settings UI now includes Orbit provider setup/actions in ` SettingsView ` :
48- - deployment mode, URLs, runner name, access fields, connect/sign-in/sign-out, runner start/stop/status
48+ - URLs, runner name, access fields, connect/sign-in/sign-out, runner start/stop/status
4949 - inline device-code polling flow wired to ` orbit_sign_in_poll `
5050- Remote notification forwarding currently handles only:
5151 - ` app-server-event `
@@ -73,7 +73,7 @@ This document is the canonical implementation plan for shipping CodexMonitor on
73733 . Orbit Cloud Services
7474- Auth service (passkey + JWT/session).
7575- Orbit relay (Worker + Durable Object routing + event persistence endpoint).
76- - Optional hosted deployment path or self-host deployment path.
76+ - User-owned self-host deployment path only .
7777
7878## Canonical Protocol Choice
7979
@@ -92,19 +92,9 @@ This document is the canonical implementation plan for shipping CodexMonitor on
92927 . Orbit relays results and notifications back to subscribed iOS clients.
93938 . On reconnect, iOS reloads state from thread resume + stored events endpoint.
9494
95- ## Orbit Deployment Modes
95+ ## Orbit Deployment Model
9696
97- ## Mode A (Recommended): Hosted Orbit
98-
99- Best setup UX for most users.
100-
101- - User does not deploy Cloudflare services manually.
102- - User authenticates in app, pairs device, and connects.
103- - CodexMonitor stores only required client credentials/tokens in secure storage.
104-
105- ## Mode B: Self-Hosted Orbit
106-
107- Advanced setup for users who want full control.
97+ ## Self-Hosted Orbit Only
10898
10999- User deploys Orbit/Auth workers and D1 with Wrangler.
110100- User provides Orbit/Auth endpoints in Settings.
@@ -147,7 +137,6 @@ Implemented baseline fields:
147137- ` remoteBackendProvider ` : ` "tcp" | "orbit" `
148138- ` remoteBackendHost `
149139- ` remoteBackendToken `
150- - ` orbitDeploymentMode `
151140- ` orbitWsUrl `
152141- ` orbitAuthUrl `
153142- ` orbitRunnerName `
@@ -158,7 +147,7 @@ Implemented baseline fields:
158147
159148Planned next (not yet implemented in settings model):
160149
161- - deployment/auth/pairing metadata required for full hosted/ self-host Orbit UX
150+ - deployment/auth/pairing metadata required for full self-host Orbit UX
162151- secure-storage integration for secret material lifecycle (set/reset/rotation)
163152
164153Keep secrets out of plain ` settings.json ` where possible.
@@ -260,11 +249,10 @@ Update `src/features/settings/components/SettingsView.tsx` to add an Orbit secti
260249Required controls:
261250
262251- Provider selector (` TCP daemon ` / ` Orbit ` )
263- - Deployment mode selector (` Hosted ` / ` Self-Hosted ` )
264- - Orbit WS URL input (self-host only)
265- - Orbit Auth URL input (self-host only)
252+ - Orbit WS URL input
253+ - Orbit Auth URL input
266254- Runner name input
267- - Access auth toggle + client id input + secret set/reset (self-host optional)
255+ - Access auth toggle + client id input + secret set/reset (optional)
268256- ` Connect test ` button
269257- ` Sign In ` / ` Sign Out ` actions
270258- ` Start Runner ` / ` Stop Runner ` buttons
@@ -276,7 +264,7 @@ Required controls:
276264Current implementation status:
277265
278266- Implemented now:
279- - Provider selector, deployment mode selector
267+ - Provider selector
280268 - Orbit WS/Auth URL inputs
281269 - Runner name input
282270 - Access toggle + client id/secret ref fields
@@ -290,7 +278,6 @@ Current implementation status:
290278
291279UX behavior:
292280
293- - Hide manual endpoint fields in hosted mode.
294281- Disable invalid combinations.
295282- Show clear actionable errors (auth failed, runner offline, endpoint invalid, token expired).
296283- Persist non-secret fields immediately.
@@ -299,7 +286,7 @@ UX behavior:
299286## iOS client UX
300287
301288- First launch setup:
302- - ` Sign In ` (hosted) or endpoint-aware sign-in (self-host)
289+ - endpoint-aware sign-in (self-host)
303290 - ` Scan QR ` / ` Enter pair code `
304291 - Recent sessions
305292- Runtime status:
@@ -312,35 +299,13 @@ UX behavior:
312299
313300## User Setup Flows
314301
315- ## Hosted Orbit (default)
316-
317- Desktop setup:
318-
319- 1 . Open CodexMonitor Settings.
320- 2 . Set ` Backend Mode = Remote ` , ` Provider = Orbit ` , ` Mode = Hosted ` .
321- 3 . Click ` Sign In ` and complete auth.
322- 4 . Click ` Start Runner ` .
323- 5 . Click ` Show QR ` (or ` Copy Pair Code ` ).
324-
325- Mobile setup:
326-
327- 1 . Launch iOS app.
328- 2 . Sign in.
329- 3 . Scan QR (or enter pair code).
330- 4 . App stores credentials in Keychain and auto-connects.
331-
332- User-provided information:
333-
334- - No manual URL/session entry required.
335- - Only account login + pair action.
336-
337302## Self-Hosted Orbit
338303
339304Desktop setup:
340305
3413061 . Deploy Orbit/Auth services to Cloudflare.
3423072 . Open CodexMonitor Settings.
343- 3 . Set ` Backend Mode = Remote ` , ` Provider = Orbit ` , ` Mode = Self-Hosted ` .
308+ 3 . Set ` Backend Mode = Remote ` , ` Provider = Orbit ` .
3443094 . Enter ` Orbit WS URL ` and ` Orbit Auth URL ` .
3453105 . Configure optional Access credentials.
3463116 . Sign in and start runner.
@@ -511,7 +476,7 @@ cargo test
511476## Implementation Milestones
512477
5134781 . Milestone A: iOS compile baseline + mobile-safe stubs.
514- 2 . Milestone B: Orbit integration baseline (hosted + self-host config paths ).
479+ 2 . Milestone B: Orbit integration baseline (self-host config path ).
5154803 . Milestone C: ` remote_backend ` transport refactor + Orbit WS transport + runner Orbit mode.
5164814 . Milestone D: daemon parity closure for mobile scope (excluding terminal/dictation).
5174825 . Milestone E: Settings UX/service manager + pairing UX.
@@ -521,7 +486,7 @@ cargo test
521486
522487- iOS app can fully control a macOS runner via Orbit bridge.
523488- Remote feature parity with desktop local mode for supported workflows.
524- - macOS users can configure Orbit from Settings without terminal steps in hosted mode .
489+ - macOS users can configure Orbit from Settings using self- hosted Orbit endpoints .
525490- Runner can be started/stopped/auto-started from app.
526491- Reconnect/resync is robust and observable.
527492- Build/install flow is documented and reproducible.
0 commit comments