Rebind after sanitize, write an explicit binding_scope, and make the quality gate recompute coverage. Wall-clock fields stay in the packet but out of the hash.
3.0 KiB
3.0 KiB
进度 · 专业报告溯源绑定(2026-09-15)
范围
- 分支:
codex/report-provenance-binding-20260915(基于origin/staging@039b0a26,含任务书416b9a69) - 任务单:
docs/tasks/TASK-report-provenance-binding-20260915.md - BUG-693 / BUG-694 resolved
- 未改前端、校正流、数据库、迁移、Skill、
CHANGELOG.md(D5)、jyotish_api_server.py - 不抄上游有界投影(D0)
完成
- T1:
build_professional_report_reference_packet先 sanitize 再对交付对象bind_result_to_profile。去掉末尾那次无效的attach_calculation_profile(final_packet)。质量门与 authority 读最终result_hash后挂上,二者按排除集不进哈希。 - T2:
result_binding.binding_scope写入excluded_top_keys/excluded_paths。墙钟按**.elapsed_seconds递归排除(含分阶段耗时与worksheets副本);生成时刻排除generated_at与 VedAstrocalled_at/ cache 时间。elapsed_seconds仍在包里。Kendra / trikona lords 改为排序列表,避免跨进程set顺序把哈希打散。 - T3:质量门新增
provenance:result_binding_scope(缺 scope / 意外排除 / 重算对不上 →blocked)。既有provenance:result_binding自洽校验保留。 - 未走让步。
修复后复跑(虚构盘 1990-05-17 09:26 +08 / 31.23,121.47,--pack full --format json)
| 次 | result_hash | input_hash[:16] | 顶层键 | 覆盖键 | 墙钟 s | 包内 elapsed_seconds |
|---|---|---|---|---|---|---|
| 1 | 2f4739a484836116… |
c6e284cfbd9f4efa |
40 | 33 | 7.861 | 2.742 |
| 2 | 2f4739a484836116… |
c6e284cfbd9f4efa |
40 | 33 | 8.113 | 2.859 |
| 3 | 2f4739a484836116… |
c6e284cfbd9f4efa |
40 | 33 | 7.886 | 2.834 |
三次 result_hash 相同。input_hash 前缀与任务书 §2.2 一致。覆盖集含 full_report_pack、chart_identity、timing_precision_contract、birth_provenance、rectification_evidence_contract。provenance:result_binding_scope = passed。
墙钟中位数 7.886 s(本机 Windows / Anaconda 3.11)。任务书 Linux 基线约 2.6 s。同机改前单次约 7.5 s,绑定增量远低于 0.3 s 预算(任务书测 json.dumps+sha256 ≈ 0.1 s)。
验收数字
tests/test_calculation_profile_contract.py+tests/test_full_report_quality_gate.py:全绿(3 skipped 为既有)tsc/ 前端:本单不改前端,未跑run_quality_gate.py --profile quick:本机 Anaconda 缺mcp,interpretation_source_inventory_gate在导入mcp_server处失败。与本单无关。核心.py已 compile 通过。scripts/pre_work_check.py:focused_tests因本机无.workbuddy/skills/jyotish-vedic-astrology路径红一条;remote_visibilityblocked(ERR-013)。未声称已云端同步。
环境缺口
- 无项目
.venv(根目录.venv是空文件);用 Anaconda 3.11.7 + pytest 9.1.1 - 无 Chrome / 无报告页登录态:本单对用户不可感知,无真机清单