fix(rectification): host-fallback empty evidence turns and choice range narration (BUG-633, BUG-634)
Evidence turns that already recorded a batch no longer fail the whole run when the model emits no text; unchanged ranges now name which clock spans lead or lag, and the timeline no longer says 收窄. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9795,3 +9795,35 @@
|
||||
- 相关记录:BUG-614、BUG-623
|
||||
- 复发自:BUG-614(对照集合仍被 9 截断)
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-633 | 证据轮模型无正文被判整轮失败,下一问已落库却只剩「没有拿到下一个问题」
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-10
|
||||
- 最近更新:2026-09-10
|
||||
- 影响面:`agent-run.ts` `streamAttempt` 收尾、`host-fallback.ts`、`rectification-agentic-chat.tsx` 失败刷新、`rectificationQuestionGapState`
|
||||
- 用户现象:补完带年月经历后,助手气泡下面直接是「没有拿到下一个问题。」和「本轮没有生成可展示的回复,状态已记录。」输入框写着「请回答上面的问题…」,上面没有问题。刷新无效。
|
||||
- 触发条件:证据轮 `rectification-record-evidence-batch` 已 completed,下一问焦点已落库,模型以 `stop` / `length` / `max_steps` 结束且没有可展示正文。
|
||||
- 根因:`empty_stream` 不在可重试集合(`fe87a9ec` 为避免重放证据而移出)。失败路径不结算、不写主持人正文、客户端 `run.failed` 后不刷新快照。问题只挂在 settled 助手消息上,失败轮没有助手行,缺口走 `preparing` 再 `unavailable`。
|
||||
- 修复:batch 已完成且无正文时用工具返回的事件复述写成「记下了:…。」,`finalizeTurn("completed")`,phases 含 `answer.host_fallback`,公开 receipt `answer_origin=host_fallback`。`empty_stream` 仍不进 `RETRYABLE_ERROR_CODES`;仅当本 attempt 没有任何公开写工具(batch / set-focus / compare)完成时才 retryable 一次。失败也 `loadCaseSnapshot`;快照有 `current_question` 且 `question_source=focus` 时渲染主持人问题行。
|
||||
- 验证:`frontend/tests/rectification-v9-stream.test.ts`、`rectification-host-fallback.test.ts`、`rectification-agentic-entry.test.ts`、`rectification-surface-state.test.ts`、`rectification-spoken-collect.test.ts`。
|
||||
- 防复发:有写工具完成不得重试 empty_stream(BUG-186);兜底正文只能来自 batch 返回;问题行 `focus_id` 只能来自 `current_question`。
|
||||
- 相关记录:BUG-186、BUG-359、BUG-558、BUG-627
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-634 | 答题旁白只会说「范围没变」,时间线写死「还在收窄」
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-10
|
||||
- 最近更新:2026-09-10
|
||||
- 影响面:`composeChoiceNarration`、`explainScoreMovement`、`RectificationReadonlyRange`
|
||||
- 用户现象:多道选择题答完,每次都是「已记录,范围没变。」顶部一直「目前范围 X–Y,还在收窄」,看不出分数有没有动、选择题是不是已经问完。
|
||||
- 触发条件:答题后可信区间宽度不变(落后峰值不足淘汰阈值),或带年月区分题已经问完。
|
||||
- 根因:旁白只用 `explainRangeChange`,`explainScoreMovement` 算得出领先/落后却没说出来。时间线「还在收窄」是写死的,不看快照里还有没有带年月探针。
|
||||
- 修复:范围不变且 deltas 非零时旁白补「04:52–04:53 领先,05:08–05:12 落后」;全零只说「已记录,范围没变。」范围变了仍不讲领先落后(BUG-606)。时间线在 `discriminate_candidates` 且没有带年月探针时写「选择题已问完,再补带年月的经历才会变」,否则「还在核对」,不写「收窄」。
|
||||
- 验证:`frontend/tests/rectification-answer-choice.test.ts`、`rectification-surface-state.test.ts`、`agent-voice-copy-contract.test.ts`。
|
||||
- 防复发:静态用户文案词表禁止「还在收窄」;聊天源码合同禁止写死该句;范围变了的旁白不得带领先/落后。
|
||||
- 相关记录:BUG-593、BUG-606、BUG-629
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
Reference in New Issue
Block a user