Files
Jyotisha/docs/tasks/PROGRESS-rectification-message-cleanup-20261001.md
T

6.2 KiB
Raw Blame History

PROGRESS · 生时校正消息清理(2026-10-01,BUG-1135~1137)

任务书:TASK-rectification-message-cleanup-20261001.md。执行:Claude fork 子代理。分支 codex/rectification-message-cleanup-20261001,基线 origin/staging @ 437dcecb。未推送。

环境

Linux,Node 22.14(/exec-daemon/node),Python 3.13。frontend/node_modules 由主检出 cp -al 硬链(同一 lockfile;Turbopack 不接受软链),未跑 npm ci。无 Docker(DB 套件跳过 / 环境失败,同基线)。基线 next build 首次因本机内存紧张类型检查中断,单独重跑通过(/ Static),gzip 以重跑产物为准。

交付

T 内容 提交
T1 一屏一题干(BUG-1135) GET attachQuestionsToTurns 与客户端 placePersistedQuestion 让活焦点替换「superseded 且无答案」的死焦点;挂题时复用 stripQuestionSentences 剥正文题干;死题 / 被替换的未答题在消息上不画任何东西(当前焦点 busy / 只读时保留题干);Case 另有活题时死题不再判 unavailable;复制文本跳过死题 9ec908d3
T3 结算后无回执(BUG-1137) 校正消息结算后 timeline=[]、无分盘说明句;写作中照旧;普通对话不变 6e11a8f0
T2 复述变短(BUG-1136) 批次有入账条目时证据轮正文 = 服务器复述(≤2 件列出,>2 件「记下了 N 件事。」);快照每条助手回复带 recorded_evidence(证据账本,排除 rejected / superseded);>2 件时消息内 <details> 收起清单;两套 Agent 提示删逐条复述;中文日期标签直接接事件 b8dac9c1
T4 记录 BUG-1135~1137、BUG-917 修订注、CHANGELOG、DESIGN、VOICE、真机清单、本进度、README 本提交

复现与修复证据

  • 形状 B(同题重新出题):C · a superseded focus with the same stem on the latest message…、C · client guard: a message still carrying a dead focus…——修复前 0 个可点选项(死题只剩题干 + 「没有拿到下一个问题」),修复后题干 1 次、4 个可点选项。
  • 形状 A(正文残留题干):C · a stem left in the body of the message that receives the persisted question shows once——修复前题干 2 次,修复后 1 次。
  • T3:a settled rectification reply renders no step receipt 在改动前红(临时回退组件验证),改后绿。
  • 「1.」来源:步骤列表是 <ol>,收起后仍在 DOM;按纯文本复制时浏览器为有序列表项补序号(屏幕上 list-style: none 不显示)。推断,未在浏览器复现;回执结算后不再渲染,该来源消失。

T2 一次 12 件的结果

服务端:12 条入账 → 正文与落库都是「记下了 12 件事。」(rectification-v9-agent.test.ts 新测试)。前端:正文一行,其下收起的「看记下的 12 件」,展开 12 个 <li>(如「2000年虚构事件1」),默认不展开;2 件时正文直接列出、无清单。

既有断言改动(原值 / 新值 / 原因)

文件 原值 新值 原因
rectification-timeline-adapter.test.ts /timeline: rectificationTimelineRows/ /timeline: settled \? \[\] : rectificationTimelineRows/ BUG-1137 结算后不派生步骤
rectification-opening-plain-20260926.test.tsx turn 以「已完成 2 步」开头;两条步骤名各 1 次 turn 以开场正文开头;无「已完成」;步骤名 0 次 BUG-1137
agent-voice-copy-contract.test.ts /证据轮正文只写一句复述/、「记下了:2016 年 9 月入学、2020 年 6 月毕业」为好例 /证据轮的复述由服务器写/、该句为坏例 BUG-1136
rectification-v9-agent.test.ts /证据轮正文只写一句复述/;answerText/落库 /^记下了:2016 年 9 月入学、2020 年 6 月毕业。/ /证据轮的复述由服务器写/;整句等于服务器复述 BUG-1136
rectification-agentic-entry.test.ts /证据轮正文只写一句复述/ /证据轮的复述由服务器写/ BUG-1136
rectification-adopt-flow-20260902.test.ts /必须先用一句话承接用户本轮给出的事实(年份\+事件)/ /证据轮的复述由服务器写:「记下了 N 件事」/ BUG-1136
rectification-host-fallback.test.ts 「2016年9月 入学、2020年6月 毕业」「2018年7月 入职」 无空格 中文日期标签直接接事件
rectification-grounding-20260927.test.ts、rectification-unwritten-evidence.test.ts、rectification-v9-stream.test.ts 同上四处带空格 无空格 同上

门禁(基线 437dcecb vs 最终)

项 基线 最终
tsc 0 0
lint 0 error / 126 warning 0 error / 126 warning
npm test 4809 / pass 4744 / fail 24 / cancel 0 / skip 41 4820 / pass 4755 / fail 24 / cancel 0 / skip 41;失败清单逐名一致;基线名 0 丢失,新增 11
/ Static Static
首屏 gzip JS 555,325 / CSS 68,764 JS 555,587(+0.05%)/ CSS 68,813(+0.07%)
快速门 — Python 1036 passed / 1 skipped / 0 failed;npm 步同 24 条环境失败

缺口

  • 「1.」来源为推断,未在浏览器复现。
  • 真机清单 docs/testing/rectification-message-cleanup-20261001.md 未执行。
  • 无 Docker:本单不改库,DB 套件未跑。
  • Skill 未 bump(只改系统提示与服务端文案)。

Claude 独立验收(2026-10-01,变基到 origin/staging @ 209352eb)

检查 基线 本分支
tsc / lint 0 / 0 error、126 warning 0 / 0 error、126 warning
npm test 4831 / fail 24 4842 / fail 24;失败清单逐名相同,基线名 0 丢失,新增 11
按 deploy/railway-web.Dockerfile COPY 清单构建(ERR-113) — exit 0
/ / 首屏 gzip Static / JS 555,360、CSS 68,764 Static / JS 555,622(+0.05%)、CSS 68,813(+0.07%)
快速门 — Python 1036 passed / 1 skipped / 0 failed;npm 步同 24 条环境失败

变基时 BUG 历史按「本分支在前」解冲突把 1135~1137 排到了 1132 之前,已手工挪回编号顺序;状态板重复行已去重。结论:通过。缺口:真机清单 docs/testing/rectification-message-cleanup-20261001.md。