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

34 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 完整历史持久化修复计划
## 范围
根据用户最新要求,将最小分页修复扩大为 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 通过。