Files
Jyotisha/docs/tasks/PROGRESS-consult-card-full-source-fix-20261009.md
T
jesse-ux 3ad8e80077 docs(consult): record the local quick-gate npm result
Python pytest passed. npm test stopped the gate with 120 Windows failures. The two new consult tests passed. Not pushed.
2026-10-09 10:00:45 +08:00

6.7 KiB
Raw Blame History

PROGRESS · 对话卡同源修复(2026-10-09)

分支 codex/consult-card-full-source-20261007。已 rebase 到 origin/staging 19bae8a8,本地提交 b216b286 之上还有未推送的修复。状态:执行中。F6 未通过。未推送,未合入,未上线。

结论

F1 到 F5 已按修复单做完。F6 未通过,不让步:严重冲突从 1 增到 3,对照组误报仍是 0。卡体量最大 18,193 字符,没有内部路径。建议上限仍留在 20,000。未推送。

修复

项 做法
F1 缓存日期 键加入参照日期(请求的 today 或 transit_date,否则服务端当天)。当前大运、行运、年盘用这同一个日期。schema consult-full-data-cache-v2。超过两天的文件删除。BUG-1296。
F2 模型只看数值 path、check 留在服务端。缺口留一个状态字。超过 800 字符、没有值的占位不送进模型。受冲仍只计数。BUG-1297。
F3 行星相位 资料包抄上引擎的 house_aspects。出处 references/signs-and-houses.md 第六节。七颗行星投射,罗睺计都只做目标。BUG-1298。
F4 金样 frontend/tests/fixtures/consult-card-facts-20261009.json。命令:python scripts/research/freeze_consult_card_facts_fixture.py。参照日 2026-09-27,岁差 raman,交点 mean。BUG-1299。
F5 预热 星盘新建、修改、本人资料保存成功后,after() 后台预热。缺日期、时间、经纬度或时区则跳过。不挡住保存。不新增 API 类方法。BUG-1300。

scripts/jyotish_api_server.py 10,963 行,粗护栏 11,224。类方法数没有增加。page.tsx 的 useState / useRef 没有增加。系统提示文件没有改。KP 仍不上卡。年运卡仍读 tajika_yogas。

卡片体量

组卡方式与合同测试相同:生平 golden 工作流加上冻结的领域事实。父母、婚恋、健康、事业用本领域路由;其余领域借用事业路由的本命底,体量略偏大。

盘 最大领域 字符 十二个领域是否都 ≤ 20,000 内部路径
乔布斯 财富 16,921 最大 16,921 是 无
奥巴马 财富 16,313 最大 16,313 是 无
泰勒 财富 18,193 最大 18,193 是 无

没有 worksheets.、core_chart.、"check"。

上限建议:临时上限维持 20,000。最大实测 18,193,留约 1,800 字符。不降到 18,000,因为只量了三张公开盘。卡加清单的临时上限 26,000 仍够用:改后事业工具结果约 18,290 到 19,600 字符。

模型对比

模型 deepseek-flash。key 只在当次命令的环境变量里,没有写入仓库、日志正文或本文。

生平回测:9 位公开人物 × 父母 / 婚恋 / 健康 / 事业 × 2 次。改前不挂事实,用当时的 golden 卡。改后挂参照日 2026-09-27 的事实。引擎仍是 golden 桩。

项 改前 改后
份数 72 72
失败 0 0
空答 0 0
墙钟 862 秒 921 秒
平均总耗时 46.2 秒 49.9 秒
平均输入 token 27,984.9 28,655.8
其中缓存 token 平均 22,519.1 21,240.9
平均回答 token 9,311.8 9,328.0
平均思考 token 8,736.4 8,736.1
平均卡字符 6,918.7 14,129.8
最大卡字符 7,561 16,281
禁句 0 0
性别代词 0 0
must_not 原文处数 7 4

must_not 是线索,不是阅读结论。改前 7 处、改后 4 处,都落在「可能不在身边,也可能人在」这种两头都写的句子上。按这个口径,两头都写不算对照组误报,也不算严重冲突。改前阅读:严重冲突 1,就是泰勒事业第 2 次把公开职业写成不靠频繁曝光;这一条同时记行业冲突。对照组误报 0。改后 18 份事业回答里没有「不靠曝光 / 幕后 / 不是台前 / 顾问 / 技术」。

改后有 1 份(乔布斯父母第 1 次)多调了一次家庭工具再回到父母。当时进程里的脚本还没放行家庭域。源码现已对家庭、子女返回空,不抛错。这一份留在 72 份的平均数里。

首字时间是另一次直连,不是上面的代理循环。同一套系统提示(本次读到 25,165 字符;本轮没有改提示词文件),用户问题相同,只换工具结果。流一开始就中止,记的是第一个思考 token。空答 0。

盘 改前首字 改后首字 改前工具结果 改后工具结果
乔布斯 1,064 毫秒 769 毫秒 11,988 18,290
奥巴马 707 毫秒 485 毫秒 11,839 18,836
泰勒 465 毫秒 642 毫秒 11,776 19,600
平均 745 毫秒 632 毫秒

样本只有 3 题,第一发最慢。卡变大约一倍,首字没有变慢,72 份的平均总耗时多 3.7 秒。

阅读

同一口径:两头都写的「可能不在,也可能人在」不算误报,也不算严重冲突。直接把行业写成另一类,或把公开人物写成不靠曝光、往里走、不靠场面,记严重冲突,同时记行业冲突。

项 改前 改后
通过 71 69
错过 0 0
读反 0 0
严重冲突 1 3
对照组误报 0 0
行业冲突 1 3
空话凑段 3 2

改前的 1 条是泰勒事业第 2 次。改后仍是泰勒事业第 2 次,另外齐达内事业两次都把公开的球星路子写成靠专业判断、把事情说清楚,或写成说得清、写得明、算得出,并压低外面认不认你这一头。红线不允许严重冲突升高。F6 停在这里,没有改评分,也没有改系统提示。

本机已跑

检查 结果
tsc --noEmit 0
npm run lint 0 error,125 条原有 warning
增长合同 + 对话卡 pytest 18 通过
隐私标记(已暂存当时的代码与金样) 通过
前端合同测试(金样组卡、预热) 通过

快速门(本机,2026-10-09)

编译、JSON、审计和核心 pytest 通过。pytest 615 秒。门禁在 npm test 停下,退出码 1。lint 和 next build 没有跑到。

npm test:4997 项,通过 4877,失败 120,取消 0。本轮新增的两条都在通过里:金样组卡、保存后预热。

这 120 条不是 Linux 验收里的那 24 条。本机没有数据库,迁移和 Postgres 测试失败。首页预热和「新建对话」那一组是本机既有的页面生命周期失败。另外 6 条是这次门禁命令带了技能占位符预加载,路径被拼成双份盘符,文件找不到。那是命令环境,不是这批业务改动。

没有在 Linux 上重跑全量 pytest。不把这份 Windows 名单说成 Linux 基线。没有登录态。真机清单结果列为空。