# 进度 · 平局先问参考题再出卡(2026-09-14) ## 范围 - 分支:`codex/rectification-tiebreak-before-card-20260914`(基于 `origin/staging` @ `a6381e02`) - 任务单:`docs/tasks/TASK-rectification-tiebreak-before-card-20260914.md` - BUG-685 / 686 / 687 resolved - 任务 1–4 均做完,没有走让步 ## 完成 - T1:`requestTieBreak` 成功路径用 `applySnapshotTurnsToMessages` 把新 turn 并进对话。缺口里未答焦点优先于「等读者点卡」。`refetchQuestion` 与 repair 失败回拉同样合并(服务端可能已写 turn)。 - T2:出卡前只要 `pendingTieBreak`(不看分差)就 `heldForTieBreak`,先持久化 D9/D10 `varga_style`(沿用 `tie_break_round`),用完再交付。删除 `varga_style` 的 `unanchored_varga_style` 锚点丢弃。仍平时卡上写「参考题已经用过」,按钮随 `tie_break_available` 收起。 - T3:`rangeNarrowHint` 传入真实拒答;空池写「能问的都问完了」。 - T4:`tieBreakGateInput` 供 GET 与 POST 共用。GET 本轮仍不另载 `birthDate`(与原先一致);POST 继续从 compute 读取。 ## `loadCaseSnapshot` 逐处 | 位置 | 回调 | 依据 | | --- | --- | --- | | `send` 成功/失败 | 有(只 merge 已有消息上的题) | 模型 turn 已在 `messages` | | `submitChoice` | 有 merge + append | 结构化选择后可能多出助手 turn | | 采用成功后 | 无 | 随后 `send` 写采用旁白;快照只刷新已采用态 | | 参考题 409 | 无 | 没有新题,只重拉以藏按钮 | | 参考题成功 | 有 | BUG-685 | | `refetchQuestion` | 有 | 准备缺口期间服务端可能已写下下一问 | | repair-exit 失败回拉 | 有 | 修复失败后快照里可能已有新 turn | ## 验收数字 - `tsc --noEmit`:0 错 - `npm run lint`:0 error / 120 warning(既有,未顺手改) - 定向:`rectification-tiebreak-before-card-20260914.test.ts` 8/8;tie-break-entry、collection-question-pool、delivery-vs-collect、tied-first、surface-state、probe-pool-exhausted T4、targeted-collect 相关全过 - 全量 `npm test`:3011 / pass 2843 / fail 154 / skip 14(含 T4 旧断言,已改为「能问的都问完了」后定向 20/20)。失败条数与 Windows 基线 153 同型(CRLF、Skill SHA、Docker/DB、无 symlink)。本轮新测 8 条全过。 - `next build`:本机 Turbopack 拒跨 worktree 的 `node_modules` junction。Linux 门禁会在树内安装后构建。 - 浏览器级验收:无 staging 登录态,清单见 `docs/testing/rectification-tiebreak-before-card-20260914.md`。