Commit Graph

632 Commits

Author SHA1 Message Date
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 4a400bff10 fix(web): sync activity-receipt contract with live model replies
The staging quality gate scanned the old settled.spoken streaming state after the live path started rendering answer.delta as raw.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 16:56:00 +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 d7afe5b50d fix(web): restore rectification discriminator cards and stop-offer path
Coverage-complete ties never persisted A/B/C/D because contrast probes were stamped with an answered education quality probe, remaining minutes were asked as window D10 signs, and 「没有了」 missed the stop pattern.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 14:41:48 +08:00
Jesse_Chen 32f7d774b6 fix(web): keep rectification interview planning out of the spoken answer
Thinking is disabled, so Chinese process talk after tools arrives as
text-delta. Widen the leak-net so tool-label echoes and internal field
names stay out of answer.delta, and keep the user-facing follow-up.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 12:55:34 +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 3519cf253e fix(web): restore server supabase import for rectification agent route
BUG-368 dropped createServerSupabaseClient while keeping the call, so staging publish failed at next build after validate skipped the production build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 10:52:33 +08:00
Jesse_Chen d2d7542df1 fix(web): use const for unused-reassign inference ledger receipt
The staging quality gate already passed 2006 frontend tests, then ESLint failed on prefer-const in the BUG-367 test helper.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 10:12:08 +08:00
Jesse_Chen 2325b30227 fix(web): sync staging gate contracts with choice billing and new tables
BUG-367/368 expanded the agent action enum, dropped public thinking traces, and added two business tables, but the quality-gate source scans and exact public table list were still on the old snapshots.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 09:52:21 +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 3b785b821d fix(web): unblock staging web image typecheck for inference probes
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
Docker next build rejected 909de8b8 because engine probe outcomes, reverse-verify source checks, and a nullable window scan failed TypeScript.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 09:40:48 +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 29750d3835 fix(web): persist C/D rectification answers without waiting for rescore
Independent Staging Quality Gate / validate (push) Failing after 9m53s
Independent Staging Quality Gate / publish (push) Has been skipped
Choice C/D without new evidence never changed the candidate posterior until the next dated-event rescore, and persist-v2 would cache-hit on the same evidence fingerprint. Patch the latest decision_receipt.inference_state in place so the next follow-up sees the asked split immediately.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 22:41:01 +08:00
Jesse_Chen 75dbab08b9 fix(web): offer representative time after occupation notes cover
Dateless occupation_note stayed draft, so classic coverage never finished
and offer-candidates stayed blocked. Confirm those notes, stop crowding
dasha probes with encoded exam quality, and adopt once blocking methods
are covered.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 17:21:49 +08:00
Jesse_Chen 6b225a288c fix(web): keep later thinking below rectification tool steps
BUG-360: stream thinking and tool activity as an ordered trace so later CoT opens under 正在整理 instead of filling the first 思考 block.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 17:02:06 +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 22010e81b7 fix(web): keep rectification emit types compatible with next build
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
The spoken/thinking splitter must accept sync or async emit, matching the runner input type.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 10:20:41 +08:00
Jesse_Chen 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_Chen 995b752e70 fix(web): keep consultation thinking above one spoken answer
Per-domain thinking trees were interleaved with sliced analysis, so a finished reply still looked like unfinished checklists. One collapsed thinking panel and one full body restores the reading order.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 01:49:05 +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 8ed6118b9a fix(web): persist uncertain birth time as a start/end clock window
Users pick a clock range instead of a coarse period plus notes, so
rectification and window consult scan that range instead of a leftover afternoon bucket.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 20:48:01 +08:00
Jesse_Chen 9762063453 fix(web): diagnose personal-report schema failures and ISO list timestamps
Keep report_schema_invalid for the user, but record the inner check, retry plan bind once, and format self-hosted timestamptz so the report list no longer shows 时间未知.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 20:46:30 +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 92558ee61d fix(web): stack mobile audit tables and restore sidebar hierarchy
Independent Staging Quality Gate / validate (push) Successful in 9m27s
Independent Staging Quality Gate / publish (push) Successful in 7m40s
Narrow screens were wrapping 已执行 into a glyph column and painting every sidebar row the same gray, so history looked like top-level chrome.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 09:57:06 +08:00
Jesse_Chen 59559d4b24 fix(web): persist thinking, title sessions distinctly, and send follow-ups from the answer
Thinking disappeared on failure and never reached session storage. Keep the
sanitized chain on disk and on errors, and regroup the sidebar around reports,
charts, favorites, and dated history titles.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 09:10:47 +08:00
Jesse_Chen 649ba32034 fix(home): send starter cards instead of filling the composer
Independent Staging Quality Gate / validate (push) Successful in 11m21s
Independent Staging Quality Gate / publish (push) Successful in 17m56s
Clicking today's reading or a topic card should open a consultation and wait for the model, not leave the question in the input box.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 22:02: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 eeee0e49af fix(web): narrow natal-minute consultation mode for the production build
BUG-341 added declared_birth_window, but the natal-minute helper still returned boolean, so next build could not pass that mode into serverChartFromProfile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 20:37:44 +08:00
Jesse_Chen a4ab229e84 fix(web): stop rectification effects from setting state on mount
eslint-config-next failed staging lint because the case snapshot helper and choice-card reset called setState from useEffect. Load the snapshot in the fetch callback and remount the card by question id instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:15:18 +08:00
Jesse_Chen 6a0394aa57 fix(web): update consult source contracts for the declared-window path
BUG-341 added a third agentic consultation stream and renamed the homepage draft entrypoint, but the exact-count contracts still described two paths, so staging validate failed before publish.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 17:59:07 +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 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 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 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_Chen 50e1a4aca5 fix(web): reload stale clients instead of spinning after a release
Homepage bootstrap never escaped the loading shell when a new web image changed chunk hashes. Stamp deploymentId, stop caching chat HTML, and hard-reload failed chunk loads once.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 10:29:43 +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 8b8e5214f9 fix(web): keep onboarding and mobile natal board on one aligned overlay
Put the compact board trigger in the chat header, keep the sheet above the composer on iOS, and align onboarding messages with the intake card on the session column.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 23:54:20 +08:00
Jesse_Chen 9c4b64c952 fix(ci): pull API base image from Huawei SWR instead of DaoCloud
Staging publish failed resolving python:3.12-slim through m.daocloud.io; the web image already uses the reachable SWR docker.io/library path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 22:44:20 +08:00
Jesse_Chen 379f0e6f5f fix(ci): align rectification frontend contracts after skill-style present
The quality gate still expected the old board-only varga sentence ban, and public dasha ledger copy leaked raw scores.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 22:25:14 +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 9670b661c4 fix(rectification): show mobile natal board as a covering bottom sheet
BUG-330: the compact board sat in the same layer as the composer, so peek copy overlapped the sheet title. Overlay only below 768px; desktop stays a side column.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:35:48 +08:00
Jesse_Chen 994f0583af fix(rectification): stream answers live and keep mobile chat visible
Use the quiet overlay scrollbar on chat and the house board, replace the blocking mobile dialog with a bottom sheet, and emit agent deltas before billing so users can read progress and stop a run.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 19:46:27 +08:00
Jesse_Chen dbbcb71b6a fix(ci): stop writing dialog close refs during render
eslint-plugin-react-hooks forbids updating ref.current in render, which failed staging lint after the compact rectification board landed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 16:20:39 +08:00
Jesse_Chen fb0df7f62f merge origin/staging and renumber eight-method record to BUG-325
Independent Staging Quality Gate / validate (push) Failing after 9m25s
Independent Staging Quality Gate / publish (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 16:02:18 +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 3970410e66 fix(ci): keep sidebar contract aligned with rectification chat-panel class
BUG-322 added an is-rectification modifier on SidebarInset, but the sidebar source contract still required a fixed className and failed staging frontend CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:51:20 +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 e07d1bada4 fix(rectification): show natal houses and lagna changes in a live right rail
The board was live data sitting under chat, so each new event looked like nothing changed. Keep candidate cards in the transcript and group 换升 by minute for the side panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 14:24:05 +08:00