fix(web): offer representative time after occupation notes cover

Dateless occupation_note stayed draft, so classic coverage never finished
and offer-candidates stayed blocked. Confirm those notes, stop crowding
dasha probes with encoded exam quality, and adopt once blocking methods
are covered.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-23 17:21:49 +08:00
parent 6b225a288c
commit 75dbab08b9
11 changed files with 774 additions and 28 deletions
+16
View File
@@ -5465,4 +5465,20 @@
- 防复发:纠正流不得把全部 `thinking.delta` 拼成一块再画在活动列表下方。工具后的思考必须是新的 trace 行。咨询时间线同样不得把后段 `thinking.delta` upsert 回第一条思考。
- 相关记录:BUG-095、BUG-357、BUG-359
- 复发自:BUG-095(步骤轨迹只证明工具发生过,没有与思维链按时间交错)
- 修复版本:`6b225a28`
## BUG-361 | 生时纠正职业无日期证据卡死,反推前事问不出来,时间卡也不出
- 状态:resolved
- 首次发现:2026-08-23
- 最近更新:2026-08-23
- 影响面:`record_agentic_rectification_evidence_batch``method_followup_plan``isOfferBlockingFollowup``choice_card``discriminating_event_probes`、生时纠正系统提示
- 用户现象:方法层已经问到职业,用户说了职业类型但没有日期。候选分钟在窗口里来回跳,Agent 反复问职业,从不按冲突年份做 A/B 反推,也不出示时间选择卡。`choice_card` 一直是 null。
- 触发条件:经典八法已覆盖带日期教育/感情/事业/家人;职业是无日期 `occupation_note`;引擎 `propose_allowed` 已开但分钟仍不可分;receipt 里有 dasha 年界/激活探针,同时教育质量探针占满 3 个槽。
- 根因:三层叠加。(1) 批量写入把 `date_precision=unknown` / 缺 `occurred_from` 一律写成 `draft` + `needs_clarification=["date"]`,覆盖要求 `confirmed`,职业层永远 uncovered`offer-candidates` 被拒。(2) `remainingConflictProbes` / `remainingReverseVerifyProbes` 按已确认领域整段跳过,Python 质量探针又用已回答过的高考发挥题占满 `MAX_PROBES=3`,反推年份进不了 `next_followup`。(3) 引擎在 31 分钟窗、同分、宽度 7、holdout 1/20 时本来就不能唯一分钟;产品却继续访谈,而不是在方法覆盖齐且 `propose_allowed` 时出示代表性时间。
- 修复:无日期 `occupation_note` 写入即确认,并回填已有 draft;路由把 draft/pending 职业笔记也算覆盖,忽略已经覆盖领域上的过期 collect focus。方法覆盖未齐时仍按 BUG-351 让 dasha 探针插队并挡出牌;挡住出牌的方法层齐了且 `propose_allowed``session_outcome=adopt_representative``event_probe` 不再挡出牌。采用后按「领域+年份」而不是整段领域跳过反推探针,并跳过已编码的考试质量题。不改已哈希 Skill `10.0.11`
- 验证:`frontend/tests/rectification-eight-method.test.ts` 锁定 draft 职业笔记覆盖并放行出牌、过期职业 focus 不再追问、覆盖齐后 `event_probe` 不挡出牌、采用后核未出现过的事业年份;`frontend/tests/rectification-choice-card.test.ts` 锁定可出牌时 GET A/B 卡为 null、采用后核对卡仍显示;`frontend/tests/rectification-ingest-p0.test.ts` 锁定 dateless SQL`tests/test_rectification_event_probes.py` 锁定已编码高考质量题不再占满探针槽。
- 防复发:职业笔记不得因缺日期停在 draft。事业带日期事件仍不能代替职业层。方法覆盖未齐时 dasha 探针必须挡住出牌。覆盖已齐且 `propose_allowed` 时不得为筛到唯一分钟继续访谈。不得把已回答的考试质量题再问一遍。不得改已哈希 Skill `10.0.11` 来绕过服务器路由。
- 相关记录:BUG-348、BUG-349、BUG-350、BUG-351
- 复发自:BUG-351(冲突探针插队挡出牌后,质量探针占槽、职业 draft 永不覆盖,覆盖已齐时仍不收口)
- 修复版本:待本次提交