# PROGRESS · 生时校正可信区间成为一等公民(2026-09-06) 工作树:`.worktrees/rectification-convergence-exit-fix-20260906` 分支:`codex/rectification-convergence-exit-fix-20260906`(叠在 BUG-565~567 与 explain-layer 之后) 基线:`origin/staging` @ `b938c76a`;文档头 `43a26a3c` 未改 `SKILL.md`、未改 `contracts/probe-question-v1.json`、未改采用/确认门、未改 `page.tsx`。`jyotish_api_server.py` 只加了 `/api/rectification/v5/range_reading` 薄注册。 本单状态:**待验收**。BUG-568。 | 任务 | 状态 | | --- | --- | | A1 采用落库 `adopted_credible_range`,报告 RPC 优先读它 | 完成 | | A2 引擎 ≤31 逐分钟,>31 等距 31 点 | 完成 | | A3 `verified_chart(accepted)` 聊天接同一份敏感度 | 完成 | | A4 采用旁白稳定/随分钟变两句 + `range_reading` | 完成 | | A5 `declared_birth_window` 粗看复用 | 完成 | | A6 记录 | 完成 | ## 实现要点 - 迁移 `20260906020000_adopted_credible_range.sql`:加列;先 DROP 五参采用函数再 CREATE 六参 `p_credible_range jsonb`。采用写 `adopted_credible_range`,不改 `candidate_range`。`read_report_candidate_range` 仍只返回 `{start_time,end_time}`。 - `flexible_birth_time_profile` 上限从 15 提到 31,错误码改为 `candidate_count_must_be_two_to_thirty_one`。任务书按 2~31 上限写;仓库原先是 15。 - 采用旁白在 `validateAdoptNarration` 之后追加两句;引擎不可用则省略,不报错。 - `confirmed` 不附区间。`accepted` 才带 `birth_time_accuracy=provisional` + `candidate_range`。 ## 测试 见 `docs/testing/rectification-range-reading-20260906.md`。 本工作树隔离验收: - 非 DB `rectification-*.test.ts` + `agent-voice-copy-contract`(排除 database):931 pass / 0 fail - Docker `frontend` `npm run test:db`:本单当时 **36 pass / 0 fail**(约 310s)。unknown-time 叠入 `database-rectification-block-scan.test.ts` 后,同一工作树再单独跑为 **37 pass / 0 fail**(约 214s)。 - `./node_modules/.bin/tsc --noEmit`:0 - `./node_modules/.bin/eslint --quiet src tests`:0 error