Files
cc-web/.planning/codex-rollout-history-merge/progress.md

39 lines
4.7 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.

# 执行进度
- 2026-09-20:建立独立计划目录,确认现有未提交改动并完成 codebase-memory 索引检查。
- 2026-09-20:服务端新增稳定消息 ID、快照基线元数据和保守 native 前缀合并;`session_info`、`resume_session_result`、`session_history_chunk` 统一读取 resolver。
- 2026-09-20:rollout 解析按 `task_started` / `turn_context` / 完成事件聚合同一 turn,保留 function/custom tool,过滤跨对话内部 user 输入。
- 2026-09-20:前端缓存、DOM、重连和实时消息按稳定键去重,普通用户消息把本地 ID 作为 `clientMessageId` 发给服务端。
- 2026-09-20:通过 `node --check`、完整 `npm run regression`、`history-recall`、`session-switch-race`、既有单测和 `git diff --check`。
- 2026-09-21:收紧 native 合并,仅首条稳定标识/完整时间戳和内容摘要边界可信;废止数值基线切 native,跨线程和分段 turn 保守回退。
- 2026-09-21:新增结构化截断元数据、修正消息名额及基线覆盖;服务端新增 idle 状态的预览/备份/原子迁移入口,脚本默认预览。
- 2026-09-21:用户确认目标旧会话在其他机器,本轮不操作远端会话数据。
- 2026-09-21:历史服务端 9 项、rollout 10 项、前端专项行为回归已通过;历史召回和切会话专项通过。额外补齐流式转持久化的身份绑定,准备全量和浏览器验证。
- 2026-09-21:全量 npm run regression 通过;关联 ccweb-message-reply、failed-insert-card、ccweb-list-user-inputs、javascript-session-runtime 单测和语法检查通过。最终 auto-run 过滤后的 history-recall、session-switch-race 复跑通过。
- 2026-09-21:使用 /tmp/ccweb-bun.7eHd2F/node_modules/@oven/bun-linux-x64-baseline/bin/bun(1.4.2)开始构建发布包;Firefox 隔离浏览器验证执行中。
- 2026-09-21:CentOS 7 baseline 发布包构建完成,MCP initialize、单文件 --migrate-session-history 入口、tar 结构均通过烟测;SHA-256 为 7c8fe9bcb1be8c860e10578a1fac925c51785f83dd6449cbfa57f09dcc370c9e。
- 2026-09-21:无本机目标数据迁移;本机列表仍有其他 running 对话,按 AGENTS.md 不重启本机服务。用户本轮要求异机使用的验证、打包与推送。
- 2026-09-21:最终全量回归再次通过。Firefox 156.0 / geckodriver 0.37.1 真浏览器验证通过:68 条快照、483 条 native;加载、运行、刷新、真实 WebSocket 重连、done、done 后刷新六阶段保持顺序且无重复,historySource=merged。
- 浏览器证据:/tmp/cc-web-history-browser-KnMvZ7/evidence.json;运行中截图 /tmp/cc-web-history-browser-KnMvZ7/refreshed.png 已目视核对。隔离进程已清理。
- 本轮目标在异机,未迁移或重启生产会话;发布包提供 idle 安全迁移工具。准备提交全部源码、测试、计划及发布包并推送 main。
- 2026-09-21:修复、测试和发布包已提交 f8f5ef3 并推送 origin/main;全部步骤完成,已清理本轮临时 CSV。
## 2026-09-21 旧会话实际迁移
- 渲染侧确认问题:目标会话默认视图只剩最后 12 条气泡,顶部提示「还有 68 条更早消息,但原始记录不可用,无法恢复」,用户输入气泡全部落在无法加载的历史里。
- 边界规则改为允许跳过快照头部的 cc-web 专有气泡(跨对话回传显示、本地用户回显),遇到无法对齐的普通消息仍然放弃确认;native 前缀改用按 ID 合并片段的 mergeNativePrefixWithSnapshot。
- 单测新增 2 项(头部专有气泡跳过、前缀同 ID 片段合并),历史服务端回归 12 项通过;全量 npm run regression 结果见本轮日志。
- 官方迁移入口走运行中的旧进程仍会拒绝,改用等价离线流程(同 resolver、同 idle 前置、同备份目录、同原子写入与回读校验)迁移目标会话:80 条快照 + 1111 条 native 前缀 = 739 条,备份写入 sessions/_history-backups。
- 迁移后校验:739 条消息、0 重复 ID、时间单调、91 条用户气泡、用户原问题与对应助手回复邻接;浏览器实测加载更多可用,用户气泡可见;其他会话文件未被改写。
## 2026-09-21 重新打包与推送结果
- 用 bun 1.4.2 baseline 重新构建发布包 dist-exe/cc-web-bun-linux-x64-baseline.tar.gz(44,970,741 字节),随代码一起提交 5e9bda7。
- 验证:node --check 七个入口文件全部通过;session-history-unit 历史服务端回归 12 项通过;npm run regression 通过;发布二进制 `--ccweb-mcp-server` 的 initialize 握手返回合法 JSON;tar 包目录结构正常。
- 5e9bda7 已推送 origin/main。运行中的 cc-web 仍是 08:59 启动的进程,新合并逻辑要等一次重启才在服务端生效。