Files
Jyotisha/docs/tasks/PROGRESS-api-server-service-extract-fix-20261016.md
T
jesse-uxandGrok (agent loop) a7fe7e9dd5 修复拆类金样换机器就对不齐的问题,避免测试删掉共用排盘缓存。
指纹不再包含仓库绝对路径;采集时关闭缓存而不是删除目录。基线与本分支 8 个哈希一致,定向 pytest 11 通过。

Co-Authored-By: Grok (agent loop)
2026-10-16 11:48:27 +08:00

5.4 KiB
Raw Blame History

PROGRESS · API 拆类金样修复(2026-10-16)

  • 分支:codex/api-server-service-extract-20261013
  • 修复单:docs/tasks/TASK-api-server-service-extract-fix-20261016.md(来自 origin/staging 187fa375)
  • 被打回的提交: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,所以不能在这里声称失败清单已与基线逐名一致。