fix(rectification): share decideFromDossier across projections and treat a sole candidate as a close, not a tie
Independent Staging Quality Gate / validate (push) Successful in 11m43s
Independent Staging Quality Gate / publish (push) Successful in 40m51s

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-28 19:21:28 +08:00
parent 30d8c78d19
commit 69c3e94920
10 changed files with 271 additions and 300 deletions
+16
View File
@@ -6381,6 +6381,22 @@
- 复发自:无
- 修复版本:待发布
## BUG-421 | 工具投影与 turn_decision 各判一次,单候选被写成并列区间
- 状态:resolved
- 首次发现:2026-08-28
- 最近更新:2026-08-28
- 影响面:`safeCaseProjection``latestResultToolProjection``evaluateCandidateSeparation`、GET/工具 `session_outcome`
- 用户现象:同一 Case 的 turn_decision 与 full_diagnostics 可能给出不同的 `session_outcome` / `selection_allowed`。只剩一个候选时仍被说成基本并列。
- 触发条件:read-case 同时被问 turn_decision 与 full_diagnostics;或候选集收敛到 1 个分钟后继续出牌/写报告。
- 根因:`safeCaseProjection` 自己跑 `decideConversationalSession` 并可能第二次 `buildMethodFollowupPlan``latestResultToolProjection` 可在没有决策时把会话猜成 `collect_evidence`。单候选把 lead 伪造为 8,状态仍是 `not_separated`,报告按并列区间写。
- 修复:`safeCaseProjection` 开头 `decideFromDossier`,方法计划只编一次。`latestResultToolProjection` 必收 `RectificationDecision` 并用 `overlayPublicDecision`。单候选状态为 `sole_candidate`,不再伪造 lead。`canConfirmExactMinute` 仍只由确认门打开。不改 Skill。
- 验证:`rectification-decision-authority` 锁定 `projectTurnDecision``safeCaseProjection``session_outcome` / `selection_allowed` 相同,工具源不再 `decideConversationalSession``rectification-decide-next-action` 锁定单候选是 `sole_candidate`、可收口为代表时间、报告不含「基本并列」、确认门仍关。
- 防复发:不得在投影层再猜 `sessionOutcome ?? "collect_evidence"`。不得为单候选伪造 `MIN_SEPARATION_LEAD`。不得把单候选写成并列区间。
- 相关记录:BUG-410、#41
- 复发自:无
- 修复版本:待发布
## BUG-410 | 训练已齐仍因家人/职业方法层停在采集,Agent 只确认后截断
- 状态:resolved