0.46.0 plugin latest
Fixed
- Honest tier/haiku accept-rate — outcomes now resolve from the per-turn
session_turnsledger instead of the session's first-seen model. Taking a mid-session/modeldowngrade (exactly what the nudge asks) is now credited as accepted rather than silently scored rejected.accept_ratewas a strict lower bound; it now reflects sessions with real per-turn evidence. Pre-v0.46 sessions without a ledger stay pending until a later history backfill. pruneOldDatanow dropssession_turnsrows with a nullts.WHERE ts < ?never matches NULL (SQL three-valued logic), so turns whose transcript timestamp failed to parse were silently retained forever. Such turns are also unusable — resolvers filterts > suggestion.ts, so null-ts turns can never contribute to an outcome. They are now dropped alongside aged rows.
Added
session_turnstable (schema v10): one row per assistant turn (model, usage columns, per-turncost_usd) extracted from the transcript at Stop; pruned on the 90-day rolling window. Foundation for per-model cost attribution and the honest accept-rate resolver.