fix(rectification): keep dated precision cards after empty dated discriminator pool (BUG-651)

Staging gate 2558 failed because leftover tests still expected D9/D10 or leftover collect after the pool emptied. Discriminate sessions still deliver; dated precision cards still ask.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-11 15:22:55 +08:00
co-authored by Cursor
parent 035865d4c1
commit f870d3d757
13 changed files with 184 additions and 90 deletions
+1 -1
View File
@@ -10126,7 +10126,7 @@
- 用户现象:训练门已开、带年月选择题问完后,决策仍是 `discriminate_candidates`,界面没有结果卡。
- 触发条件:训练门开、`acceptance_allowed` 为真、带年月探针无可问,只剩 D9/D10 `varga_style` 或月宿边界题。
- 根因:`!separation.sufficient` 把无年月性格题当成下一道区分题;`buildMethodFollowupPlan` 在带年月池空时走 `firstRenderableYearlessFollowup` / 性格卡。重设计单 S3「探针池空 → 交付」以带年月题为准,性格题不得挡在结果前面。
- 修复:probe 只认带年月探针;性格题 / 月宿一律 `yearless_deferred`,不再作为 `ask_candidate_discriminator`。池空时按 `canAdopt` 落到 `offer_provisional_range` / `adopt_representative`。本单按让步顺序先不问性格题,可选「再答两道参考题」入口另开一单。
- 修复:probe 只认带年月探针;性格题 / 月宿一律 `yearless_deferred`,不再作为 `ask_candidate_discriminator`。池空时按 `canAdopt` 落到 `offer_provisional_range` / `adopt_representative`带年月精筛卡(`probe_year` 或 period 含年份)仍问。本单按让步顺序先不问性格题,可选「再答两道参考题」入口另开一单。
- 验证:`frontend/tests/rectification-probe-pool-exhausted-20260911.test.ts``rectification-yearless-probe-downgrade-20260909.test.ts` 带年月池空不再出 D9。
- 防复发:不得把 `varga_style` / `nakshatra_boundary` 加回带年月区分池(BUG-629);不得让性格题参与淘汰。
- 相关记录:BUG-629、BUG-442、BUG-627、BUG-652
@@ -22,15 +22,22 @@ T0 回放(第六题答后)。在未改代码的 `1fa994ea` 上跑同一夹
- T2 卡下「还可以再答两道参考题微调排序」入口
## 门禁跟进(Gitea 2558
已快进推 `1fa994ea..035865d4``backend-quality-gate` run **2558**SHA `035865d4`**validate 失败**21 条前端 TAP 仍把 D9/D10 性格题、leftover 采集或占问当成带年月池空后的下一问。不是部署失败。Python `test_shadbala_endpoint_returns_ranked_planet_strength` 仍是既有环境缺口。
跟进:`buildMethodFollowupPlan` 在带年月池空时仍问带年月精筛卡;只有 `sessionOutcome=discriminate_candidates` 才把性格题 / leftover 采集 / 占问收成空,交给决策层交付。对应断言按原值/新值/原因改写。
## 验收
工作树内 `frontend/node_modules` 链到主仓。未 commit、未 push、未部署。真机走查留给部署后按场景 0b。
工作树内 `frontend/node_modules` 链到主仓。真机走查留给部署后按场景 0b。
| 命令 | 结果 |
| --- | --- |
| `cd frontend && npx tsc --noEmit` | **0 error** |
| `cd frontend && npm run lint` | **0 error** / 119 warning(既有) |
| 相关套件 `tsx --test`开工 5 文件 + T0 新文件 + surface / voice / answer-choice / range-offer | **149 pass / 0 fail**;开工所列 5 文件断言数不降,新文件 +3 |
| 相关套件 `tsx --test`门禁失败的 16 文件 T0 | **290 pass / 0 fail** |
| `tsx --test tests/rectification-*.test.ts` | **1161 pass / 1 fail**`rectification-ingest-p0-database.test.ts` `database migration failed`(Docker 迁移,本单未改表;与既有环境缺口同类) |
| `run_quality_gate.py --profile quick` | pytest **730 passed / 1 failed / 1 skipped**`test_shadbala_endpoint_returns_ranked_planet_strength``timezone inference dependency unavailable`)。与 `PROGRESS-rectification-latent-audit-20260910` 同环境缺口,本单未改 Python |
| `cd frontend && ./node_modules/.bin/next build --webpack` | 退出 0;默认 Turbopack 仍拒 worktree 外 `node_modules` 软链。`/``○` Static。首页 JS gzip-9 **567845 B / 18 chunks**(近期同口径 occupation 单 572018 B,−0.73% |