fix(voice): speak first, then keep Level 2 skeleton and boundary semantics
Natal answers were opening on parameter tables, and rectification turns were one-sentence legal copy. Centralize user-facing strings, keep representative-minute and question-slot red lines, and stop duplicating the opening collect prompt as a second assistant message. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7166,3 +7166,19 @@
|
||||
- 相关记录:BUG-464、BUG-465
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-467 | opening 轮把采集题干再写成第二条助手消息
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-01
|
||||
- 最近更新:2026-09-01
|
||||
- 影响面:POST `/api/rectification/agent` opening 成功出口、`finalizeSuccessfulTurnExit`、口述采集当前问题槽
|
||||
- 用户现象:开场模型正文已经自然引导用户说一件事,紧接着又出现一条服务端采集题干,两条语义重复、语气断裂。
|
||||
- 触发条件:新 Case `action=opening`,本轮已有非空 assistant 正文,且 focus 为 collect 类。
|
||||
- 根因:BUG-460 为了让题干进历史,对所有成功推进轮都把 `current_question.prompt` 追加成独立 assistant 消息。opening 的模型正文本身已承担引导,再追加就变成双重提问。
|
||||
- 修复:focus 仍照常持久化。仅当 `action === opening`、focus 为 collect、且本轮已有非空 assistant 正文时,不再把题干写成第二条 turn 消息。判定只看 action / kind / intent / 正文是否非空,不读正文内容。
|
||||
- 验证:`shouldPersistFocusPromptTurn` 矩阵;既有 server-focus / question-ownership / 非终态出口闸测试保持;`agent-voice-copy-contract.test.ts`。
|
||||
- 防复发:不得用正文字符串判断“是否已问过”。非 opening 轮仍把服务端题干写入历史。
|
||||
- 相关记录:BUG-456、BUG-460、BUG-461
|
||||
- 复发自:BUG-460
|
||||
- 修复版本:待发布
|
||||
|
||||
Reference in New Issue
Block a user