v5.4.10 — Zero-effort upgrade for all users
The problem
v5.4.9 fixed streaming token dedup and subagent roll-up, but existing users who updated the plugin still saw the old model mix percentages and token counts. The dashboard auto-regen only refreshes the HTML template — it doesn't re-parse JSONL files. Users had to manually run collect --rebuild, which nobody does.
The fix
A PRAGMA user_version=3 migration triggers automatically on the first collect after upgrading to v5.4.10+. It wipes all aggregate tables (session_log, model_daily, daily_stats, skill_daily, subagent_daily) and sets rebuild=True, forcing the collection loop to re-parse every JSONL with the corrected streaming-aware MAX-dedup and subagent token roll-up.
User experience: update the plugin, start a new session, close it. Next SessionEnd fires session-end-flush → runs collect_sessions → migration triggers → full rebuild → dashboard regenerated with correct data. No manual commands.
Also in this release
- Time period labels on all headline cards: Model Mix, Billable Tokens, and Messages now show "(30d)" so you know what window you're looking at.
- Model mix percentages now match Desktop within 1-3 percentage points after rebuild.
Version alignment
All 5 surfaces at 5.4.10: plugin.json, marketplace.json, measure.py, git tag, GitHub release.