45 Commits

Author SHA1 Message Date
Jesse_Chen 7d6b88c886 fix(rectification): honor persisted probe focus
Independent Staging Quality Gate / validate (push) Successful in 14m51s
Independent Staging Quality Gate / publish (push) Successful in 17m0s
2026-08-26 22:17:15 +08:00
Jesse_Chen b1173f7245 fix(web): count only training events for discrimination and split user-stop from validated range
Three collected events with a reserved holdout were stalling because the discriminator door counted holdout. Public selection_allowed still had snapshot fallbacks, and health only proved the image SHA.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 19:36:04 +08:00
Jesse_Chen 7718317d69 fix(web): keep career quality off the gate and let the agent write stems
Independent Staging Quality Gate / validate (push) Successful in 11m41s
Independent Staging Quality Gate / publish (push) Successful in 15m44s
Exam-quality cards may still jump ahead of adoption, but career years stay on method rotation. Server stamps only period and family; spoken questions remain model-authored.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 12:39:05 +08:00
Jesse_Chen 7416e02fa9 fix(web): stamp exam-quality cards and raise rectification timeouts
Independent Staging Quality Gate / validate (push) Successful in 12m43s
Independent Staging Quality Gate / publish (push) Successful in 17m3s
Recorded-year quality probes were spoken-only, so the interview had no
choice card. Compare also re-scored after batch until the 105s attempt
aborted the turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 10:18:57 +08:00
Jesse_Chen 97b02aef5d fix(web): hold reverse-inference cards until acceptance event quality
Independent Staging Quality Gate / validate (push) Successful in 22m10s
Independent Staging Quality Gate / publish (push) Failing after 7m28s
Conflict probes were jumping after one dated event, so the interview asked
another domain before method collection. Spoken replies now follow the
stamped choice prompt instead of a topic denylist.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 23:53:42 +08:00
Jesse_Chen 37c5c8d356 fix(web): keep spoken rectification prompts on the server choice card
Independent Staging Quality Gate / validate (push) Successful in 18m9s
Independent Staging Quality Gate / publish (push) Successful in 12m9s
Evidence writes now return the persisted open_question so the model asks that stem instead of a second education probe, and the jump-to-latest chip is centered again.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 23:11:23 +08:00
Jesse_Chen a658ef8d2b fix(web): stop rectification interview when remaining minutes no longer split
Coverage-complete ties stayed in discrimination because whole-window D9/D24 follow-ups were treated as probes, and restated dates inserted duplicate evidence. Skip encoded remaining layers, ask leftover D4 or offer a provisional range, and dedupe dated rows by kind and date.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 19:02:35 +08:00
Jesse_Chen 5e34dd69ce fix(web): keep rectification replies as model text, hide thinking
Give the interview a hidden reasoning channel so planning leaves the spoken reply, publish terminal text-delta as-is, and stop regex or Case templates from replacing the model.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 16:34:25 +08:00
Jesse_Chen 01ac4b9b56 fix(web): treat duplicate rectification tool calls as idempotent
Aborting the turn on a second identical public tool-call failed staging
after evidence and compare had already succeeded. Skip the duplicate
receipt instead and let maxSteps bound real loops.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:46:20 +08:00
Jesse_Chen fe87a9ecdb fix(web): isolate rectification answers from tool-step planning text
Mastra intermediate text-delta was published as answer.delta, then set-focus domain errors reset the attempt and replayed evidence. Publish only the terminal no-tool step, persist the next probe on the server, and ground batch quotes in the source turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 21:26:57 +08:00
Jesse_Chen 3659519bd0 fix(web): apply rectification choice cards without invoking the agent
Clicking A/B/C/D or stop must persist the answer, close the probe, and
update posteriors in one idempotent transaction instead of sending the
option text as a chat message.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 18:38:05 +08:00
Jesse_Chen 3f1998bdb6 fix(web): stop adopting tied rectification candidates after method coverage
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
Coverage complete only unlocks discrimination. A 34/33/33 window plus an
occupation note must ask a D9/D10 contrast probe instead of offering a
stale winner card.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 12:19:36 +08:00
Jesse_Chen 909de8b884 fix(web): persist rectification C/D answers on an append-only inference ledger
Independent Staging Quality Gate / validate (push) Failing after 4m0s
Independent Staging Quality Gate / publish (push) Has been skipped
Engine result rows stay immutable. Choice answers append transitions, and reads overlay the latest revision instead of patching the cached receipt.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 08:22:01 +08:00
Jesse_Chen 04463e9af3 feat(web): show consult runs as a Lucide timeline with sliced compose
Keep provider thinking on a separate channel so process talk is not billed as the spoken reply (BUG-359).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 14:38:50 +08:00
Jesse_Chen 0ca7da997f fix(web): stop consultation thinking from pinching the answer
Disable provider thinking so Flash CoT cannot fill max_tokens, raise the
spoken budget to 16384, emit a server-owned step tree, and continue once
when the body ends on length.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 21:19:00 +08:00
Jesse_Chen 9873ba420a fix(rectification): collect dated events, then distinguish with conflict probes
Empty ledgers stay in natural-language collection. After the first dated
event, dasha conflict probes reverse-infer 前事 and block offer until
answered. Unique-minute confirmation stays closed at a representative
time; adopt reverse-verifies remaining probes. Records BUG-348–351.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 10:37:40 +08:00
Jesse_Chen 4e247c112e fix(web): keep thinking off the spoken consult and rectification answer
Enumerate evidence kinds so education cannot be proposed as a kind, and stream Chinese thinking on a separate channel that collapses when the reply arrives.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 21:30:55 +08:00
Jesse_Chen a03756bf18 feat(web): hang Agent-authored A/B/C/D cards under rectification replies
Independent Staging Quality Gate / validate (push) Failing after 11m51s
Independent Staging Quality Gate / publish (push) Has been skipped
Conflict nodes stay server-owned; the Agent writes the question and option copy so users can tap instead of typing through an interrogation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 17:36:32 +08:00
Jesse_Chen 6a44c778c3 fix(web): show live agent work progress and fail truncated rectification answers
Rectification dropped tool.activity started events and treated length finishes as completed. Share generation settings with consultation, keep the activity line through streaming, and name multi-domain chart calculation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 12:39:09 +08:00
Jesse_Chen a88467ffa8 fix(rectification): offer representative time once event-fit is enough
Keep unique-top and width on confirmation only, and stop lagna-frame follow-ups from blocking cards on an already-scored cluster.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 02:01:57 +08:00
Jesse_Chen 8010245981 feat(product): present consult and rectification in local skill form
Independent Staging Quality Gate / validate (push) Failing after 6m42s
Independent Staging Quality Gate / publish (push) Has been skipped
Default ayanamsa to Raman with true_pushya support, attach governed Raman packets, restore Path C questionnaires and eight-method verification copy, and keep unique-minute confirmation blocked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:42:47 +08:00
Jesse_Chen 84e6191fc2 fix(rectification): restore classic eight methods and observe KP Placidus cusps
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:58:28 +08:00
Jesse_Chen 7dc97a49ee fix(rectification): hold time cards until propose gate and interview stop
Keep representative-time cards off while method coverage is still open.
New cases bind Skill 10.0.9; existing 10.0.8 packages stay hashed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:18:17 +08:00
Jesse_Chen 1b93afc594 fix(rectification): ask finance and health, show Bhava and Pranapada
Interviews skipped D2/D11 and D30 unless the user volunteered them, so those scoring layers almost never ran. Ask them after family, keep relocation out of rotation, and display Bhava/Pranapada transitions without delaying adopt.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:49:27 +08:00
Jesse_Chen 70efb56926 fix(rectification): fold D24 into education refine and score family D3
Window scan now drives d5_refine when D24 changes, family events use D3, and pada/Hora/Ghati are display-only. New cases bind Skill 10.0.7 without unique-minute confirmation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:04:55 +08:00
Jesse_Chen 55d3119c68 fix(rectification): wire unique-minute confirmation to VedAstro and sealed holdout
Keep confirmation fail-closed until the public AA set is ready, and rewrite Technique Audit from the attached VedAstro status instead of a hardcoded blocked row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:05:35 +08:00
Jesse_Chen a93a3cc1a9 fix(rectification): split D4/D5 stages and recast after adopt
Independent Staging Quality Gate / validate (push) Successful in 9m19s
Independent Staging Quality Gate / publish (push) Failing after 7m45s
Keep family on D12+D7 instead of mixing it into D4, score D5 on education, and show a natal recast plus technique audit after adopt without unique-minute claims.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:11:54 +08:00
Jesse_Chen b1b4f5fac9 fix(rectification): score family events and allow appearance follow-up
Independent Staging Quality Gate / validate (push) Successful in 10m19s
Independent Staging Quality Gate / publish (push) Successful in 8m7s
Dated family evidence now moves candidates via D12 and kin houses, career receipts expose both D1-10 and D10, and appearance/marks may be asked as auxiliary first-house scores. New cases bind Skill 10.0.4.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:35:46 +08:00
Jesse_Chen a732ff4b58 fix(rectification): hold time cards until an offer turn
Independent Staging Quality Gate / validate (push) Successful in 11m37s
Independent Staging Quality Gate / publish (push) Failing after 9m4s
Keep collecting while a method follow-up can still distinguish candidates, and show adoption cards only after offer-candidates. Align the natal house snapshot with the agent text column.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:50:40 +08:00
Jesse_Chen c8af18e90a fix(rectification): show the house table and hide the activity fold
Independent Staging Quality Gate / validate (push) Failing after 9m39s
Independent Staging Quality Gate / publish (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 20:11:51 +08:00
Jesse_Chen 40a595045e fix(rectification): keep a next action when the user stops collecting
Independent Staging Quality Gate / validate (push) Failing after 8m52s
Independent Staging Quality Gate / publish (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 19:23:51 +08:00
Jesse_Chen 7c7a25773c fix(rectification): let a tied plateau be adopted as the session result
Independent Staging Quality Gate / validate (push) Successful in 8m46s
Independent Staging Quality Gate / publish (push) Successful in 9m8s
Adjacent minutes still cannot confirm a unique birth minute. A scored
representative time can now be accepted, and the copy must say the minute
is not unique.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 10:41:47 +08:00
Jesse_Chen 233c728176 fix(rectification): route follow-ups by method layer and rescore when evidence changes
Independent Staging Quality Gate / validate (push) Successful in 9m12s
Independent Staging Quality Gate / publish (push) Successful in 7m28s
Web was round-robinning missing domains and waiting to score until the user said they had no more events. Server follow-up now uses the eight-method plan, rescored snapshots stay candidates, and D9/D10 observations never become user labels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 09:56:54 +08:00
Jesse_Chen f708edf365 fix(rectification): ingest first-turn events without dropping day precision or claiming a unique minute
Independent Staging Quality Gate / validate (push) Successful in 10m5s
Independent Staging Quality Gate / publish (push) Successful in 7m4s
SQL kinds now match the TypeScript ledger so batch ingest can confirm dated events. Confirm no longer burns the opening focus, recap uses server date labels, and the Agent sees indistinguishable width instead of a fake unique minute.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 07:44:23 +08:00
Jesse_Chen fa6019a303 fix(rectification): stop forcing named tool_choice on thinking models
Independent Staging Quality Gate / validate (push) Successful in 10m5s
Independent Staging Quality Gate / publish (push) Has been cancelled
Homepage opening failed immediately because thinking-mode providers reject a required first-tool choice.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 20:33:08 +08:00
Jesse_Chen 9df43e8112 fix(rectification): bind skill before provider run
Independent Staging Quality Gate / validate (push) Successful in 15m7s
Independent Staging Quality Gate / publish (push) Successful in 9m36s
2026-08-16 15:31:00 +08:00
Jesse_Chen 24fc83d972 Merge codex/pr2-final-response into staging integration 2026-08-15 12:27:00 +08:00
Jesse_Chen 83fef19779 feat: add rectification event decision contract v2 2026-08-15 00:56:06 +08:00
Jesse_Chen 21fce9513c feat(rectification): enforce v10 runtime and conversation focus 2026-08-14 22:49:18 +08:00
Jesse_Chen a8141d955c fix(rectification): expose canonical skill runtime path 2026-08-14 17:35:10 +08:00
Jesse_Chen c1f1819de1 feat(skill): add immutable package registry and receipts 2026-08-14 16:37:53 +08:00
Jesse_Chen 2e17ccad64 fix(rectification): restore message actions and retry receipts
Independent Staging Quality Gate / validate (push) Failing after 30m22s
Independent Staging Quality Gate / publish (push) Has been skipped
2026-08-14 00:10:22 +08:00
Jesse_Chen 89f96dcfa5 fix(rectification): align activity with real agent work
Independent Staging Quality Gate / validate (push) Successful in 14m58s
Independent Staging Quality Gate / publish (push) Successful in 8m5s
2026-08-13 14:43:54 +08:00
Jesse_Chen 32b65cfaf3 fix(rectification): pass server case id to agent
Staging Backend Quality Gate / validate (pull_request) Successful in 16m22s
Staging Backend Quality Gate / publish (pull_request) Has been skipped
2026-08-12 02:00:08 +08:00
Jesse 724fb64c1a test(rectification): cover v9 migration rollout and regressions
- New suites: entry routing (13), evidence (11), skill/agent (13), stream (9),
  status/security (11) plus shared fake-accounting support.
- Migration static contract tests extended for the v9 agent api migration
  (run_phases, dossier/finalize/persist/accept/confirm RPCs, consent gate,
  needs_rebaseline guard, runtime flag, identity-foundation boundary).
- database-local-business.test.ts ledger + exact public table set updated
  (agentic_rectification_run_phases; BUG-127/BUG-144 boundary).
- rectification-v9-database.test.ts adds the agent-api migration test
  (flag seed, turn finalize, run phase receipt, consent rejection).
- rectification-agentic-entry.test.ts rewritten: the old tests locked in the
  hasRectificationSession + sessions.find guessing, textStream consumption and
  client-side session creation; they now assert the server-owned Case open
  flow, fullStream NDJSON, durable turns and exact-session routing.
- consultation-entrypoint / application-billing-contract rectification sections
  updated to the caseId-bound billing and open API contracts.
- docs/BUG_HISTORY.md: BUG-162 follow-up with regression record explaining why
  the old tests missed the broken entry guessing.
2026-08-11 17:18:08 +08:00