assist v0.557
Codex session history and resume
Codex sessions could be started but not continued. Restarting the daemon, or closing and reopening a card, lost the conversation — which made Codex fine for one-shot work and useless for anything I wanted to come back to.
The fix was to give Codex its own respawn path rather than bending Claude’s. bindCodexSession records the Codex session id when it appears, codexRespawnPlan builds the resume invocation from it, and restoreCodexSession brings the session back on daemon restart. restoreInteractiveSession now dispatches through interactiveHarnessRespawn to whichever harness owns the session, with Claude’s own path split out into resumeViaClaude — so the two harnesses no longer share a function that quietly assumed one of them.
The mechanics are written up in docs/codex.md, because Codex identifies its sessions differently enough from Claude that I’d have to work it out again otherwise.