4.5 KiB
4.5 KiB
生时校正收敛重构进度(2026-08-30)
基线与范围
- Git 根目录:
/Users/jesse/Downloads/Copse/astrology/yinduzhanxing - 隔离 worktree:
/Users/jesse/Downloads/Copse/astrology/.worktrees/rectification-convergence-impl-20260830 - 分支:
codex/rectification-convergence-impl-20260830 - 基线:
origin/staging@db6716e76c7a44adb568701dc811de52d8d29a96 - staging 同步范围:
7db2dd2d..db6716e7 staging -> staging - 当前状态:已提交,未 push 或 deploy。
任务 0:上游资料与真实会话
当前无法完成,原因已记录在 BLOCKED.md:外部 ~/.workbuddy/skills/jyotish-birth-time-rectification/ 不存在,仓库没有受控的真实本地校正会话完整记录,也没有可验证的上游资料来源。因此以下三项不能被事实化回答:总轮数、最终交付区间宽度、confidence / can_apply。
基于 v2 任务书与当前仓库/上游代码比较,可以确认本轮落点不是更换评分器,而是恢复两个缺失的生产契约:
- 服务端持久化预算必须被生产判定消费,超预算仍交付候选区间并结束;
- 第 0 轮起就要有可读的候选结果/校正报告,停下来时要说明下一步与局限。
尚不能确认或声称上游机制等于“问完固定题数后给出候选区间并停止”。
任务 1:预算与终止机制
已实现:
- 接入服务端持久化的
inferenceRounds、effectiveAnswerCount、plateauRounds。 - 复用既有预算常量:
DEFAULT_MAX_DISCRIMINATION_ROUNDS = 8、RECTIFICATION_POLICY.maxPlateauRounds、EFFECTIVE_ANSWER_SAFETY_CAP = 10。 !separation.sufficient分支在继续discriminate前进行预算检查;超预算统一走既有completeWithRange(..., "exhausted")。- 未修改
convergence-evaluator.ts、confirmation gate blocker 或 sealed holdout 阈值。 - 新增
frontend/tests/rectification-convergence-budget.test.ts,覆盖可终止、连续拒答终止、超预算交付区间、区间宽度单调性。
任务 2:提问权与问题槽
已完成并审核:
- live path 不再 import/call
spoken-answer.ts;该旧解析/拼接模块已删除。 - 模型只输出确认/承接正文;
current_question/choice_card由服务端结构化返回。 - UI 使用统一问题槽展示选择题和自由输入提示;缺失问题时显示可监控状态。
- 旧历史回放保留原始 assistant 正文,不再重新解析或拼接问题。
任务 3:候选结果交代契约
已实现:
- 恢复
build_candidate_result_summary()。 score_candidates()/diagnostics()返回candidate_summary、next_step_codes、stability.label与rectification_report。- 报告包含当前候选区间、代表分钟及“代表性候选,不是唯一解”标记、置信度、逐条事件证据状态、technique layers、被排除候选、confirmation gate blocker 文案与局限声明。
events=[]时第 0 轮区间回退到用户声明的出生窗口;跨午夜窗口已验证可用;不生成唯一分钟结论。- 新增回归覆盖零证据、跨午夜窗口、事件方法、排除候选、报告一致性与
stability.label。
已通过验证
python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45:pass。python3.12 -m pytest -q tests/test_active_rectification_events.py tests/test_rectification_v5_services.py:通过(当前修改对应测试)。- 前端聚焦测试:79/79 通过:
rectification-decision-authority.test.ts、rectification-decide-next-action.test.ts、rectification-inference-machine.test.ts、rectification-range-offer-deadend.test.ts、rectification-collect-stall.test.ts、rectification-convergence-budget.test.ts。 git diff --check:通过。- 任务 2 聚焦测试:98/98 通过;相关补充测试(含问题槽 CSS 合同):38/38 通过。
./node_modules/.bin/tsc --noEmit:通过。npm run lint:0 errors;25 个既有 warnings。npm run build:通过;仅有既有 Turbopack filesystem tracing warnings。npm run test:db:34/34 通过,fail=0。- 前端全量测试:2338/2338 通过,fail=0;使用
PYTHON=/opt/anaconda3/bin/python3.12,避免默认解释器缺少 PyYAML 的环境性失败。
交付状态
- 任务 1、任务 2、任务 3 已分别精确提交。
- 任务 4(标定数据入口)与任务 5(清理/同步机制)按任务书明确留待后续,不在本轮实现。
- 未 push、未 deploy;等待用户明确要求。