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

71 lines
6.2 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.
# 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`。