Commit Graph
33 Commits
Author SHA1 Message Date
Jesse_ChenandCursor dc6598d7e4 fix(web): keep the settings dialog one size and move billing into it (BUG-554)
The four account panes now share a fixed frame, chart profiles open as list then detail, and membership lives in the homepage dialog instead of a separate page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 18:29:51 +08:00
Jesse_ChenandClaude Fable 5.1 53017d4153 fix(rectification): reveal the surface once — hydrate the Case before the switch, never remount, static entry feedback
Opening a rectification Case used to switch sessions first and read the
turns afterwards, so the reader saw a plain transcript, then an empty
panel, then a remount when the turns arrived (and again after the first
turn settled, because the panel key carried a ready/loading suffix).
The surface hook now reads turns and snapshot in one Case request under
the home reveal budget and only then makes the session active; the
sidebar defers the switch the same way; a session selected at bootstrap
(deep link, refresh) is hydrated during the prepare phase so the reveal
shows the surface itself; the panel key is the session/Case binding only,
later turns fill an empty transcript as a prop update, and unmounting
aborts any stream or snapshot read. The homepage card and the sidebar row
say 正在打开 statically while the Case opens — no spinner after the reveal.

BUG-505

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
2026-09-03 07:07:31 +00:00
Jesse_ChenandCursor e8c98c37cf fix(rectification): restore collect-phase exit and drop the consult handoff
Independent Staging Quality Gate / validate (push) Successful in 8m29s
Independent Staging Quality Gate / publish (push) Successful in 1m45s
Public can_adopt no longer starves the collect fallback, 改选 scrolls to
the offer, opening collect uses other, and probe_year stays on the
schema. The status bar no longer starts an empty consultation chat.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 10:41:36 +08:00
Jesse_ChenandCursor d94049769e fix(rectification): put each question inside the assistant message
Independent Staging Quality Gate / validate (push) Successful in 25m7s
Independent Staging Quality Gate / publish (push) Successful in 2m8s
Focuses now carry asked_turn_id so GET rebuilds stem and options on the
same turn. Agent writes spokenPrompt; the live question slot is gone.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 19:55:20 +08:00
Jesse_ChenandCursor f03a2706b4 fix(web): split rectification process talk from the spoken reply
Keep provider thinking off, classify CoT as 思考, and stop remounted sessions from firing a second opening.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 10:14:35 +08:00
Jesse_ChenandCursor f4619df273 fix(web): portal the natal board peek without effect setState
Quality gate lint failed on setHeaderSlot inside useLayoutEffect, so staging never published. Pass the header mount node from a callback ref instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 11:03:57 +08:00
Jesse_ChenandCursor a3196584d2 feat(rectification): add refinement packet without unique-minute claims
Surface D9/D10 change minutes, event-dasha match copy, dual-dasha conflict, and a post-adopt consult handoff so users can keep narrowing or start a reading from a representative time.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 07:47:10 +08:00
Jesse_Chen 220828d6f0 fix(rectification): hydrate persisted case turns
Staging Backend Quality Gate / validate (pull_request) Successful in 15m6s
Staging Backend Quality Gate / publish (pull_request) Has been skipped
2026-08-12 10:45:49 +08:00
Jesse ca7484666f feat(rectification): stream agent execution and redesign entry routing
Replace the Direct Agentic textStream relay with a durable V9 agent runtime:

- agentic-rectification.ts: short boundary-only system prompt (no gate->scan
  ->score->diagnostics copy); pins skills/jyotish-birth-time-rectification;
  per-action bounded maxSteps (opening/read-only 6, evidence 8, rescore 12,
  accept/confirm 6) with a hard ceiling and repeated-tool-call detection.
- rectification-v9-tools.ts: ten Case-ref tools (read-case, propose/confirm/
  revise-evidence, compare-candidates, read-diagnostics, offer-candidates,
  accept-candidate, confirm-birth-time, close-case). Inputs are minimal refs
  only; RPC-backed evidence ledger, fingerprint cache reuse, receipts, and
  accepted!=confirmed semantics; confirm requires gate + grounded consent.
- /api/rectification/agent: caseId/sessionId/requestId/action/message; exact
  Case<->Session binding verified server-side; client history never overrides
  the durable dossier; pending turn -> completed/failed/retryable; consumes
  result.fullStream and emits allowlisted NDJSON only (reasoning/raw/provider
  metadata/tool payloads/birth data/scores never forwarded); first-turn real
  skill.started/skill.loaded gate with one controlled retry; billing bound to
  rectification:case:{caseId}.
- New forward migration 20260813010000_agentic_rectification_v9_agent_api.sql:
  case dossier/compute, turn finalize, fingerprint-cached candidate persist,
  case-scoped accept, consent-gated confirm, guarded transitions,
  needs_rebaseline profile guard, run_phases receipt table, and the
  rectification_runtime_version feature flag (v9 default, legacy read-only).
- Frontend: homepage/sidebar entry routing now uses the server Case open API
  (openRectificationFromHomepage/openRectificationSession/startNewRectification)
  with exact sessionId/caseId and server-owned shouldStartOpening; CTA driven
  by entry-summary; chat restores from persisted turns, candidate cards from
  the Candidate Snapshot API, activity from real NDJSON + persisted receipts;
  direct durable candidate-accept endpoint for the UI cards.
2026-08-11 17:17:56 +08:00
Jesse_Chen b9fe6a6be3 fix rectification session persistence 2026-08-04 00:38:16 +08:00
Jesse_Chen 1131e9eb3b fix(rectification): replace v4 entry with agent opening 2026-08-03 15:11:19 +08:00
Jesse_Chen 7abc053278 fix(rectification): expose agentic route and runtime trace 2026-08-01 18:18:43 +08:00
Jesse_ChenandClaude 9417148b0a feat(rectification): add agentic birth-time rectification MVP
Add a new agentic rectification flow that lets an LLM drive the full
jyotish-vedic-astrology methodology on the web, with the Python engine as
its computation layer (mirroring local Claude Code):

- mastra/rectification-tools.ts: 7 engine tools (gate/scan/score/diagnostics/
  candidate-features/confirm/save-birth-time)
- mastra/agentic-rectification.ts: agent mounting the full skill + tools
- lib/rectification-agentic/session.ts: server-owned profile + confirmation
  gate; the LLM can only persist the exact minute the engine's high-rigor
  gate confirmed
- app/api/rectification/agent/route.ts: NDJSON streaming endpoint with
  credit reserve/settle
- components/rectification-agentic-chat.tsx + entry switch: new sessions use
  the agentic chat; in-progress v4 cases still resume on the v4 panel
- migration 20260801000000: service-role RPC writing profiles.active_birth_time
  with baseline concurrency guard
- tests for tools + session (12 cases); full suite passes 1076

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-01 02:20:00 +08:00
Jesse_Chen a550b98da7 refactor: make birth time rectification conversational 2026-07-27 22:33:12 +08:00
Jesse_Chen 2ca245d643 feat: rebuild birth time rectification workflow 2026-07-27 09:57:14 +08:00
Jesse_Chen 8150df8942 fix: preserve rectification streaming and history 2026-07-25 02:08:10 +08:00
Jesse_Chen 3ca30ed7de feat: complete minute birth-time rectification flow 2026-07-25 01:17:14 +08:00
Jesse_Chen e55e06521a refactor: simplify rectification conversation chrome 2026-07-23 17:02:11 +08:00
Jesse_Chen b9fa304b1a fix: follow rectification replies to bottom 2026-07-23 16:30:21 +08:00
Jesse_Chen 73cafeb6e0 fix: stream validated rectification replies 2026-07-23 15:45:42 +08:00
Jesse_Chen 685f322981 fix: restore conversational rectification history 2026-07-23 14:26:35 +08:00
Jesse_Chen f9010c8797 feat: make birth-time rectification conversational 2026-07-23 13:12:09 +08:00
Jesse_Chen 3069a7c8a0 feat: streamline conversational birth-time rectification 2026-07-22 17:39:11 +08:00
Jesse_Chen f4ac6ce75e fix: make rectification follow-up actionable 2026-07-21 22:53:56 +08:00
Jesse_Chen bfc6870614 feat: complete verifiable birth-time rectification flow 2026-07-21 22:16:18 +08:00
Jesse_Chen 53dddb8b43 fix: make rectification question handoff durable 2026-07-21 11:58:42 +08:00
Jesse_Chen 47f2e9c989 feat: resume questions after birth-time confirmation 2026-07-21 10:45:42 +08:00
Jesse_Chen 8be39d5ad6 fix: harden birth-time consultation modes 2026-07-21 07:25:02 +08:00
Jesse_Chen 5c8d965f16 fix: reset rectification corrections safely 2026-07-21 05:57:30 +08:00
Jesse_Chen 887b40df43 fix: persist rectification evidence corrections 2026-07-21 05:23:51 +08:00
Jesse_Chen c68f4e5f4f fix: isolate rectification UI mutations 2026-07-21 04:48:30 +08:00
Jesse_Chen 741a395a77 fix: harden conversational rectification UI 2026-07-21 04:23:59 +08:00
Jesse_Chen 4d8c5268d3 feat: render conversational rectification 2026-07-21 03:46:11 +08:00