docs(rectification): records for message cleanup — BUG-1135..1137, BUG-917 revision, changelog, design, voice, checklist, progress
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
9d302e515c
commit
c968c904e6
@@ -11968,6 +11968,7 @@
|
||||
- 防复发:死卡与 `collect_waiting` 不得同屏;未作答却已被关闭的点选题不得渲染成灰色选项。
|
||||
- 相关记录:BUG-915、BUG-675、BUG-674
|
||||
- 复发自:无
|
||||
- 2026-10-01 产品修订:见 `docs/tasks/TASK-rectification-message-cleanup-20261001.md` D1——死题(superseded 且无答案、或被替换的未答题)在消息上什么都不画,不再保留「题干无选项」;本条其余防复发不变(BUG-1135)。
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-918 | 校正时间轴读数在 375px 手机上被裁成「已…」
|
||||
@@ -15182,6 +15183,51 @@
|
||||
- 复发自:无(新迁移引入,未部署)
|
||||
- 修复版本:`codex/rectification-varga-resolution-fix-20261001`(未部署)。
|
||||
|
||||
## BUG-1135 | 生时校正题干出现两遍:被替换的旧题仍打印题干,同一题又在独立问题块再出一次
|
||||
|
||||
- 状态:resolved(2026-10-01 执行方实现;待 Claude 验收;未部署)
|
||||
- 首次发现 / 最近更新:2026-09-29 / 2026-10-01
|
||||
- 影响面:`frontend/src/components/rectification-message-entry.tsx`、`src/lib/rectification-snapshot-messages.ts::placePersistedQuestion`、`src/lib/rectification-chat-view.ts`(BUG-917 的 `unansweredDeadChoiceOnMessages`)、`src/lib/rectification-agentic/v9/turn-question.ts::attachQuestionsToTurns`。
|
||||
- 用户现象:一条校正回复里出现「题干、题干、A–D」;另一种形状是只剩一行没有选项的题干,下面写「没有拿到下一个问题」,而 Case 其实有一道可答的题。
|
||||
- 触发条件:同一探针被重新 set-focus(旧焦点已链接到最新助手轮、被 `superseded` 且没人答;新焦点尚无 `asked_turn_id`);或正文末尾带着题干句、问题由客户端挂到这条消息上。
|
||||
- 根因:(1) GET 组装只在最后一条助手轮**没有**链接焦点时才把悬空的活焦点挂上去,旧死焦点占着位置,活焦点落到独立问题块;(2) 消息组件对死题仍打印题干(BUG-917 画法:题干无选项);(3) 客户端 `placePersistedQuestion` 遇到目标消息挂着不同焦点就走独立块,且挂题时不剥正文题干;(4) BUG-917 的「死卡 → unavailable」判断没看 Case 是否另有活题。
|
||||
- 修复:GET 与客户端都让活焦点替换「superseded 且无答案」的死焦点;挂题时用既有 `stripQuestionSentences` 剥正文题干;死题或被替换的未答题在消息上什么都不画(当前焦点在 busy / 只读时仍保留题干);Case 另有活题时死题不再把缺口判成 unavailable;复制文本跳过死题。
|
||||
- 验证:`frontend/tests/rectification-dup-question-20260926.test.tsx` 新增三条 DOM 测试(真实 `RectificationAgenticChat` + 真实 `attachQuestionsToTurns`):同题重新出题、客户端守卫、正文残留题干——修复前全红(题干 2 次 / 0 个可点选项),修复后题干恰 1 次、4 个可点选项。
|
||||
- 防复发:任何题干可见位置(消息内、独立块、正文残留)都在同一组 DOM 测试里按「出现次数 = 1」锁定;新增挂题路径必须复用 `stripQuestionSentences` 与 `questionIsDeadUnanswered`。
|
||||
- 相关记录:BUG-585、BUG-917、BUG-1045、BUG-1046、BUG-678。
|
||||
- 复发自:BUG-585 / BUG-1045(题干两遍)。旧防线只覆盖「同一焦点」的重复(BUG-1046 的 `placePersistedQuestion` 只摘同 `focus_id` 的副本),没覆盖「两个焦点、同一句题干」;BUG-917 有意保留死题的题干,正好与新题形成两遍。原测试都只用单焦点夹具。
|
||||
- 修复版本:`codex/rectification-message-cleanup-20261001`(未部署)。
|
||||
|
||||
## BUG-1136 | 生时校正证据轮逐条复述用户说的经历,一次说十几件时正文占满屏
|
||||
|
||||
- 状态:resolved(2026-10-01 执行方实现;待 Claude 验收;未部署)
|
||||
- 首次发现 / 最近更新:2026-09-29 / 2026-10-01
|
||||
- 影响面:`frontend/src/lib/rectification-agentic/v9/agent-run-finish.ts`、`agent-run-attempt.ts`、`host-fallback.ts`、`user-copy.ts::evidenceTurnRecap`、`case-dossier-response.ts`(每轮 `recorded_evidence`)、`turn-question.ts::recordedEvidenceByTurn`、`rectification-message-entry.tsx`、`src/mastra/agentic-rectification.ts` 两套提示。
|
||||
- 用户现象:开场一次说了 12 件经历,回复第一段是一整句「记下了:2000年 随家人搬家、2006年 小学毕业、……」,问题被挤到屏幕下方。
|
||||
- 触发条件:一轮里入账多件经历。
|
||||
- 根因:提示要求证据轮正文逐条复述「记下了:年 月 事件、…」,件数没有上限。
|
||||
- 修复:批次有入账条目时,证据轮正文由服务器按条目写——两件以内直接列出,三件以上「记下了 N 件事。」;案例快照给每条助手回复带上本轮入账清单(证据账本,排除拒绝与被替换),三件以上在消息里收起显示。提示改为「复述由服务器写,你不逐条复述」。中文日期标签直接接事件(「2016年入学」)。
|
||||
- 验证:`rectification-v9-agent.test.ts` 新增 12 件入账 → 正文与落库均为「记下了 12 件事。」;`rectification-message-cleanup-20261001.test.tsx` 覆盖复述规则、账本分组(拒绝 / 被替换排除)、12 件收起渲染与 2 件不收起。
|
||||
- 防复发:复述只来自服务器批次结果与证据账本,不来自模型正文;新增入账路径须经 `acceptedRecapLines` / `recordedEvidenceByTurn`。
|
||||
- 相关记录:BUG-606、BUG-633、BUG-635、BUG-1055。
|
||||
- 复发自:无(文案与形态问题)。
|
||||
- 修复版本:`codex/rectification-message-cleanup-20261001`(未部署)。
|
||||
|
||||
## BUG-1137 | 生时校正回复结算后仍显示「已完成 N 步」系统内部步骤
|
||||
|
||||
- 状态:resolved(2026-10-01 执行方实现;待 Claude 验收;未部署)
|
||||
- 首次发现 / 最近更新:2026-09-29 / 2026-10-01
|
||||
- 影响面:`frontend/src/components/rectification-message-entry.tsx`(`timeline` / `vargaSentence` 在结算后为空)。
|
||||
- 用户现象:每条校正回复顶部一行「已完成 3 步」,展开是「看了你的资料 / 记录你说的经历 / 准备好下一个问题」——对用户没有信息量;真机复制出的文字里还多一个「1.」。
|
||||
- 触发条件:任何已结算的校正回复(含刷新、历史打开)。
|
||||
- 根因:校正与普通对话共用结算后的步骤回执(BUG-1050 只做了去重)。「1.」:步骤列表是 `<ol>`,收起后仍在 DOM 里;按纯文本复制时浏览器给有序列表项加序号(屏幕上 `list-style: none` 不显示)——为推断,无浏览器复现;回执整块不再渲染后不再可能出现。
|
||||
- 修复:校正回复结算后不渲染步骤时间线(含分盘说明句);写作中步骤行仍是等待态;普通对话结算回执不变。
|
||||
- 验证:`rectification-message-cleanup-20261001.test.tsx` 三条渲染测试——校正已结算无「已完成」与步骤名(改前红)、写作中仍有步骤与「正在分析」、普通对话结算仍「已完成 1 步」;`rectification-opening-plain-20260926.test.tsx`、`rectification-timeline-adapter.test.ts` 断言按三栏改。
|
||||
- 防复发:普通对话回执由范围锁测试守住;校正结算回执的重新出现会让上述测试红。
|
||||
- 相关记录:BUG-1049、BUG-1050、BUG-606(分盘说明句只在活动展开区)。
|
||||
- 复发自:无(产品修订)。
|
||||
- 修复版本:`codex/rectification-message-cleanup-20261001`(未部署)。
|
||||
|
||||
## BUG-1132 | 普通对话回答像谜语:四步开场形状逼出格局名、大运拟人、扮演象,问父母时爸妈揉成一段
|
||||
|
||||
- 状态:resolved(代码 + 合同测试;未部署,真机待产品)
|
||||
|
||||
Reference in New Issue
Block a user