Contract-test the D2 exclusion tuples so widening them cannot silently pass. Record the timezonefinder quality-gate gap in BLOCKED.md.
52 lines
2.3 KiB
Markdown
52 lines
2.3 KiB
Markdown
# 进度 · 绑定排除集字面量锁 + timezone 缺口入账(2026-09-15)
|
||
|
||
## 范围
|
||
|
||
- 分支:`codex/report-binding-scope-lock-20260915`(基于 `origin/staging` @ `10b463b9`)
|
||
- 任务单:`docs/tasks/TASK-report-binding-scope-lock-20260915.md`
|
||
- 不新增 BUG 编号;只补强 BUG-694 防复发条
|
||
- 生产代码一行未改(`calculation_profile_contract.py` / `full_report_quality_gate.py` / `jyotish_engine.py`)
|
||
- `CHANGELOG.md` 不写(D5)
|
||
|
||
## 完成
|
||
|
||
- T1:`test_binding_exclusion_allowlist_is_the_literal_d2_set` 钉死两个常量的完整字面量与顺序。注释写明三类归属,以及改这里要先改任务书并在 BUG-694 补记。
|
||
- T2:`BLOCKED.md` 记 timezone 缺口;本机复现同一条测试红,warning 原文一致。未改该断言。未装 `timezonefinder`(仓内已声明,本机 Anaconda 没有;装上只绿本机,不改变验收机缺口)。
|
||
- T3:BUG-694 防复发条补了一句字面量合同测试守门。
|
||
|
||
## 任务 1 红 / 绿
|
||
|
||
在 `ALLOWED_BINDING_EXCLUDED_PATHS` 临时加 `"**.generated_by"`:
|
||
|
||
```
|
||
FAILED tests/test_calculation_profile_contract.py::test_binding_exclusion_allowlist_is_the_literal_d2_set
|
||
AssertionError: assert ('ai_and_audi...generated_by') == ('ai_and_audi...e_expires_at')
|
||
Left contains one more item: '**.generated_by'
|
||
RED_EXIT 1
|
||
```
|
||
|
||
恢复常量后:
|
||
|
||
```
|
||
. [100%]
|
||
GREEN_EXIT 0
|
||
```
|
||
|
||
`git diff scripts/calculation_profile_contract.py` 为空。
|
||
|
||
## 定向测试
|
||
|
||
`tests/test_calculation_profile_contract.py` + `tests/test_full_report_quality_gate.py`:全绿(既有 3 skipped)。
|
||
|
||
## `--profile quick` 失败清单
|
||
|
||
验收机(任务书 §1.2):`739 passed, 1 failed`。
|
||
|
||
```
|
||
FAILED tests/test_api_server_security.py::test_shadbala_endpoint_returns_ranked_planet_strength
|
||
WARNING [api_server] shadbala advanced layer failed: timezone inference dependency unavailable
|
||
assert ['core_sixfold'] == ['core_sixfold', 'advanced_evidence']
|
||
```
|
||
|
||
本机隔离复现同一条,warning 原文相同。本机没有项目 `.venv`,Anaconda 还缺 `mcp`,完整 `run_quality_gate.py --profile quick` 会先在 `interpretation_source_inventory_gate` 红掉,跑不到 739 那条汇总;timezone 缺口以隔离命令为准,见 `BLOCKED.md`。
|