Add true in-place session restore: same session ID, same worktree, same metadata — optionally resuming the Claude Code conversation via --resume. Core changes: - Add TERMINAL_STATUSES, TERMINAL_ACTIVITIES, NON_RESTORABLE_STATUSES sets and isTerminalSession/isRestorable helpers to types.ts - Add SessionNotRestorableError and WorkspaceMissingError error classes - Add restore() to SessionManager with 9-step flow: find metadata → validate restorability → check/recreate workspace → get restore or launch command → create runtime → update metadata - Add restoredAt field to Session and SessionMetadata Plugin extensions: - workspace-worktree: exists() + restore() (git worktree prune + re-add) - workspace-clone: exists() + restore() (git clone + checkout) - scm-github: branchExists() via git rev-parse - agent-claude-code: getRestoreCommand() finds latest JSONL session file and builds claude --resume command CLI + Web: - Add `ao session restore <id>` subcommand - Web restore API route uses sessionManager.restore() instead of spawn() - SessionCard uses centralized TERMINAL_STATUSES/TERMINAL_ACTIVITIES - Web types re-export core constants with sync tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| e2e | ||
| screenshots | ||
| server | ||
| src | ||
| .env.local.example | ||
| .gitignore | ||
| next-env.d.ts | ||
| next.config.js | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json | ||
| vitest.config.ts | ||