Compare commits

..
Author SHA1 Message Date
Jesse_ChenandClaude Opus 5.5 45ec6e55a1 docs(tasks): accept consult latency quickwins (BUG-1231/1232)
Independent Staging Quality Gate / validate (push) Successful in 14m12s
Independent Staging Quality Gate / publish (push) Successful in 3m38s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-05 08:38:12 +08:00
2 changed files with 37 additions and 1 deletions
@@ -113,3 +113,39 @@ v5 打分文件没有改动,没有重跑 77 例。
快速门 `scripts/run_quality_gate.py --profile quick`:退出码 1。1056 通过,1 跳过,1 失败。唯一失败仍是上面那条盘缓存测试。失败后立刻用同一比较再跑一遍,两边剥掉易变字段后差异条数是 0。这条失败跟着缓存时序走,不跟着本单的校正闸开关走。门禁跑完后,5 份待处理的 oracle 模板只多了回车换行,已还原,不进提交。
`next build`:这个工作树的 `frontend/node_modules` 是指到主检出的联接,Turbopack 拒绝「联接指向项目根以外」。改用门禁同一条 webpack 构建(`next build --webpack`):编译 3.6 分钟通过,TypeScript 2.5 分钟通过。收集页面数据时停在 `/api/consult`,原因是 Windows 不允许为 Skill 运行别名建符号链接(`EPERM`,`SKILL.md` → 临时目录)。路由表没有打出来,所以没能在这台机器上确认 `/` 仍是 Static。首页源文件没改。没有为了构建去改符号链接,也没有在工作树里重装依赖。
## Claude 验收(2026-10-05,Linux,Node 22)
**结论:通过,快进合入 staging。** 环境是 Linux,Node v22.14,Python 3.13。基线工作树是 `4c64733f`,被验分支是 `137ed6f4`。
| 项 | 基线 `4c64733f` | 本分支 `137ed6f4` | 判定 |
| --- | --- | --- | --- |
| Python 全量 `pytest tests`(-n 4) | 62 失败 | 62 失败,名单逐条相同 | 通过 |
| 新增 Python 测试 + 增长合同 | — | 11 passed | 通过 |
| 快速门 Python 段 | — | `pytest` ✓;唯一红是 npm test 步,即下一行的同一批环境失败 | 通过 |
| 前端 `npm test` | 4932 / 24 fail / 0 cancelled | 4936 / 24 fail / 0 cancelled,失败名单逐条相同,新增 4 条全过 | 通过 |
| `tsc --noEmit` / `npm run lint` | — | 0 错 / 0 error、126 warning | 通过 |
| `next build`(Turbopack,硬链 node_modules) | `/` ○ Static | `/` ○ Static | 通过 |
| 首屏 gzip(index.html 引用 JS+CSS,gzip -9 求和) | 636,225 B | 636,225 B(0%) | 通过 |
24 条前端失败与 62 条 Python 失败,两边名单相同,属于本机无 Docker / 无模型凭据等环境项。执行方在 Windows 上看到的 Docker 关停与盘缓存抖动,这次在 Linux 上没有出现。
**T1 实测**(补上执行方的环境缺口):在隔离 venv 里装 VedAstro SDK,走产品路径(`defer_optional_external_evidence: true`)。3 位名人 × 父母 / 年运,跑两轮共 12 次,每次都用全新的缓存目录。
| | 每领域耗时中位 | 校正闸 `official_closure_reason` |
| --- | --- | --- |
| 改前 `4c64733f` | 4.47 s(首次 5.89 s) | `official_raw_response_missing` |
| 改后 `137ed6f4` | 1.66 s(首次 2.02 s) | `deferred_in_consultation` |
- 每个领域省下约 2.8 s,降幅约 63%。
- 任务书写的「≤1.0 s」**没有达到**。我用 cProfile 拆过剩下的 1.66 s:
- 约 1.33 s 是顶层前台 VedAstro 的等待上限(`vedastro_foreground.finish → _join_foreground_vedastro`);
- 引擎本体约 0.07 s(盘缓存是热的)。
- 顶层这次等待是决策记录第 3 条(BUG-301)明确要保留的。任务书的 1.0 s 目标,是照着「外网全屏蔽」时的 0.75 s 定的,定得不对。这是任务书的问题,不是实现的问题。
- 本沙箱里顶层 VedAstro 拿不到已验证的结果,所以「复用当日已验证快照」这条路径没有被线上式请求走到,只有单元测试 `test_same_day_verified_snapshot_is_reused_ahead_of_the_negative_cache` 覆盖。
**审查意见(不阻断,留给后续)**:
1. 咨询路径从来不启动快照子进程,所以负缓存里存的只会是固定的 `deferred_in_consultation` 包,起不到「记住失败」的作用。而且它每人每天在 `api_scratch` 里写一个文件,没有清理。以后可以简化成不写盘。
2. `modelSteps` 默认第 1 步就是写答案的那一步。如果模型连续调用两次工具,第 1 步其实是第二次工具调用,这时 `answer.reasoning_ms` 记为空值。读数据时要注意这一点。
3. 部署后由产品在 `/admin/usage` 的「分段」列看一轮真实数字。这一列本轮没有在浏览器里点开过。
+1 -1
View File
@@ -421,5 +421,5 @@
| `TASK-astrologer-rulings-batch5-20261004.md` | `PROGRESS-astrologer-rulings-batch5-20261004.md` | 占星师第六轮:Rath 双主星按 p.43(a)–(e)、罗计尊贵按 Rath Table 9(仅 Narayana 内)、子运方向 p.51 例外与书内分歧标注、Wadiyar 两对标软件特例;年主选不出时不再用 Muntha 主星顶替(对齐上游 03bea6ed);Rath 替换校正 v5 重试算(研究)(BUG 从 1223 起) | 已实现待验收(T2–T5 完成;T1 按红线停下 blocked;T6 研究分支已跑) | 分支 `codex/astrologer-rulings-batch5-20261004`(未推送;BUG-1223~1227;校正分数不变、未升版本);研究分支 `codex/narayana-rath-rectification-trial-20261004`(不合入) |
| `TASK-astrologer-rulings-batch6-20261004.md` | `PROGRESS-astrologer-rulings-batch6-20261004.md` | 第七轮裁定(共享仓书面回复,产品采用;问 1 选 A):Rath 版双主星按 p.43 (a)–(e)(BUG-1227 解除 blocked,推翻第五批红线 2 的 Table 17 年数底线);第 5 级宫主度数只倒算计都(p.71 脚注 42);罗计旺陷 ±1 年;同宫两主比经度;BUG 从 1228 起 | 待验收 | 分支 `codex/astrologer-rulings-batch6-20261004`(BUG-1227~1229;校正分数文件未改、未升版本) |
| `TASK-gate-log-volume-20261004.md` | `PROGRESS-gate-log-volume-20261004.md` | 门禁 validate 单步日志 4.4 万行 / 2 MB 网页打不开(run 3170):快速门只打摘要(失败给末 200 行 + 日志文件)、前端测试门禁上 dot + 失败汇总(本机仍 TAP)、拆分 validate 为 7 个 step(产品授权改 workflow,只限拆分与重定向);检查一项不少 | **已实现待验收**(BUG-1230;未推送、未部署;Gitea 各 step 页面是否打得开留待推送后由产品确认) | 分支 `codex/gate-log-volume-20261004` |
| `TASK-consult-latency-quickwins-20261005.md` | `PROGRESS-consult-latency-quickwins-20261005.md` | 普通对话耗时两项快修:咨询链校正闸不再同步白等 VedAstro 官方快照子进程(每域约 4 s,复用顶层缓存 + 负缓存,不推翻 BUG-301);补分段计时(第 0/1 步耗时、推理 token、分类耗时进日志与 usage)。推理强度/精简说明待模型 key 另单(BUG-1231、BUG-1232) | 已实现待验收 | 分支 `codex/consult-latency-quickwins-20261005` |
| `TASK-consult-latency-quickwins-20261005.md` | `PROGRESS-consult-latency-quickwins-20261005.md` | 普通对话耗时两项快修:咨询链校正闸不再同步白等 VedAstro 官方快照子进程(每域约 4 s,复用顶层缓存 + 负缓存,不推翻 BUG-301);补分段计时(第 0/1 步耗时、推理 token、分类耗时进日志与 usage)。推理强度/精简说明待模型 key 另单(BUG-1231、BUG-1232) | 已验收(Claude 10-05 Linux:Python 62 / 前端 24 失败与基线逐名相同,Static、gzip 0%;装 SDK 实测每领域 4.47→1.66 s,剩余 1.33 s 是保留的顶层前台等待;/admin/usage 真机欠) | 分支 `codex/consult-latency-quickwins-20261005` |
| `TASK-rectification-nadi-seconds-research-20261005.md` | `PROGRESS-rectification-nadi-seconds-research-20261005.md` | **「纳迪秒级校准」可证伪检验(离线)**:竞品宣传「问前事到天 → 秒级」。本仓主链只用三层小运,Sookshma / Prana 与 D150 从未进评价集;v5 真值 52/77 是整 5 分钟(秒级无真值可对)。N0 五层小运 + D150 底座(前三层与主链对账 0 差)、N1 拟合率 vs 安慰剂日期(核心)、N2 留一件预测、N3 六题后区间内再细分能否提头名、N4 岁差 / 坐标 / 时间扰动的噪声地板、N5 D150 结构层(原文比对 blocked)、N6 结论 + 对外口径草稿。规则先登记再跑;不改生产代码;不得重调 BUG-1091 已关的权重 | 待领取 | 分支 `codex/rectification-nadi-seconds-research-20261005`(BUG-1240) |