Commit Graph

26 Commits

Author SHA1 Message Date
Jesse_Chen b5bcbaed73 fix(consult): record a tool call the tool never received
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
staging 手测 run 951a841e 第一次工具调用发出 tool.failed 后重试成功,但回执里
steps 只有 skill 与那次成功的 tool,stepBudget.used 为 2——失败的那次完全不存在。
客户端看见失败过一次,回执说没有,两边都查不到为什么。

工具的 inputSchema 是 strict 的,模型参数不合法时 Mastra 在调用 execute 之前就拒了,
于是工具体内一切都没跑:调用不计数、失败步不记录、连 chart-calculation 活动事件都没
发出(这也是本次定位的证据——失败那次没有任何 activity,重试那次有)。工具无法记录
一次它从未收到的调用。叠加两处:safeToolError 把非超时非取消的错误全塌成
calculation_failed,而即使失败落进工具体的 catch,consultationWorkflowFailureCode
对非 ConsultationWorkflowError 返回 undefined、append 处又写成可选省略,于是最需要
解释的那条记录恰好是唯一没有原因的记录。

改为在流层补记:流是唯一能观测到全部工具失败的位置,无论失败在 schema 这侧还是
execute 那侧,且它持有 startedAt 因而能给出时长。tool-error 分支比对「流已见的错误数」
与「state 里已有的失败 tool 步数」,只在前者更多时补一条,工具仍记录它能看见的失败,
两者不重复计。另新增 consultationToolFailureCode,令每个错误都解析出一个码。

failureCode 刻意仍不进公开回执:白名单与「the public receipt never carries the
internal failure classification」是刻意约束,workflow_rate_limited 这类后端内情不该
上线到客户端。原因走可观测日志的 toolCalls[].failureCode。客户端能看到「有一步失败」,
运维能在日志里看到为什么。

另记入 BUG-268 的线上实测值:单领域 referenceReads 两次均为 2,多领域为 0——不是
从不读方法,而是最需要方法的多领域路径一份都没打开。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 15:30:51 +08:00
Jesse_Chen 5caf47a413 fix(consult): require the evidence the product tells the user it will use
修完 BUG-267 后核对同一张表时发现,前端领域注册表早就为每个领域声明了 requiredLayers,
键名正确,并且这份列表驱动界面上的 evidencePreview——也就是产品明确告诉用户「这次会用
这些证据」。服务端的门是另写的一份,两份用不同词汇描述同一个合同,彼此没有任何链接,
对照下来门少查三处:marriage 声明 A7 而门只要求 UL,wealth 声明 Ashtakavarga 而门只
要求 D2,general 声明 D10 与 D2 而门只要求 D1/D9。三者实测在真实排盘中都是 used,补进
去不会把状态推成 degraded。失败方向仍是静默放宽,因此没有任何人报错。

新增一条测试解析前端注册表,断言其中每个指向真实 section 的条目都出现在服务端的门里。
只比对真实 section:注册表里还有人看的标签(7th house/lord、negative holdout gate)和
引擎压根不产出的 D11,机械全量对齐会把每条路由钉死在 degraded。该测试 fail-closed——
先断言 10 条路由全部解析到且列表非空,否则一次正则失配就会让它无声通过。

另外把 tests/test_consultation_consumer_context.py 加进 CORE_PYTEST_TARGETS:该文件
不在任何 CI 档位里,BUG-267 的 8 条与本条的 1 条此前都只在本地手动跑过,staging 门用的
是 --profile quick,从不运行它们。防漂移的钉子本身没人跑,等于没钉。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 15:26:57 +08:00
Jesse_Chen 0e5575a8a9 test: close local release gate regressions
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
2026-08-15 09:32:28 +08:00
Jesse_Chen 5957803de4 Merge GitHub upstream into Gitea primary 2026-08-05 11:13:34 +08:00
Jesse_Chen 31682d1c0e chore: remove legacy Vite frontend 2026-07-20 10:36:36 +08:00
732642856 447d89f1da feat: gate commercial external validation release 2026-07-17 14:32:56 +08:00
Jesse_Chen 2c72950096 Merge remote-tracking branch 'upstream/codex/release-hygiene-ci'
# Conflicts:
#	docs/research/pre_work_error_ledger.md
#	jyotish-app/api-bridge.js
#	mcp_server.py
#	references/technique_registry.json
#	scripts/jyotish_api_server.py
#	scripts/skill_release_package.py
2026-07-17 11:10:52 +08:00
Jesse_Chen bca33ada66 fix: satisfy ruff checks 2026-07-15 22:32:06 +08:00
Jesse_Chen 4aa0105fa4 feat: add Railway-ready Jyotish chat product 2026-07-15 22:23:17 +08:00
732642856 bd6a9e84d6 add strict external parity release gate 2026-07-14 19:57:46 +08:00
732642856 997cc8751f run privacy and renderer probes in release gate 2026-07-14 13:47:30 +08:00
732642856 f5606a933b chore: remove private chart data from project 2026-07-08 17:03:04 +08:00
732642856 4764482c73 Harden Jyotish runtime evidence gates 2026-07-05 18:27:33 +08:00
732642856 b50161a8ce Add character-level source manifest gate 2026-07-02 16:51:50 +08:00
732642856 f2a741d36b Add interpretation source inventory gate 2026-07-02 14:17:18 +08:00
732642856 49399ccae4 Add external oracle sanity closure audit 2026-07-01 20:16:21 +08:00
732642856 0f9b06d9d4 Wire VedAstro orchestrator into strict workflows 2026-06-29 10:26:54 +08:00
732642856 a07f91c88b Wire VedAstro status and live quality gate 2026-06-29 03:59:30 +08:00
732642856 d11cebacf8 fix: harden accuracy and api guardrails 2026-06-26 00:44:09 +08:00
732642856 5d35731f8b Add jyotish oracle evidence calibration gate 2026-06-25 18:33:26 +08:00
732642856 bff6ec4685 Add real case revalidation gate 2026-06-24 18:42:09 +08:00
732642856 3db4ad6a27 Add ordinary user delivery preflight 2026-06-24 17:45:35 +08:00
732642856 494e387018 Productize jyotish app release surface 2026-06-24 13:37:33 +08:00
732642856 23b8b6e5cf chore: harden release checks and sync capability docs 2026-06-21 16:50:46 +08:00
732642856 93610326fe feat: add yoga context validation fixtures 2026-06-05 17:16:23 +08:00
732642856 625deb4007 chore: add engineering quality gate 2026-06-05 15:58:06 +08:00