指纹不再包含仓库绝对路径;采集时关闭缓存而不是删除目录。基线与本分支 8 个哈希一致,定向 pytest 11 通过。 Co-Authored-By: Grok (agent loop)
5.4 KiB
5.4 KiB
PROGRESS · API 拆类金样修复(2026-10-16)
- 分支:
codex/api-server-service-extract-20261013 - 修复单:
docs/tasks/TASK-api-server-service-extract-fix-20261016.md(来自origin/staging187fa375) - 被打回的提交:
c7350bcafbff64d3c526c2dbf3995c9845b3b66e - 基线(金样
fixtureProvenance.baselineSha):fbf04f0b5f31cd8421bc4546840b1c833aaed810 - 先把只含修复单的
origin/staging合并进本分支(合并提交14ad076f)。没有带进别的代码。
做了什么
- 拆类没有重做。没有改
scripts/jyotish_api_server.py,也没有改tests/test_api_server_security.py。 - 金样规范化对所有字符串值去掉仓库根目录绝对路径(反斜杠、正斜杠,以及 Windows 的
\\?\前缀),换成<ROOT>,其后的分隔符统一成/。不按字段名挑选。 - 采集不再删除
scratch/local/api_chart_cache。采集期间把JYOTISH_API_CHART_CACHE_TTL_SECONDS设为0,结束恢复原值。有效期为 0 时,现有读函数直接返回空,写函数不落盘。 - 在基线提交上用同一套规范化重新采集,再在本分支采集。8 个哈希与键路径类型逐个相同。金样文件按这份结果覆盖。
JYOTISH_API_HANDLER_METHOD_COUNT_BASELINE上方恢复原来的三行:- 原值:218(删占位回退之前)
- 新值:217
- 原因:BUG-1341 删除
JyotishAPIHandler._fallback_dasha_periods,类方法少 1 个,没有新增方法 - 本单「数值未变」另起一行写在这三行后面,没有盖住历史。
- 没有改断言。
check_golden()仍要求 sha256 和键路径类型全等,没有改成只比键或字节数。上一轮在改代码之前就失败的校正测试没有放宽。 - 记了 BUG-1359。修复单写的是无编号;这次是验收打回的测试失败,按
AGENTS.md§5 记。开工时本分支最大已用编号是 BUG-1358。BUG-1351、1352、1353 已有条目,没有重用。
两次采集的 8 个哈希
基线与本分支打印的是同一组数。六条咨询路径都比上一份金样短 122 字节:上一份还含本机绝对路径,并且排盘缓存有效期字段是默认的 900 秒。这次两边都按「缓存不生效」采集,有效期字段是 0。repairs 与 evidence 的哈希和字节数与上一份相同。没有再跑「删除缓存目录」那条旧采集。
| 案例 | 基线 sha256 | 基线字节 | 本分支 sha256 | 本分支字节 |
|---|---|---|---|---|
| evidence | 27975ba40a9ee89fc19543a18cb2ee60fb2477b8a6e8f14004ad411adfc408a2 |
2092 | 27975ba40a9ee89fc19543a18cb2ee60fb2477b8a6e8f14004ad411adfc408a2 |
2092 |
| http.career | 81a0c8429fdec0c7d5ad2ac768c0d2a0d1361c46a299fb79cdfbfa46459492a8 |
420433 | 81a0c8429fdec0c7d5ad2ac768c0d2a0d1361c46a299fb79cdfbfa46459492a8 |
420433 |
| http.relationship | db4e04f76c016cd9e44263329b4a763fc11a1573ed1910414c369f5e3f696525 |
414350 | db4e04f76c016cd9e44263329b4a763fc11a1573ed1910414c369f5e3f696525 |
414350 |
| http.wealth | d75e8036c05ff36b10e7c53dad4203d1c819f60abfe8d6473ab347810fe0a1ab |
419194 | d75e8036c05ff36b10e7c53dad4203d1c819f60abfe8d6473ab347810fe0a1ab |
419194 |
| mcp.career | 14aca344f395106c761a785e22f9cbda1282f79bd81d6e4d3bde9ffd9a839196 |
543746 | 14aca344f395106c761a785e22f9cbda1282f79bd81d6e4d3bde9ffd9a839196 |
543746 |
| mcp.relationship | 625b532ce57966f2decbb8b67ee9f8b3a2809834026ae8ed4047a13f720b786e |
537663 | 625b532ce57966f2decbb8b67ee9f8b3a2809834026ae8ed4047a13f720b786e |
537663 |
| mcp.wealth | 1ad98c778ed2360e782fc8e61a20ffc34dcc07698207a6801c756b09699f6220 |
542507 | 1ad98c778ed2360e782fc8e61a20ffc34dcc07698207a6801c756b09699f6220 |
542507 |
| repairs | 41d48a453fbd5d616de083fe07bb8d318c3f60ad2e127764237ef6ae50cc6175 |
74700 | 41d48a453fbd5d616de083fe07bb8d318c3f60ad2e127764237ef6ae50cc6175 |
74700 |
命令和结果
| 检查 | 命令 | 结果数字 |
|---|---|---|
| 有效期为 0 时不读不写 | 调用现有的缓存读、写函数 | 读取结果为空;目录里的文件 2 个,调用前后相同;写回的有效期字段是 0,未命中 |
| 两次采集时缓存目录 | 基线采集、本分支采集各看一次目录 | 两次都是采集前 2 个文件、采集后 2 个文件,名单相同 |
| 金样、增长合同、上次并行变红的那一条 | .venv\Scripts\python.exe -m pytest tests/test_api_service_extract_golden.py tests/test_api_server_growth_contract.py tests/test_capture_commercial_astrology_e2e_contexts.py::test_capture_writes_runtime_contexts_without_required_layer_echo -q --tb=line |
11 通过,0 失败,退出码 0,约 132 秒。其中金样 1、增长合同 9、上下文那一条 1 |
| 历史三栏是否还在删除行里 | git diff origin/staging -- tests/test_api_server_growth_contract.py |
原来的三行没有出现在删除行里 |
全量 pytest、Python 快速门、前端 npm test |
没跑 | 修复单的全量对照由验收方复跑 |
npm run test:db |
没跑 | 没改数据库 |
偏离
- 修复单写「无 BUG 编号」。本轮按仓库规则补了 BUG-1359,原因见上。
- 没有把「删除共用缓存」和「有效期为 0」再各采一次来拆开那 122 字节。删除共用目录会再次打到别的测试,修复单不允许。金样以「缓存不生效」为准。
- 没跑全量
pytest -n 4,所以不能在这里声称失败清单已与基线逐名一致。