Files
orca/tests
Brennan Benson 735b9860f1 Merge main into the structured chat core branch
Resolves 14 conflicts. Four of them were files main SPLIT since the branch
diverged, where taking our side would have compiled green with the change
landing in dead code, so each was re-homed into the module that now owns it:

- worktrees.ts (3.2k lines -> a barrel): the agent-session visible-tab-type
  hunk moved to worktrees/listing/worktree-catalog-visibility.ts.
- worktree-activation.ts (605 lines removed): the activation gate that
  supersedes resumeSleepingAgentSessionsForWorktree was ported onto both of
  main's remaining call sites.
- App.tsx (2.7k lines removed): the two startup steps and the restoration-ready
  flag moved into app-shell/use-app-startup-hydration.ts, the sync hook into
  use-app-shell-services.ts, and the status bridge into AppBackgroundServices.
  The degraded-boot path releases the same flag so a failed startup still
  unblocks the gate.
- useTabGroupWorkspaceModel.ts (split into five hooks): the agent-session
  projection, close branches, and activation command were re-homed per hook.
- Three deleted test files (#14728 max-lines split) had their real assertions
  moved into the split files that replaced them, not resurrected.

Behavioural resolutions worth naming:
- Terminal.tsx keeps our activation gate but folds in main's
  activeWorktreeHasTerminalState guard, so a gated workspace still refuses to
  re-seed a terminal the user deliberately closed.
- The orchestration mailbox pointer moved into orchestration/mailbox-pointer-*,
  which dropped our agent-session lease enforcement on the pointer -> Enter
  span. Re-homed onto writeOrchestrationPointerPty: the admission is snapshotted
  with the pointer text and re-asserted before the submit, so a session that
  re-leases the pty during the 500ms pause no longer receives the Enter.
- dispatcher.ts widens our Pick to carry main's authenticatedCallerFingerprint
  rather than dropping either side.

Verification: three typechecks clean; 54,7xx tests pass. The IME preedit pair
fails identically on pristine main and is not from this merge.
2026-08-16 22:53:16 -07:00
..