fix: preserve replies after session recovery

This commit is contained in:
john
2026-07-27 19:59:09 +08:00
parent 17c59fde71
commit d1be5d9e2a
3 changed files with 87 additions and 0 deletions
@@ -211,6 +211,19 @@ runtime 也必须和发布 manifest 的 git commit 对齐。
- 源码静态检查:`npm run verify:chat-finish-sync`
- 文档:本文件
### 恢复会话快照:禁止用旧 DB 历史覆盖新回复
视觉上下文不兼容等故障会把 Agent Run 旋转到新 Goose session。新 session
可能只包含最后一条数据库已同步的用户消息,以及旋转后新生成的助手回复和后续追问;
此时数据库旧历史条数通常更多。
- `conversation-repair.mjs` 发现 Goose 与 DB 存在共同消息 ID 时,必须以该 ID
为锚点合并:共享历史采用 DB 内容,同时保留 Goose 独有的新回复、后续追问和修改结果
- 只有双方没有共同消息 ID,且 Goose 确实是空占位/残缺记录时,才允许用 DB 历史整体修复
- Portal 保存 session snapshot 前不得把“当前同步计数”与“旧 messages_json”组合成伪最新快照
守卫:`conversation-repair.test.mjs` 中的 session recovery fresh-tail 用例。
---
## 3. 页面需求澄清:禁止误报“未生成 public HTML”