fix(web): stop adopting tied rectification candidates after method coverage
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled

Coverage complete only unlocks discrimination. A 34/33/33 window plus an
occupation note must ask a D9/D10 contrast probe instead of offering a
stale winner card.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-24 12:19:36 +08:00
parent 3b785b821d
commit 3f1998bdb6
19 changed files with 1345 additions and 80 deletions
+16
View File
@@ -5531,6 +5531,22 @@
- 复发自:无
- 修复版本:未修复
## BUG-366 | 方法覆盖完成被当成候选收敛,职业笔记又让候选卡立刻失效
- 状态:resolved
- 首次发现:2026-08-24
- 最近更新:2026-08-24
- 影响面:`decideNextAction``conversationalSessionOutcome``isOfferBlockingFollowup``method_followup_plan``rectification-offer-candidates`、候选 snapshot 指纹、生时纠正系统提示、验证报告
- 用户现象:用户一句话里同时给出长期职业和带日期创业事件后,状态终于会动,但直接跳到 `adopt_candidate`。Agent 按协议出牌。职业无日期 `occupation_note` 不参与评分却把方法覆盖标成完成;候选仍是 34/33/33。随后候选卡被前端判定失效,提示「出生资料已变化」。系统没有按 D9/D10 差异反问前事。
- 触发条件:经典方法层已齐或职业笔记刚补齐;引擎 `propose_allowed` 已开;候选相对支持只差 1 分;Agent 在同一轮先写带日期事件再写 `occupation_note``offer-candidates`
- 根因:两层概念被焊在一起。(1) `methodCoverageAll && propose_allowed` 直接变成 `session_outcome=adopt_representative`,覆盖完成被当成收敛;盘面差异只写进最终报告,不进入决策。(2) 无评分 `occupation_note` 推进工作流版本,候选 snapshot 仍按上一版证据读取,失效文案又把所有 409 翻译成出生资料变化。
- 修复:新增 `decideNextAction`。覆盖完成只进入 `ask_candidate_discriminator`。34/33/33 为 `not_separated`。D9/D10 差异生成 `CandidateContrastPacket`。未通过 holdout 不得 `ready_to_adopt`。候选卡只认出生资料 + 可评分证据 + 推断修订 + 候选集;`occupation_note` 仍覆盖职业层,但不让 snapshot 过期。失效原因拆开。不改已哈希 Skill `10.0.11`
- 验证:`frontend/tests/rectification-decide-next-action.test.ts` 锁定覆盖≠收敛、并列必须出区分探针、无评分职业笔记不改 scoreable fingerprint、holdout 未过不得 adopt、报告不得无 `calculationResultId` 写 executed`frontend/tests/rectification-eight-method.test.ts` 锁定职业笔记覆盖后不再直接 adopt、覆盖后剩余探针仍走区分。
- 防复发:禁止 `methodCoverageAll` 直接变成 `adopt_representative`。禁止把事件拟合率当成候选区分。禁止无评分证据让候选卡失效。禁止把所有 stale 提示写成「出生资料已变化」。不得改已哈希 Skill `10.0.11`
- 相关记录:BUG-361、BUG-362、BUG-363
- 复发自:BUG-361(职业笔记覆盖和出牌门修了,但覆盖完成被当成可以 adopt)
- 修复版本:待发布
## BUG-365 | staging web 镜像 next build 被推断类型检查挡住
- 状态:resolved(本地修复,待提交与发布)