Commit graph

5 commits

Author SHA1 Message Date
yinjialu
8b3e5039e1 docs(spec): bump active-agent epoch on foreign-agent boundary retry
Generated-By: looper 0.9.2 (runner=fixer, agent=claude-code)
2026-05-31 16:28:03 +08:00
yinjialu
35d7701d0c docs(spec): scope resume epoch per-agent, add same-runtime guard
Address review on the Claude session-resume spec:

- Make the live history epoch agent-scoped via a new
  conversation_agent_epoch table keyed on (conversationId, agentId)
  instead of a conversation-wide conversations.history_epoch column, so
  editing a Codex-only turn no longer invalidates Claude's pinned
  session. Update Design Decision #3, pseudocode, change scope, web bump
  bullet, and the epoch-guard test case.
- Persist a runtimeId runtime-identity fingerprint alongside the session
  pointer and add a same-runtime guard to resolveResumeDecision(), the
  true OD analog of multica's "same runtime" guard, so a mid-conversation
  bin/fork swap (e.g. openclaude) falls back to a transcript spawn
  instead of resuming a foreign session. Add the matching test case.

Generated-By: looper 0.9.2 (runner=fixer, agent=claude-code)
2026-05-31 16:18:37 +08:00
yinjialu
911fa8fbb8 docs(spec): define live history-epoch store and work-dir resume guard
Specify conversations.history_epoch as the live epoch source read at run
start, distinct from the pinned conversation_agent_session.historyEpoch, so
resolveResumeDecision has a defined currentHistoryEpoch. Make workDir an
explicit cwd-scope resume guard (pseudocode check, Architecture Overview, and
a Test Strategy case) rather than write-only state.

Generated-By: looper 0.9.2 (runner=fixer, agent=claude-code)
2026-05-31 15:48:00 +08:00
yinjialu
278e7ebbcf docs(spec): couple transcript-skip to per-run resume decision
Address review: keying skipTranscript on the static resumesSessionViaCli
flag would skip the transcript on guard-fail turns (force-fresh, history
edit, no --resume capability) even though --resume is omitted, producing
a cold spawn with neither resume nor history and breaking the
non-regression guarantee. Derive both --resume and skipTranscript from
the single per-run resumeSessionId; add supportsSessionResume capability
distinct from the per-turn decision; and assert full-transcript presence
in every guard-fail test.
2026-05-29 17:53:59 +08:00
yinjialu
fb18bcd055 docs(spec): propose Claude CLI session resume
Add a change proposal for an opt-in, Claude-first, best-effort session
resume path that passes --resume <session_id> and sends only the latest
turn on qualifying follow-ups, falling back to the full-transcript spawn
whenever a guard fails. Borrows multica's resume + runtime-match /
force-fresh / poisoned-session guards and adds an OD-specific history
epoch guard for editable history.

Spec only; implementation lands in follow-up PRs per the plan.
2026-05-29 17:05:46 +08:00