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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Keep provider thinking off, classify CoT as 思考, and stop remounted sessions from firing a second opening.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
BUG-353 fallbacks used undefined window columns and un-narrowed clock/focus values, so Docker next build failed typecheck and could not publish the already-pushed staging head.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>