The fork test asked the model to call subagent with fork: true and no
agent, which the tool schema has never supported - it only passed when a
model improvised. It now spawns a real fork-mode agent (test-fork with
session-mode: fork).
The harness default model is now openai-codex/gpt-5.6-luna. The previous
active-session-model fallback broke under pi -ne, where extension-registered
providers do not resolve.
Subagents run in unfocused Orca terminal tabs in the current worktree,
selected automatically between Herdr, Orca (ORCA_TERMINAL_HANDLE), and tmux.
- Tabs are created against ORCA_WORKTREE_ID since pi's cwd may live outside
any Orca worktree, and start in pi's cwd via the startup command
- createSurface blocks on two-phase readiness (startup marker, then a
verified probe echo) because input typed during shell init is swallowed
by the initial shell's exec or flushed during bash startup
- terminal read reports ok with status exited for closed terminals, so
reads throw on non-running status to match herdr/tmux semantics
- Integration harness gains Orca focus support via terminal switch and
visual-layout active-pane lookup
Removed the cmux, zellij, and wezterm backends, the MuxBackend type, the
PI_SUBAGENT_MUX override, and dead exports (renameCurrentTab, renameWorkspace,
sendEscape, isFishShell, exitStatusVar). The ten-function surface API used by
index.ts is unchanged. Integration harness and tests are tmux-only; README and
package.json now state tmux-only with a fork note pointing multi-multiplexer
users at the upstream project.