2.5 KiB
2.5 KiB
完整历史持久化修复计划
范围
根据用户最新要求,将最小分页修复扩大为 cc-web 自身可靠保存完整历史。外部原始日志仅作旧历史补充,不能作为新对话完整记录的唯一来源。本轮规划独立保存,避免覆盖旧任务文档。
步骤
- 定位快照裁剪与历史读取根因 — completed
- 确定完整历史保存设计与失败保护 — completed
- 补充独立持久化及分页失败回归 — completed
- 实现完整归档并修复分页与提示 — completed
- 验证重启、长对话与外部记录缺失场景 — completed
- 核对部署边界并交付恢复结论 — completed
决策
- 完整档案与有限工作快照分离,完整档案成功后才允许更新受限快照。
- 采用完整会话字段的独立原子档案作为持久提交点;归档已成功而缓存快照失败时仍按已提交处理,重启优先读归档。
- 精确保存可信完整数组以支持清空和删除;来源/修订识别用于阻止旧短预览覆盖完整档案。
- 原始日志合并仍需确认边界;原始日志缺失不阻断已经保存的历史读取。
- 行为测试覆盖持久化后重开、超过条数和文本限额、重复及失败保护,避免仅修改提示文字。
- 后端与前端可并行,写入文件边界互不冲突,整合后由独立子代理审查。
错误记录
- 首轮误将目标当作本机会话;用户纠正后不再操作本机数据。
- 首次生成文档补丁误判 JSONL 种子内容,读取真实内容后重新生成。
- 旧方案仅修分页,没有保存完整历史;用户澄清及独立审查后扩大范围,旧计划不再视为完成目标。
- codebase-memory 后续检索返回 Transport closed;已完成关键调用链定位,剩余读取降级为 FastCtx 本地工具,不重启服务。
- 首次隔离重启浏览器检查漏了重新登录,停在登录页;补入重新登录和选择会话后验收通过,未将夹具失败误判为历史丢失。
- 首轮全量回归在任务追踪开启失败;日志证明 task-board-service 的 cloneJson 丢失可信加载身份,saveSession 返回 history_untrusted_source。改为服务端可信重载后仅保存任务元数据,继续保留短预览防覆盖。
- 完成/恢复专项的两条读取失败夹具最初用跨 harness 桩函数注入 null,恢复补交因可信来源身份丢失被拒,形成假失败;改为“真实损坏档案 → 完成保护 → 修复档案 → 同实例恢复补交”后 15/15 通过。