fix(rectification): plain-word opening with examples in the stem, plain de-duplicated step receipt (BUG-1049, BUG-1050)
- BUG-1049 (recurrence of BUG-504): the opening stem carries six examples and an example answer again and is server-owned on the zero-evidence opening; the body is two plain sentences (no 大运/盘面/代表分钟/精确到秒, no year, no question). Stem de-dup compares whole sentences / near-equality instead of a 12-char prefix, which had deleted the body's examples sentence sinceaa7ccb30(BUG-604) +dd8f35f7(BUG-648). - BUG-1050: plain step labels; a finished step label shows once and 「已完成 N 步」counts shown rows; failed rows read 「…未完成」 from the in-progress wording. - Skill 10.0.30 -> 10.0.31 (OpeningPolicy); 10.0.30 kept as deprecated. - VOICE / DESIGN / CHANGELOG / BUG_HISTORY / PROGRESS / real-device checklist and screenshots. 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
e53052a258
commit
8fc1a5bded
@@ -14074,3 +14074,33 @@
|
||||
- 相关记录:BUG-689、BUG-740、BUG-1047;ERR-110。
|
||||
- 复发自:无。
|
||||
- 修复版本:未修。
|
||||
|
||||
## BUG-1049 | 生时校正开场没有例子、满是行话,用户不知道该答什么
|
||||
|
||||
- 状态:resolved(代码与回归测试已完成,分支 `codex/rectification-opening-plain-20260926` 未推;部署与真机清单待验收)
|
||||
- 首次发现 / 最近更新:2026-09-26 / 2026-09-26
|
||||
- 影响面:`frontend/src/lib/rectification-agentic/user-copy.ts`(`GENERIC_COLLECT_QUESTION`、`OPENING_COLLECT_DOMAINS`、`openingSpokenBody`、`isAcceptableOpeningBody`)、`v9/collect-prompt.ts`(`stripQuestionSentences` / `isQuestionSentence`)、`v9/agent-run-messages.ts`(`buildOpeningBrief`)、`v9/agent-run-attempt.ts`(开场正文验收)、`v9/method-followup.ts`(`spokenFollowupForUser`)、`mastra/rectification-v9-tools.ts`(`rectification-set-focus`)、`mastra/agentic-rectification.ts`(开场说明)、Skill `jyotish-birth-time-rectification` §4 OpeningPolicy 与 `references/conversation-strategy.md` §2。
|
||||
- 用户现象:产品 09-26 staging(`e53052a2`)真机:新建生时校正,开场只有「眼下按 04:45–05:15 来核对,用你记得的经历对照大运和盘面变化。最后给区间和代表分钟,不给精确到秒。」和题干「先说你最容易想起的一两件,年月大概就行。」——没有任何例子,不知道「一两件」指什么,还有大运、盘面、代表分钟、精确到秒这些没解释过的词。
|
||||
- 触发条件:零证据开场(`collect:other:*`,`source=method_coverage`)。模型写的开场正文带例子句时先被剥掉、验收不过、换成兜底正文;兜底正文的例子句随后在 GET 组装(`attachQuestionsToTurns`)与客户端结算合并(`mergeTurnQuestions`,BUG-1045 起)里被再剥一次。
|
||||
- 根因:两步叠加。① `aa7ccb30`(09-09,BUG-604)把六个例子从题干 `GENERIC_COLLECT_QUESTION` 挪进开场正文第三句,题干改成不带例子的「先说你最容易想起的一两件,年月大概就行。」;② `dd8f35f7`(09-11,BUG-646~648)把正文第三句改写成「先说你最容易想起的一两件,比如……,年月大概就行。」,开头 12 个字与题干完全相同。BUG-585 引入的去重规则(`4e0db55f` 起,`isQuestionSentence`)把「以题干前 12 个字开头」的正文句一律当成重复题干删除,例子句因此被删。09-11 起刷新后看不到例子;BUG-1045(`e4c1c7a3`)把同一去重搬到客户端后,实时也看不到。行话来自 BUG-604 / BUG-648 的三句模板本身。
|
||||
- 复发自:**BUG-504**(防复发「开场题文案必须带具体例子」,验证「零证据开场 spoken prompt 含『比如』」)。为什么没拦住:`aa7ccb30` 把 BUG-504 的断言改成了反向(`rectification-server-focus.test.ts` 与 `agent-voice-copy-contract.test.ts` 断言题干**不含**「比如」,注释写「领域清单在开场正文」),把「必须带例子」的保证挪到了正文;而正文的检查(`isAcceptableOpeningBody`、`openingSpokenBody` 至少五类)只测正文字符串本身,没有一条测试把正文和题干一起走过 `stripQuestionSentences` / `attachQuestionsToTurns` / `mergeTurnQuestions` 看用户最终看到什么;`dd8f35f7` 改写第三句时也没有这样的渲染断言。
|
||||
- 修复(产品 2026-09-26 决策 D1):题干回到带例子并加示例回答:「先说一两件你记得的大事,比如上大学、第一份工作、搬到别的城市、谈恋爱或结婚、家里添丁、生病住院。说个大概年月就行,例如「2015 年夏天换了工作」。」(示例年份是固定文案,不从生日推;只在题干,正文仍不写年份)。开场题干改为服务端固定:`rectification-set-focus` 对零证据开场仍校验模型的 `spokenPrompt`,校验通过后存服务端题干,模型改写不进问题块。正文改两句大白话(兜底与 brief 同一意思):「我们来把你的出生时间缩小到更准的范围,现在先在 HH:MM–HH:MM 之间找。做法很简单:你说几件人生里的大事和大概年月,我拿去和星盘对照。」;模型正文须说到星盘和年月、带当前窗口、不含大运 / 盘面 / 分盘 / 候选 / 区间 / 代表分钟 / 精确到秒 / 年份 / 问号、最多提两个例子,否则换兜底。开场不再说「最后给区间和代表分钟,不给精确到秒」;交付卡的「这只是代表性候选,不是已确认的唯一出生分钟。」不动。去重改为整句比较:正文句与题干整体或题干任一句相同(去空白与句末标点)、或字符二元组 Dice 相似度 ≥ 0.8 才算重复;只共享开头几个字的句子保留;以问号结尾的句子照旧删除(BUG-585)。Skill 10.0.30 → 10.0.31(§4 OpeningPolicy 与 conversation-strategy §2 改写),10.0.30 标 deprecated、快照保留,旧会话照常打开。
|
||||
- 验证:`frontend/tests/rectification-opening-plain-20260926.test.ts`(零证据开场题干含「比如」「例如」与六个例子、唯一年份是示例里的 2015;有带日期经历或重问时不用该题干;模型改写 `spokenPrompt` 时 set-focus 仍存服务端题干;服务端拼接、GET 组装、客户端合并三条路径正文两句都在、题干只出现一次;09-26 staging 实际存下的旧正文例子句在新去重下保留;逐句复述题干仍被去掉;近似改写一两个词仍算复述;正文无行话、旧兜底正文与一句招呼不被接受)、`frontend/tests/rectification-opening-plain-20260926.test.tsx`(挂真实 `RectificationAgenticChat`,自动发开场、流式结算、快照合并后:正文两句在、题干与六个例子各 1 次、开场这一轮无行话)。三条旧断言按三栏注释恢复为 BUG-504 口径。截图:`docs/testing/rectification-opening-plain-20260926/`。
|
||||
- 防复发:开场题干必须带例子(BUG-504 口径恢复),且由服务端固定,不由模型改写。任何改开场正文或题干的提交,必须同时有「正文 + 题干走过 GET 组装与客户端合并后用户看到什么」的断言,不能只测单个字符串。去重不得再按前缀判定。
|
||||
- 相关记录:BUG-504、BUG-604、BUG-646、BUG-648、BUG-585、BUG-1045、BUG-969、BUG-621。
|
||||
- 修复版本:分支 `codex/rectification-opening-plain-20260926`(本地提交,未推)。
|
||||
|
||||
## BUG-1050 | 生时校正步骤回执写内部名,同一步显示两次
|
||||
|
||||
- 状态:resolved(代码与回归测试已完成,分支未推;真机清单待验收)
|
||||
- 首次发现 / 最近更新:2026-09-26 / 2026-09-26
|
||||
- 影响面:`frontend/src/lib/rectification-activity-labels.ts`(完成名、进行中句、点选活动句、慢步骤句、完成列表)、`frontend/src/lib/rectification-timeline-adapter.ts`(`rectificationTimelineRows`)。
|
||||
- 用户现象:同一次开场,回答上方写「已完成 3 步 / 读取校正记录 / 设置对话焦点 / 设置对话焦点」:步骤名是内部说法,「设置对话焦点」出现两次。
|
||||
- 触发条件:Agent 一轮里对同一工具调用两次(开场先写问题、再改写问题,各调一次 `rectification-set-focus`),或调用多个工具。
|
||||
- 根因:实时时间线(`startActivityTraceStep`)每次工具调用追加一行,结算后保留这份实时轨迹,`rectificationTimelineRows` 原样映射,「已完成 N 步」数的是调用次数;刷新后走持久化回执(按工具去重)才变成两行。步骤名直接取自工具语义(校正记录、对话焦点、事件证据、候选稳健性),没有按用户口吻写。
|
||||
- 修复(产品 2026-09-26 决策 D2):`rectificationTimelineRows` 对已完成的步骤按显示名去重(保留第一行,进行中与失败行不动),「已完成 N 步」随之等于看得见的行数;`rectificationCompletedTrail` 同样去重。十四个工具的完成名与进行中句、点选活动句全部改大白话(对照表见 `frontend/docs/VOICE.md`「生时校正开场与步骤名」),进行中句沿用 BUG-1047 已批准的「正在准备下一个问题…」「正在记下这件事…」「正在重新对照盘面…」;慢步骤句改为「还在 + 进行中句」;失败行改为「在做什么 + 未完成」(「重新对照盘面未完成」),不再是过去式完成名加「未完成」。BUG-1047 的阶段句顺序与行为不变。
|
||||
- 验证:`frontend/tests/rectification-opening-plain-20260926.test.ts`(read-case + set-focus ×2 → 两行「看了你的资料」「准备好下一个问题」、「已完成 2 步」;两个共用名字的工具只一行;全部步骤名不含对话焦点 / 校正记录 / 事件证据 / 候选 / 稳健性 / 焦点)、`frontend/tests/rectification-opening-plain-20260926.test.tsx`(真实组件开场回执「已完成 2 步」、两名各 1 次);`agent-activity-progress`、`rectification-adopt-flow-20260902`、`rectification-agentic-entry`、`rectification-timeline-adapter`、`rectification-latency-20260926.test.tsx` 的旧文案断言按三栏注释更新。
|
||||
- 防复发:步骤名面向用户,改名先对照 VOICE;时间线任何按调用次数追加的地方,展示前都走同一个去重投影。
|
||||
- 相关记录:BUG-1047、BUG-1049、BUG-725。
|
||||
- 复发自:无。
|
||||
- 修复版本:分支 `codex/rectification-opening-plain-20260926`(本地提交,未推)。
|
||||
|
||||
Reference in New Issue
Block a user