fix(rectification): keep skipped health out of holdout and repair empty exits (BUG-626, BUG-627)
Independent Staging Quality Gate / validate (push) Successful in 12m11s
Independent Staging Quality Gate / publish (push) Successful in 7m54s

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-10 11:59:47 +08:00
co-authored by Cursor
parent 0263658477
commit d96b24c276
16 changed files with 615 additions and 76 deletions
+32
View File
@@ -9716,6 +9716,38 @@
- 复发自:无
- 修复版本:待发布
## BUG-626 | 跳过的健康线在 holdout 里被当成没用过,撞同 id 焦点后静默断流
- 状态:resolved
- 首次发现:2026-09-09
- 最近更新:2026-09-09
- 影响面:`holdoutFollowupFor``persistNextInterviewAfterChoice``persistExhaustionCollect`
- 用户现象:健康采集点「记不清」后再答完职业,界面只剩「没有拿到下一个问题。」
- 触发条件:七领域采集接近穷尽,健康焦点 `target_domain=health``skipped`,盘外提示仍是 `health_pressure`
- 根因:BUG-590 只给 occupied 归并 health / health_pressureholdout 的 declined 也曾漏过这一层;即便归并后,`duplicate_focus` 仍可能落到空旁白。DB 约束只有 `health`,计划层用 `health_pressure`
- 修复:holdout 的 declined 与 occupied 一样归并 health / health_pressure。`duplicate_focus``rectification_focus_duplicate` 并走 `persistExhaustionCollect`;穷尽旁白为空时用 `noCandidatesGate` 兜底。
- 验证:`frontend/tests/rectification-collect-direction-20260904.test.ts``frontend/tests/rectification-skipped-health-deadend-20260909.test.ts`
- 防复发:跳过的健康线本会话不得再作 holdout;`duplicate_focus` 必须留下可见载体。
- 相关记录:BUG-558、BUG-590、BUG-591、BUG-605
- 复发自:BUG-590 决策 4occupied 已归并,declined 曾漏)
- 修复版本:待发布
## BUG-627 | 出口闸门把穷尽当成已交付,断流后不修复
- 状态:resolved
- 首次发现:2026-09-09
- 最近更新:2026-09-09
- 影响面:`inspectNonTerminalTurnExit``ensureNonTerminalTurnExit``agent-run` idle catch、`POST /api/rectification/cases/[caseId]/repair-exit`
- 用户现象:穷尽后没有任何问题、卡或句子落库,闸门仍放行;「重新加载」只重取空快照。
- 触发条件:`exhausted` 为真,无活动焦点、未采用、无 terminalNote host turn。
- 根因:`inspectNonTerminalTurnExit.satisfied``exhausted`。穷尽只是状态,不是用户能看见的出口。idle 异常被 `agent-run` 吞掉后也到不了闸门。
- 修复:satisfied 只认活动问题 / 已采用 / 已确认 / 已落库的 terminalNote host turn / `publicCanAdopt`。无载体时 `ensureNonTerminalTurnExit` 写出门槛 host turn。idle 失败后仍调用闸门。缺口按钮改调 `repair-exit`,文案「接着问」;连续两次仍无载体才提示新建。
- 验证:`frontend/tests/rectification-exhaustion-exit-20260906.test.ts``frontend/tests/rectification-skipped-health-deadend-20260909.test.ts`
- 防复发:穷尽不得单独满足出口闸门;无可见载体必须写出 host turn。
- 相关记录:BUG-558、BUG-626
- 复发自:BUG-558 防复发条款被闸门绕过
- 修复版本:待发布
## BUG-628 | 口述采集「没有 / 记不清」按钮被用户差评
- 状态:resolved