Commit Graph
2158 Commits
Author SHA1 Message Date
Jesse_ChenandCursor 529fcc097f fix(rectification): keep invite collect CHECK-legal after kind mapping (BUG-656)
Independent Staging Quality Gate / validate (push) Successful in 9m14s
Independent Staging Quality Gate / publish (push) Successful in 2m12s
Full TAP failed because invite_more is not a target_kind enum value, and
exhaustion re-decide after skipped targeted persist must reuse decideAfterInferenceChange.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 06:34:35 +08:00
Jesse_ChenandCursor eae049d0ea fix(rectification): persist refresh attempts and map collect focus kinds (BUG-656/657/658)
Independent Staging Quality Gate / validate (push) Failing after 13m28s
Independent Staging Quality Gate / publish (push) Skipped
Empty engine refresh now records an already_answered attempt so GET can leave wait-to-narrow; collect kinds map onto the table CHECK; remaining candidates drive probe refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 06:09:20 +08:00
Jesse_ChenandClaude Fable 5.1 2b6d28e7a7 docs(tasks): index 09-11 rectification briefs; fix brief for BUG-656~658 after reviewing 512be9b7
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-11 21:30:34 +00:00
Jesse_ChenandCursor e59dd47cdf docs: record BUG-655 fix SHA 512be9b7
Independent Staging Quality Gate / validate (push) Successful in 14m28s
Independent Staging Quality Gate / publish (push) Successful in 12m52s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 01:53:25 +08:00
Jesse_ChenandCursor 512be9b76e fix(rectification): persist refreshed probes only when the engine has new questions (BUG-655)
Empty refreshes were writing inference rows, and GET-selected probe keys could miss inference_state, so persist rejected the next card.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 01:51:57 +08:00
Jesse_ChenandCursor 6c9a089620 fix(rectification): refresh remaining probes and targeted collect before delivering range (BUG-653/654)
Independent Staging Quality Gate / validate (push) Successful in 13m54s
Independent Staging Quality Gate / publish (push) Successful in 10m50s
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>
2026-09-11 18:28:39 +08:00
Jesse_ChenandCursor 9941c34d4b docs: record BUG-651 gate follow-up SHA f870d3d7
Independent Staging Quality Gate / validate (push) Successful in 10m6s
Independent Staging Quality Gate / publish (push) Successful in 16m23s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 15:23:27 +08:00
Jesse_ChenandCursor f870d3d757 fix(rectification): keep dated precision cards after empty dated discriminator pool (BUG-651)
Staging gate 2558 failed because leftover tests still expected D9/D10 or leftover collect after the pool emptied. Discriminate sessions still deliver; dated precision cards still ask.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 15:22:55 +08:00
Jesse_ChenandCursor 035865d4c1 docs: record BUG-651/652 fix SHA 66f63c76
Independent Staging Quality Gate / validate (push) Failing after 13m47s
Independent Staging Quality Gate / publish (push) Skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 14:34:46 +08:00
Jesse_ChenandCursor 66f63c7643 fix(rectification): deliver range when dated discriminator pool is empty (BUG-651/652)
When dated choice probes are exhausted after the training gate, stop treating yearless D9/D10 cards as the next discriminator and persist a range carrier in the same answer transaction.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 14:33:39 +08:00
Jesse_ChenandCursor 1fa994ea63 fix(rectification): keep dated occupation answers scoreable (BUG-649/650)
Independent Staging Quality Gate / validate (push) Successful in 13m26s
Independent Staging Quality Gate / publish (push) Successful in 9m33s
Occupation collect was wiping year-month into an unscored note, and idle gap copy never joined the evidence turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 11:49:52 +08:00
Jesse_ChenandCursor e36bda53fc docs: record BUG-646–648 fix SHA dd8f35f7
Independent Staging Quality Gate / validate (push) Failing after 35s
Independent Staging Quality Gate / publish (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 01:44:39 +08:00
Jesse_ChenandCursor dd8f35f7ba fix(rectification): invite-first collect, holdout at 4 events, Skill 10.0.23 (BUG-646–648)
Stop domain-wheel collecting and age-band years in prompts. Ask until the training gate, then discriminate until convergence, then deliver a range plus a concrete follow-up. Reserve holdout only with four dated events.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 01:43:02 +08:00
Jesse_ChenandClaude Fable 5.1 cb04529728 docs(tasks): collection redesign v2 — threshold-driven stops, no provisional result
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 15:12:06 +00:00
Jesse_ChenandClaude Fable 5.1 98bc79fae4 docs(tasks): collection-flow redesign brief (BUG-646~648); supersede exhausted-gate brief
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 15:06:58 +00:00
Jesse_ChenandClaude Fable 5.1 3cd7a95d58 docs(tasks): exhausted-gate exit brief (BUG-646/647)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 14:57:16 +00:00
Jesse_ChenandCursor fff6da6875 docs: record BUG-641–643 fix SHA 52db714b
Independent Staging Quality Gate / validate (push) Successful in 10m32s
Independent Staging Quality Gate / publish (push) Successful in 35m25s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 21:54:17 +08:00
Jesse_ChenandCursor 52db714ba9 fix(rectification): equal-weight collect, year-cue questions, classifier no/unsure (BUG-641–643)
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>
2026-09-10 21:53:10 +08:00
Jesse_ChenandCursor 71eaeb2e8b docs(tasks): mark BUG-644/645 ready for review after merging staging
Independent Staging Quality Gate / validate (push) Successful in 31m33s
Independent Staging Quality Gate / publish (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 21:06:55 +08:00
Jesse_Chen 59075da783 merge origin/staging: docs acceptance of BUG-635~640 2026-09-10 21:06:10 +08:00
Jesse_ChenandCursor 119d7a8a4f docs: record BUG-644/645 fix SHA a3a51c32
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 21:04:20 +08:00
Jesse_ChenandCursor a3a51c32c2 fix(rectification): re-ask superseded collect ids instead of fake delivery (BUG-644/645)
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>
2026-09-10 21:03:12 +08:00
Jesse_ChenandClaude Fable 5.1 cd688add93 docs(tasks): acceptance of BUG-635~640; fold expectedWrite yes-mapping gap into collect-semantics brief
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 12:51:27 +00:00
Jesse_ChenandClaude Fable 5.1 d40f2032fc docs(tasks): rebase baselines after BUG-635~640 landed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 12:42:01 +00:00
Jesse_ChenandClaude Fable 5.1 82eb3b79f2 docs(tasks): superseded collect focus dead-end brief (BUG-644/645)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 12:41:03 +00:00
Jesse_ChenandCursor 8f9eb58738 fix(rectification): give persist-first-sentence fixture a completed batch (BUG-635)
Independent Staging Quality Gate / validate (push) Successful in 9m47s
Independent Staging Quality Gate / publish (push) Successful in 8m55s
The staging gate failed because that case claimed 记下了 without a write tool, which the unwritten-evidence guard now rejects.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 18:11:25 +08:00
Jesse_ChenandCursor a1db6fe550 fix(rectification): feed cluster span into confirmation-gate refresh paths
Independent Staging Quality Gate / validate (push) Failing after 9m55s
Independent Staging Quality Gate / publish (push) Has been skipped
Representative minutes still undercounted width on dossier refresh and parsed snapshots even after the engine used cluster coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 17:51:07 +08:00
Jesse_ChenandCursor a998b6ec53 fix(rectification): stop unwritten-evidence claims and same-cluster dasha false conflicts (BUG-635–640)
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
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>
2026-09-10 17:38:37 +08:00
Jesse_ChenandClaude Fable 5.1 301827ad59 docs(tasks): collect-semantics brief (BUG-641~643); drop regex fallback from BUG-635 brief
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 06:26:47 +00:00
Jesse_ChenandClaude Fable 5.1 84572c079d docs(tasks): latent-defect audit brief for rectification (BUG-637~640)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 06:14:37 +00:00
Jesse_ChenandClaude Fable 5.1 a15fc3efbe docs(tasks): brief for unwritten evidence claim dead-end (BUG-635/636)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 06:03:06 +00:00
Jesse_ChenandCursor d96b24c276 fix(rectification): keep skipped health out of holdout and repair empty exits (BUG-626, BUG-627)
Independent Staging Quality Gate / validate (push) Successful in 12m11s
Independent Staging Quality Gate / publish (push) Successful in 7m54s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 11:59:47 +08:00
Jesse_ChenandCursor 0263658477 fix(rectification): host-fallback empty evidence turns and choice range narration (BUG-633, BUG-634)
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>
2026-09-10 11:57:07 +08:00
Jesse_ChenandClaude Fable 5.1 31f2a722aa docs(tasks): brief BUG-633/634 evidence-turn empty answer and choice narration
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-10 02:18:24 +00:00
Jesse_ChenandCursor 719ff55a09 fix(rectification): keep clock-stamped events out of window intercept (BUG-631, BUG-632)
Independent Staging Quality Gate / validate (push) Successful in 12m36s
Independent Staging Quality Gate / publish (push) Successful in 2m11s
Dated life events with clock times were swallowed as birth-window replies, and compare columns still stopped at the first nine candidates after the hour-window cap.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 09:23:35 +08:00
Jesse_ChenandClaude Fable 5.1 2de2aa0b71 docs(tasks): accept BUG-612/613, 614/615, 621, 623~625, 629 on fef54b6e; followups brief (BUG-631/632)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 16:55:57 +00:00
Jesse_ChenandCursor fef54b6e42 fix(rectification): downgrade yearless personality probes to tie-breakers (BUG-629)
Independent Staging Quality Gate / validate (push) Successful in 11m54s
Independent Staging Quality Gate / publish (push) Successful in 8m14s
Ask dated dasha probes first; D9/D10 and nakshatra wait until that pool is empty, score at half weight, and never eliminate. Skill 10.0.21.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 00:26:58 +08:00
Jesse_ChenandCursor eb8a3120e5 Merge origin/staging into consultation family-contract fix.
Independent Staging Quality Gate / validate (push) Successful in 11m16s
Independent Staging Quality Gate / publish (push) Successful in 34m6s
Keep BUG-628 collect-chip history and add BUG-630 natal homepage contract fix.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:49:14 +08:00
Jesse_ChenandCursor c53decdb85 fix(consult): complete natal chart tool on homepage topic cards (BUG-630)
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>
2026-09-09 22:46:46 +08:00
Jesse_ChenandClaude Fable 5.1 f4fc17ac51 docs(tasks): yearless personality probes downgraded to tie-breakers + offline calibration (BUG-629)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 14:28:53 +00:00
Jesse_ChenandClaude Fable 5.1 4eea9c10ed docs(tasks): domain alias audit brief — health/health_pressure and occupation/other (BUG-628)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 14:22:20 +00:00
Jesse_ChenandCursor 5ac5b485e0 docs: number collect-chip removal as BUG-628
Independent Staging Quality Gate / validate (push) Successful in 27m18s
Independent Staging Quality Gate / publish (push) Has been cancelled
BUG-626 and BUG-627 are already reserved on staging by the skipped-health holdout brief.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:20:35 +08:00
Jesse_ChenandCursor f0ae8cc45b fix(rectification): drop 没有/记不清 collect chips (BUG-626)
Users consistently rejected skip chips on spoken collect. Typing those phrases still declines or skips the domain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:20:35 +08:00
Jesse_ChenandClaude Fable 5.1 4067aff86c docs(tasks): index BUG-626/627 brief
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 14:16:19 +00:00
Jesse_ChenandClaude Fable 5.1 350fd13426 docs(tasks): skipped-health holdout dead end + exit gate fix brief (BUG-626/627)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 14:16:01 +00:00
Jesse_ChenandCursor 6008c07c81 fix(rectification): keep hour-window tail clusters and lock the search window (BUG-623, BUG-624, BUG-625)
Independent Staging Quality Gate / validate (push) Successful in 17m15s
Independent Staging Quality Gate / publish (push) Successful in 2m15s
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>
2026-09-09 20:45:11 +08:00
Jesse_ChenandCursor a31a5e2426 fix(rectification): open history cases with their bound skill identity (BUG-621)
Independent Staging Quality Gate / validate (push) Successful in 9m46s
Independent Staging Quality Gate / publish (push) Successful in 32m4s
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>
2026-09-09 19:35:23 +08:00
Jesse_ChenandCursor 15cede97e7 fix(rectification): keep the adopt-card lock in state so lint can pass (BUG-622)
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
Writing selectionOfferLockRef during render tripped react-hooks/refs after the two contract tests went green. The lock now updates like seededTurns, and nextSelectionCardLock reuses the same object when the key is unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 19:34:39 +08:00
Jesse_ChenandClaude Fable 5.1 3582c3ea99 docs(tasks): window cluster cap brief — no verbal window change; fixed reply instead (product decision)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 11:32:42 +00:00
Jesse_ChenandClaude Fable 5.1 bdfb9462e2 docs(tasks): window cluster cap P0 brief — tail clusters dropped, cluster-range credible interval, mid-session declared window (BUG-623~625)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-09 11:29:23 +00:00