Hospital records, family estimates and period-only windows now keep distinct copy on the board and range card. Scoring still uses the reported clock as the search-window centre. Hospital minutes outside the current range are stated with the offset and no preference.
When the seven collect lines are closed, the range card still appears, but the copy asks for one more exact-day event of any kind instead of saying the questions are finished. A new dated event after delivery stales the snapshot so the session does not stay delivered.
Dated-pool empty now yields existence cards per remaining layer, leftover-candidate copy, and an optional D9/D10 tie-break on the range card. Skill 10.0.25.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dated-choice exhaustion is not convergence. Refresh probes from remaining
active candidates, then ask a targeted collect, then deliver. Skill 10.0.24.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ask finance and health like other domains, put year-cued collect questions first, and let the classifier distinguish decline vs skip. Skill 10.0.22.
Co-authored-by: Cursor <cursoragent@cursor.com>
A superseded collect row still occupied the unique question id, so the last
"没有" skipped the unasked domain and spoke delivery copy while can_adopt stayed false.
Co-authored-by: Cursor <cursoragent@cursor.com>
Host only says 记下了 after a real write; Mastra schema rejections fail closed. Ledger year keys no longer drop quality probes, dual-dasha agreement is per cluster, width uses cluster span, and public house tables follow the inference minute.
Co-authored-by: Cursor <cursoragent@cursor.com>
Evidence turns that already recorded a batch no longer fail the whole run when the model emits no text; unchanged ranges now name which clock spans lead or lag, and the timeline no longer says 收窄.
Co-authored-by: Cursor <cursoragent@cursor.com>
Thinking models were spending the first natal step on skill_read or a Level 2 draft, so home chips such as 家庭 never satisfied the calculation contract.
Co-authored-by: Cursor <cursoragent@cursor.com>
Users consistently rejected skip chips on spoken collect. Typing those phrases still declines or skips the domain.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hour windows no longer drop later signature clusters. Credible range uses cluster coverage, and a mid-session spoken birth window gets a fixed reply without calling the model.
Co-authored-by: Cursor <cursoragent@cursor.com>
Session open was sending the live registry version into v2, so every Skill
bump rejected older cases with an unmapped 500 and no error on the clicked row.
Co-authored-by: Cursor <cursoragent@cursor.com>
Engine by_time ledgers now include the full candidate set so posterior columns can look up fit and windows. Delivery turns keep up to three sentences after idle persist; the card subtracts repeated traits and folds the board chart.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move 没有/记不清 under the spoken question, inset the timeline to the assistant column, and keep the three-column card after 更像这个 with the closing line under it (BUG-618–620).
Co-authored-by: Cursor <cursoragent@cursor.com>
Homepage「深入看今日」was rewritten to natal 综合, then each compose slice burned its only step on a tool call, so the answer stayed empty. Pin the route theme, write the three daily sections with tools disabled, and filter thinking by sentence so English word-salad cannot leak.
Co-authored-by: Cursor <cursoragent@cursor.com>
Longform report pages kept the D1/D9/Moon and varga headings but skipHtml
stripped the engine's inline SVG. Emit a jyotish-chart JSON fence beside
each SVG and render a diamond chart on the reader without relaxing HTML
sanitization. BUG-607.
Co-authored-by: Cursor <cursoragent@cursor.com>
The range is the only quantity that expresses convergence, and it existed
only as a sentence in the transcript. The bar makes it permanent.
It is the chat grid's first row, outside the scroll container, so
scrollHeight is untouched and use-conversation-scroll-anchor needs no
change. Its height is fixed because nothing observes it: a growing bar
would alter clientHeight and let an anchored reader lose the tail.
The axis is the current search window, not the opening one, since
widening overruns the opening window. Marks are binary — in range or
excluded — because relative support between candidate minutes carries no
demonstrated minute-level discrimination (BUG-560, blocked).
Band and marks move by transform alone; globals.css bans width
transitions, and transform keeps the motion off the layout path.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016P5RoqzmUQEbeC2qjAkeGr
The worker already persists a phase ladder and durable per-section rows;
the waiting screen parsed the progress fields and rendered none of them.
Chapter progress now drives the screen: one cell per chapter rather than
a percentage bar, since the job percent jumps 0->30 and 90->100.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016P5RoqzmUQEbeC2qjAkeGr
Bare `/` was treating the latest history session as active, so a returning account could auto-open a failed rectification Case and left-align the starter home.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the minute-row delivery card with up to three compare columns so users can pick the time that fits, and apply the adult-year floor on inspect fallbacks.
Co-authored-by: Cursor <cursoragent@cursor.com>
Make the range card row-select, drop the composer 先这样 control and adopt status bar, keep delivery copy to three sentences with a folded verification report, and skip a second no-message agent run after a terminal delivery turn.
Co-authored-by: Cursor <cursoragent@cursor.com>
Null-check the candidate result before reading resultId so next build can ship. Adopt reconnects prospective windows on the first verify turn, and dismissing the range card now shows the collect hint.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop/idle reuse the scored evidence path so existing answers stay on the range. Delivery uses one range card (Skill 10.0.15) instead of four minute cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Engine asked_probe_keys no longer include varga split hashes that 400 the scorer, failed compares become visible and retry, user stop can still deliver a range on a stale snapshot, and holdout no longer reasks domains already in the ledger.
Co-authored-by: Cursor <cursoragent@cursor.com>
Engine calls already returned markdown; the worker failed because local postgres upsert required onConflict and the appendix write omitted it.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hovering A/B/C/D rewrote a leading/lagging time line and made the card flicker; the step-state sentence above the composer was instructional filler, not something the user needed to answer.
Co-authored-by: Cursor <cursoragent@cursor.com>
Intake stores how sure the user is; rectification now searches that range, offers a one-click widen when event fit is low at the edge, and trisects windows longer than two hours before the minute grid.
Co-authored-by: Cursor <cursoragent@cursor.com>
Staging PostgREST rejects the executiveSummary JSON-path alias, so GET /api/reports 500s. Persist a plain card_summary column from the Markdown excerpt instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep askable cards after exhaustion, explain each probe, read the adopted credible range in reports and chat, and compare declared periods before the minute grid when the clock is unknown.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop falling through to "say another event" after dated and occupation collect are done. Deliver an adopt path or a gate sentence, and add a spoken-collect stop control.
Co-authored-by: Cursor <cursoragent@cursor.com>
New reports skip the writer, persist pl9 Markdown as the body, and settle zero-token usage on the catalog model. Planned longform sections now emit blocked rows instead of vanishing.
Co-authored-by: Cursor <cursoragent@cursor.com>
The first-round title guard compared the pre-RPC snapshot, so append_consultation_question had already rewritten the title and the model name never landed.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Session history was silently clipped to the first 4000 characters of the last 12 messages, so follow-ups could not see timing or audit tables. Keep an append-only tail plus a checkpoint summary, retry overflow in the same request, and expose cache hit rate in admin usage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enter now queues one follow-up instead of dropping it, and a rectification stop leaves the streamed reply with a grey notice instead of an error alert.
Co-authored-by: Cursor <cursoragent@cursor.com>
Deploy-window connection errors were translated into "服务尚未配置".
Only real configuration errors keep that copy; other 503s use service_unavailable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Web export now calls the same full pack as the long skill report and caches an owner-only Markdown download. Appendix failure stays unavailable and does not change the main report status.
Co-authored-by: Cursor <cursoragent@cursor.com>
BUG-430 loaded Inter via next/font/google, which failed Gitea publish
run 2408 when the Docker build could not reach fonts.googleapis.com.
Co-authored-by: Cursor <cursoragent@cursor.com>
Adopted reverse-verify repeated already-asked collect stems, treated 「这题跳过」 as stopping the case, and promised holdout/OOS checks that never ran. Collect spoken stems no longer prefix a year.
Co-authored-by: Cursor <cursoragent@cursor.com>
Accepted profiles were selecting a revoked rectification table and failing the report before the engine ran. Degrade to a null window when that optional read fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
Holdout stays closed until the training gate opens and skips declined domains.
Dated collect order is shared with exhaustion; spoken prompts must name the domain; progress copy uses collection_progress only.
BUG-527 through BUG-530.
Co-authored-by: Cursor <cursoragent@cursor.com>
Chat body, type weights, and radii were still a second scale; membership purchase now uses the shared Button so the filled terracotta action is one implementation.
Co-authored-by: Cursor <cursoragent@cursor.com>
The report centre and reader were a second newspaper identity. They now reuse canvas, hairline, and serif display tokens so the document feels like the rest of Jyotisha.
Co-authored-by: Cursor <cursoragent@cursor.com>