Files
cc-web/.trellis/tasks/10-10-snapshot-history-pagination/task_plan.md
shiyue 69b6db0f5b 修复完整会话历史与长气泡交互并更新 CentOS 7 发布包
提交当前工作区全部源码、回归脚本、任务记录及重新构建的 Bun baseline 发布包。发布单文件 MCP 初始化及前端资源一致性验证通过。
2026-10-10 23:40:16 +08:00

2.5 KiB
Raw Blame History

完整历史持久化修复计划

范围

根据用户最新要求,将最小分页修复扩大为 cc-web 自身可靠保存完整历史。外部原始日志仅作旧历史补充,不能作为新对话完整记录的唯一来源。本轮规划独立保存,避免覆盖旧任务文档。

步骤

  1. 定位快照裁剪与历史读取根因 — completed
  2. 确定完整历史保存设计与失败保护 — completed
  3. 补充独立持久化及分页失败回归 — completed
  4. 实现完整归档并修复分页与提示 — completed
  5. 验证重启、长对话与外部记录缺失场景 — completed
  6. 核对部署边界并交付恢复结论 — completed

决策

  • 完整档案与有限工作快照分离,完整档案成功后才允许更新受限快照。
  • 采用完整会话字段的独立原子档案作为持久提交点;归档已成功而缓存快照失败时仍按已提交处理,重启优先读归档。
  • 精确保存可信完整数组以支持清空和删除;来源/修订识别用于阻止旧短预览覆盖完整档案。
  • 原始日志合并仍需确认边界;原始日志缺失不阻断已经保存的历史读取。
  • 行为测试覆盖持久化后重开、超过条数和文本限额、重复及失败保护,避免仅修改提示文字。
  • 后端与前端可并行,写入文件边界互不冲突,整合后由独立子代理审查。

错误记录

  • 首轮误将目标当作本机会话;用户纠正后不再操作本机数据。
  • 首次生成文档补丁误判 JSONL 种子内容,读取真实内容后重新生成。
  • 旧方案仅修分页,没有保存完整历史;用户澄清及独立审查后扩大范围,旧计划不再视为完成目标。
  • codebase-memory 后续检索返回 Transport closed;已完成关键调用链定位,剩余读取降级为 FastCtx 本地工具,不重启服务。
  • 首次隔离重启浏览器检查漏了重新登录,停在登录页;补入重新登录和选择会话后验收通过,未将夹具失败误判为历史丢失。
  • 首轮全量回归在任务追踪开启失败;日志证明 task-board-service 的 cloneJson 丢失可信加载身份,saveSession 返回 history_untrusted_source。改为服务端可信重载后仅保存任务元数据,继续保留短预览防覆盖。
  • 完成/恢复专项的两条读取失败夹具最初用跨 harness 桩函数注入 null,恢复补交因可信来源身份丢失被拒,形成假失败;改为“真实损坏档案 → 完成保护 → 修复档案 → 同实例恢复补交”后 15/15 通过。