Files
Jyotisha/docs/tasks/PROGRESS-rectification-convergence-exit-fix-20260906.md
T
Jesse_Chen 517df002b5 fix(rectification): narrate the credible range and stop scoring periods by length (BUG-569–570)
Choice copy was comparing the search window, so every answer said the range had not changed. Block-scan summed raw scores, so longer afternoon windows won before any evidence difference.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 10:03:28 +08:00

3.3 KiB
Raw Blame History

PROGRESS · 生时校正穷尽出口修复(2026-09-06)

工作树:.worktrees/rectification-convergence-exit-fix-20260906 分支:codex/rectification-convergence-exit-fix-20260906(跟踪 origin/staging 基线:origin/staging @ b938c76a;工作树文档头 43a26a3c

未改 SKILL.md(仍 10.0.14)、未改引擎、未改任何门槛数值。未重新引入 USER_COLLECT_QUESTION.other 兜底。未把 .venv 加入提交。

本单状态:待验收。BUG-565 / 566 / 567 已实现;BUG-560 保持 blocked 并补根因升级。

任务 状态 BUG
5.1 单一写入方 完成 BUG-565
5.2 穷尽态视为已交付 完成 BUG-565
5.3 穷尽分支不吞题 完成 BUG-566
5.4 范围小字还原 + 记录 完成 BUG-567BUG-560 根因升级;BLOCKED.md BLK-001

实现要点

  • persistExhaustionCollect 门槛分支不再 persistV9DeterministicTurn,只返回 { hostNarration, terminalNote: true, persisted: false }
  • 共用 isExhaustedGateState({ remainingCollect, methods, canAdopt, accepted })inspectNonTerminalTurnExit.satisfied 认穷尽态。
  • idle 穷尽分支额外要求 nextAction ∈ {offer_provisional_range, complete_with_range, ask_fact_collection}ask_candidate_discriminator / ask_holdout_validation 即使 !followup 也不落入门槛,落到 persistNextInterviewAfterChoice
  • finalizeSuccessfulTurnExitterminalNote 且本回合尚未写门槛时写一次(幂等 requestId),并跳过 ensureNonTerminalTurnExit。agent-run opening/evidence 先写并把 askedTurnId 传给 finalize。completedMessageResponse 带上 x-rectification-turn-id
  • 点选:persistAppliedEXHAUSTION_DELIVERY_ACTIONS 时仍走 persistNextInterviewAfterChoice,把门槛句拼进该回合正文。shouldContinueAfterStructuredChoice 对 offer/complete 仍为 falseUI 不等下一问)。
  • RectificationReadonlyRange 回到 <p role="status">。口述停止按钮保留。

既有断言改动

文件 原值 新值 原因
rectification-exhaustion-exit 源扫描 口述停止按钮和范围小字共用 CHOICE_STOP_LABEL / onStop 仅口述态 .rectification-collect-stop 使用该文案;范围行是 status 句,没有 onStop / <button BUG-567
BUG-558 三个形状用例 未改断言 仍通过;关闭天花板夹具去掉 holdout 事件,避免白名单后 idle 去问 holdout 白名单后 A4 用例 2 才仍是门槛

测试

命令 结果
非 DB tests/rectification-*.test.ts + agent-voice-copy-contract.test.ts 910 pass / 0 fail(解释层叠上后 917
npx tsc --noEmit 0 错
npm run lint 0 error / 81 warning(既有 warning,未清)
.venv/bin/python -m pytest tests/test_active_rectification_api.py::test_long_real_conversation_reaches_vedastro_after_local_range_is_narrow 失败:winning_segment 04:16 / 宽 1 vs 期望 05:0705:08 / 宽 2。基线 e2f4b55c 同样失败。见 BLOCKED.md BLK-001。

排除 rectification-*-database.test.ts。ERR-011:验收命令用 .venv/bin/python -m pytest。未改 page.tsx

随本分支推 origin/staging。后续 explain-layer / range-reading / unknown-time 叠在同一提交。