Commit Graph

34 Commits

Author SHA1 Message Date
Jesse_Chen 124d3990b2 fix(api): persist scratch/local and bound heavy compute concurrency
Independent Staging Quality Gate / validate (push) Failing after 12m34s
Independent Staging Quality Gate / publish (push) Has been skipped
Keep async job and chart-cache files across API recreates, freeze jyotish_api_server.py growth, and fail fast with 429 when rectification or high-rigor compute is saturated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 06:12:23 +08:00
Jesse_Chen 77ca0182dc Merge PR #49: pass birth-time accuracy truth into consultation engine
Reviewed: tsc + consult 295 + rectification 747 + python suites green;
guard functions and window/general instructions verified unchanged.
Conflict: BUG entry renumbered 467→468 (467 taken by report-extraction).
Review fix: test_consultation_birth_accuracy.py added to CORE_PYTEST_TARGETS
(pytest-style file outside the rectification glob would never hit the auto gate).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
2026-09-01 20:48:27 +00:00
Jesse_Chen 551d6317ae refactor(chat): extract consultation and session hooks after contract repairs
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
Keep archive as a PATCH of archived_at rather than DELETE, pass entry_mode through onboarding, and let popstate to the default chat reuse selectSession. Then move send/stop/recovery and session management out of page.tsx so the home surface stays within the batch-two line budget.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 04:34:14 +08:00
Jesse_Chen 54269fcfcc refactor(chat): extract home helpers, chart library, and starter surfaces
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
page.tsx still owns the chat main chain, but the first product surfaces now
live in their own modules so later splits can land without editing the 4k-line
Home. Source-lock tests follow the moved tokens; the orphan user-data contract
is aligned and added to the quick gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 22:58:02 +08:00
Jesse_Chen 901cdb96ef fix(rectification): expand quality-gate pytest globs before argv
Independent Staging Quality Gate / validate (pull_request) Successful in 13m37s
Independent Staging Quality Gate / publish (pull_request) Has been skipped
subprocess.run does not shell-expand tests/test_rectification_*.py, so a
string pin could stay green while the suite never ran. Expand glob targets
to real files and fail closed on zero matches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 19:13:38 +08:00
Jesse_Chen c48a965640 fix(rectification): close round A/2 tail gaps in tests, CI, and stale-score reuse
Independent Staging Quality Gate / validate (pull_request) Failing after 6m13s
Independent Staging Quality Gate / publish (pull_request) Has been skipped
Window_scan assertions now match the public from_sign/to_sign contract, the
staging quick gate runs the rectification Python suite, and compare-candidates
rescores when stored policy lags the live engine identity.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 18:17:33 +08:00
Jesse_Chen a0ce55f066 fix(web): drive rectification from candidate contrast and allow range close
Independent Staging Quality Gate / validate (push) Successful in 11m17s
Independent Staging Quality Gate / publish (push) Failing after 9m28s
Showing a choice card is no longer treated as completion. Distinguish probes
require real candidate groups, holdout stays out of scoring, and ordinary
sessions can finish with a credible range instead of an exact-minute gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 17:19:26 +08:00
Jesse_Chen 9958e00abc fix(web): keep unrectified birth data usable without inventing a minute
Rectification stays optional. Reported minutes can consult and generate reports; date-plus-period uses a declared window instead of a midpoint or 00:00. Updates BUG-341.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 15:29:58 +08:00
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