3.2 KiB
3.2 KiB
修复标题显示归属
目标
确保会话内标题条显示在目标消息上方,并修复旧标签页继续运行过期前端脚本 导致修复看似失效的问题。
验收标准
- 标题显示在
anchorMessageIndex指向的消息上方;示例事件中应显示在 数组索引 0 的目标消息上方,而不是按messageIndex = 1插在其后。 - 同一份标题事件在实时追加和会话重载后得到相同位置。
- 缺少新锚点字段的历史标题事件仍按兼容规则稳定显示。
- 已加载本次版本自检逻辑的页面,在后续服务升级后能检测资源版本不一致并 自动刷新一次;机制上线前已打开的旧页面需要手动刷新一次。
- 相关定向测试及项目质量检查通过。
阶段计划
- DONE — 初始化任务并记录现象与验收条件
- DONE — 追踪标题事件生成、持久化与渲染链路
- DONE — 编写失败回归测试锁定旧前端版本刷新
- DONE — 实现前端版本自检并保持标题锚点兼容
- DONE — 运行标题与版本链路定向测试
- DONE — 运行前端相关质量检查
- DONE — 审查差异并完成任务记录
决策
- 不以 CSS 位移掩盖问题,优先统一标题事件的语义锚点。
- 标题锚点源码、数据与运行态静态文件均已正确,不重复改写排序算法。
- 以当前
app.js内容指纹作为前端资源版本,由服务端动态注入页面并在 WebSocket 鉴权成功时下发;客户端版本不一致时只触发一次刷新。 - 先补失败测试再修改实现,锁定版本注入、握手与单次刷新契约。
已遇到错误
| 错误 | 尝试 | 处理 |
|---|---|---|
Trellis 新建任务后没有自动生成 prd.md |
1 | 已按工作流要求显式创建需求文档 |
codebase-memory-mcp search_code 返回 Transport closed |
3 | 停止重复调用,使用已取得的函数级结果并降级到 rg 补查静态资源与事件路径 |
运行态静态文件比对命令因包含 rm -f 被安全策略拒绝 |
1 | 改用纯管道读取与哈希,不创建或删除临时文件 |
| 首个失败回归实现代理运行超过 6 分钟且未产生差异或测试进程 | 1 | 已中断,改派更窄的最小可执行专项测试任务 |
| 第二个窄化实现代理仍未进入编辑阶段且无差异 | 2 | 已中断;Trellis 实现代理通道不可用,主线程加载同一上下文后降级实施 |
| 首次绿灯运行仅“服务端入口注入”静态契约失败 | 1 | 实现使用占位符常量而测试要求字面量;改为字面量替换,保持行为不变并对齐可审计契约 |
| 首次运行态专项未读到注入后的全局版本 | 1 | 发现占位符与全局属性名相同,replaceAll 同时改坏属性名;改用不含占位符的 window.ccWebFrontendAssetVersion |
| 首次全量回归的外层执行提前返回,无法取得子进程退出码 | 1 | 用直接 Node 调用并通过 write_stdin 等待会话,取得 REGRESSION_EXIT=0 |
| Trellis 质量复核代理超过 5 分钟未回传、无新增差异或测试进程 | 1 | 已中断,主线程按同一 check 上下文完成逐行差异审计 |