Follow-ups from the #1013 parity sweep (surfaces). These are not regressions against a working feature in the sense of the two MAJORs, which are fixed on the PR, but each is a visible change the unified stage makes more common.
- After a restart, the phone lists far fewer agents. Boot now starts a process only for the focused lane's agent (
sessionOwnership.ts:117-131); main started every tile. The phone lists only agents with a running process (SessionFeedSource.ts:92-133, RemoteServer.ts:938-960), and it has no way to wake one (RemoteServer.ts:771-786). A user with 9 grid panes restarts and sees 1 agent on the phone. Either the phone lists hibernated agents and can wake one, or the narrower boot is documented as a phone-visible change.
- A goal loop running on a pooled agent is invisible.
GoalLoopPane is mounted only by TileTree.tsx, and the index has no loop indicator. Main's classic Dispatch had the same gap, but new agents now land in the pool (orchestration children always do, plan §9.2). The index row should show that a loop is running, and allow stopping it.
- Dictation with an empty focused lane goes to another lane's composer. No leaf mounts in an empty lane, so the hotkey falls back to the last focused composer (
dictationHotkeyRegistry.ts:218-228). Clear Lane (⌥⌫) makes this easy to reach.
- No phone test uses a v3 workspace file.
src/main/remote/workspaceProjection.test.ts:53-64 builds only v2 fixtures.
Each fix needs a fail-first test through the real entry point. The sanitized live workspace in testing/fixtures/workspace-v2/ is the recorded input.
Follow-ups from the #1013 parity sweep (surfaces). These are not regressions against a working feature in the sense of the two MAJORs, which are fixed on the PR, but each is a visible change the unified stage makes more common.
sessionOwnership.ts:117-131); main started every tile. The phone lists only agents with a running process (SessionFeedSource.ts:92-133,RemoteServer.ts:938-960), and it has no way to wake one (RemoteServer.ts:771-786). A user with 9 grid panes restarts and sees 1 agent on the phone. Either the phone lists hibernated agents and can wake one, or the narrower boot is documented as a phone-visible change.GoalLoopPaneis mounted only byTileTree.tsx, and the index has no loop indicator. Main's classic Dispatch had the same gap, but new agents now land in the pool (orchestration children always do, plan §9.2). The index row should show that a loop is running, and allow stopping it.dictationHotkeyRegistry.ts:218-228). Clear Lane (⌥⌫) makes this easy to reach.src/main/remote/workspaceProjection.test.ts:53-64builds only v2 fixtures.Each fix needs a fail-first test through the real entry point. The sanitized live workspace in
testing/fixtures/workspace-v2/is the recorded input.