docs(bugs): record staging deploy evidence for BUG-405
Independent Staging Quality Gate / validate (push) Successful in 12m28s
Independent Staging Quality Gate / publish (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-28 01:32:00 +08:00
parent 3ae22f5768
commit 912ad34303
+3 -3
View File
@@ -6174,15 +6174,15 @@
## BUG-405 | 区分探针问题合同未统一,低信息量事件题压过可渲染高信息量分盘题
- 状态:resolved(代码修复完成,staging 发布待确认)
- 状态:resolved
- 首次发现:2026-08-27
- 最近更新:2026-08-27
- 最近更新:2026-08-28
- 影响面:生时纠正候选区分探针、点选题四选项合同、方法追问排序、active Focus 持久化、Agent 可见投影、`POST /api/rectification/agent`
- 用户现象:候选比较阶段出现无法点选的自由文本问题,或先问信息量很低的事业存在题,而更高信息量的 D24 等分盘区分机会被跳过;点选「没有」或自然语言回答无法更新后验,流程退回泛问经历。
- 触发条件:Python 区分探针只给出 yes/no 结局、不带完整 `style_options`TypeScript 曾用测试夹具补四选项,生产路径却 fail-closed 不出卡;`method-followup` 在冲突事件探针与 contrast 探针之间按 if/else 分支优先,而不是按信息量全局排序;`ask_candidate_discriminator` 且没有合法 active Focus 时仍可能进入完整 Agent。
- 根因:问题合同、可渲染性、探针排序和 Focus 持久化是四套规则。BUG-403/BUG-404 要求动态四选项,但 Python 从未发出完整 `style_options`,存在题无法服务端补全;冲突事件探针因分支顺序可以压过更高 `information_gain` 的 contrast 探针;Agent 仍能看见原始 `candidate_contrast_packet` / `current_probe`,并在没有卡片时把区分题说出来。
- 修复:新增跨运行时 `probe-question-v1` 合同。存在题/质量题可由服务端补全为 `yes / weak_yes / no / unsure`;分盘风格标签保持动态,并补 `都不是这些特质``这段记不清楚`。只有 `isRenderableProbe` 通过的探针进入排序;冲突事件探针与 contrast 探针按 `information_gain × novelty × coverage - penalty` 全局取最高。先持久化 Focus 再暴露问题;compare-candidates 对 Agent 隐藏原始探针包。缺少合法 Focus 时先修复或收口到可信区间,不进入完整 Agent;流结束后若仍是 discriminator 且没有合法 Focus,记 `state_invariant_failed`。Skill 版本保持 `10.0.13`
- 验证:`frontend/tests/rectification-probe-question-contract.test.ts`、choice-card / server-focus / contrast-packet / eight-method 排序回归、turn-decision 隐藏 `current_probe`、route 在 `runV9AgentTurn` 前修复 Focus、Python `tests/test_probe_question_contract.py``tests/test_rectification_event_probes.py` 四选项合同。
- 验证:`frontend/tests/rectification-probe-question-contract.test.ts`、choice-card / server-focus / contrast-packet / eight-method 排序回归、turn-decision 隐藏 `current_probe`、route 在 `runV9AgentTurn` 前修复 Focus、Python `tests/test_probe_question_contract.py``tests/test_rectification_event_probes.py` 四选项合同。Gitea Independent Staging Quality Gate `3ae22f576842310e6e43de497bf76714b614c7ed` 通过后,Deploy staging run 2121 成功;`https://staging.jyotisha.chat/api/health` 报告同一 SHA`rectificationMigrations=ok`
- 防复发:区分题必须同时满足四选项合同、可渲染、全局信息量排序、Focus 先于提问。不得恢复冲突探针优先于 contrast 的分支;不得把原始探针包交给 Agent;不得在 `current_question=null` 时把 discriminator 当成成功口语轮次。
- 相关记录:BUG-367、BUG-398、BUG-400、BUG-401、BUG-403、BUG-404
- 复发自:BUG-403(动态四选项合同未贯穿 Python/排序)、BUG-404Focus 与口语问题仍可分裂)