Both sides added to each of these, so the merged file cleared its cap. Split
rather than raise the cap.
- `agent-status-types.ts` -> `agent-subagent-snapshot.ts` takes the subagent
roster: its two types, the per-entry cap, and the structural equality stores
use to skip fanout.
- `stable-logical-rpc-client.ts` -> `logical-client-cutover-error.ts` takes the
cutover error. Several modules that retry on it are imported BY the client, so
the error belonging to the client was already the wrong way round.
- `tui-agent-startup.test.ts` -> `tui-agent-startup-hermes.test.ts`. Hermes is
the one agent whose launch Orca rewrites token by token; the two shell-script
decoders both files need move to a `.test-fixture`.
- the mobile session screen -> `DiffLineRow.tsx`. The row owns a whole
comment-draft interaction and reads `styles` from a module already split out.
Also two things the root typecheck could not see, because it does not cover
mobile and because the lane's import predated a main-side split:
- `registerActiveFailure` still assigned the raw `consecutiveFailures` field
main replaced with `RelayRecoveryFailureCount`. A structured reconnect signal
recomputes the streak rather than adding to it, so the counter gains
`recomputeTo` and the assignment routes through it — the recovery-attempt
reporter sees the change, which a bare field write did not do.
- the typing indicator imported `isCommandMarkerId` from `native-chat-pending`
after main moved it to `native-chat-command-marker`.