feat: builtin agent session resume via deterministic message reconstruction #427
Reference in New Issue
Block a user
Delete Branch "feat/426-builtin-session-resume"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Builtin agent now reconstructs multi-turn moderator↔agent conversation history from the CAS chain, enabling session resume on role re-entry.
Closes #426
Why
Design
Messages are a pure function of the CAS chain — zero extra persistence needed. Stable prefix → LLM prompt cache hits on re-entry.
Changes
StepRecordaddsedgePrompt: string(backward compat: defaults to empty)writeStepNodepersistsctx.edgePromptinto CASbuildBuiltinMessages(ctx)reconstructs full moderator↔agent dialogueLGTM ✅ 设计干净——messages 是 CAS chain 的纯函数,zero extra persistence,stable prefix 保证 prompt cache hit。测试覆盖充分。
⚠️ 一个点值得确认
STEP_NODE_SCHEMA加了edgePrompt且additionalProperties: false。如果edgePrompt在required数组里,旧的 CAS step node 在 schema validation 时会失败。代码里用了step.edgePrompt ?? ""做运行时兜底,但如果 store 层做了 schema 校验就会挡住。确认一下edgePrompt不在required里,或者旧 node 不走 schema validation。不阻塞合入。