diff --git a/research-wiki/plans/2026-07-16-preflight-wp2-split-wiring.md b/research-wiki/plans/2026-07-16-preflight-wp2-split-wiring.md index 673aa3d..703417f 100644 --- a/research-wiki/plans/2026-07-16-preflight-wp2-split-wiring.md +++ b/research-wiki/plans/2026-07-16-preflight-wp2-split-wiring.md @@ -139,6 +139,7 @@ docstring 补一句参数说明: f"SELECT {col_sql} FROM {table} WHERE run_id=?", (run_id,) ).fetchall() ``` +> NULL question_id 说明:predictions 的 question_id 是题标识、语义上非空(canonical 900 题均有 id),`GROUP BY question_id` 的 NULL 折叠风险不适用。若源库异常出现 NULL question_id,`MIN(rowid) GROUP BY` 会把它们折叠成一行——本任务不为该异常兜底(预测数据契约保证非空),保持 fail-visible。 - [ ] **Step 4: 运行确认通过 + 回归** @@ -169,7 +170,7 @@ git commit -m "feat: add dedupe_per_question to extract_run_db (canonical 902->9 def test_tier_aware_keeps_high_t2_in_diag(): """错题视频组按 T2 含量升序进 val:T2 高的组保留在 diagnosis。""" from app.harness.pools import split_by_video_assignment - from app.question_gen.types import GeneratedQuestion + from core.types import GeneratedQuestion def _q(qid, vid): return GeneratedQuestion( @@ -196,7 +197,7 @@ def test_tier_aware_keeps_high_t2_in_diag(): def test_val_wrong_min_repair_pulls_from_diag(): """val 错题不足 val_wrong_min 时从 diag 换入低 T2 错题组补足。""" from app.harness.pools import split_by_video_assignment - from app.question_gen.types import GeneratedQuestion + from core.types import GeneratedQuestion def _q(qid, vid, correct): return GeneratedQuestion(