Release notes

FEATURE

The World Cup panel looks better, and models with no price stop pretending to be free

Several visual details have been sharpened up. In the "World Cup" panel, the side burning more usage will now field more players on the pitch and push their formation forward aggressively; also, the two duel bars that used to get stuck near the middle now properly fill all the way to the edges. Separately, when the system can't find pricing data for an AI model, it used to show a misleading "$0.00" (making it look free), but now it honestly displays a "—". Furthermore, Codex quota rows are now accurately labelled according to their true time window (Session, Weekly, Monthly), so a 30-day quota is no longer mistakenly labelled as a Session. Finally, parsing Codex logs is much faster now, so a fresh launch no longer has to sluggishly re-read your entire history. It's like checking the price tag on an item: the scanner used to ring up $0 and give you false hope when it couldn't find the barcode, but now it simply draws a dash to admit it doesn't know.

Original changelog

Original changelogThe World Cup panel looks better, and models with no price stop pretending to be free
**World Cup panel: each team's squad size now reflects its usage**: a side using more of its session quota fields more players (5–8) and presses its formation toward midfield, sharing the same session-percent signal that already drives the ball drift.
**Models with no pricing data show "—" instead of a misleading $0.00**: the cost column rendered unknown models as $0.00, which reads as free rather than unknown; unavailable costs now render as "—" in both the HTML report and the CSV export.
**Codex quota rows are labelled by window length**: the free-plan 30-day window no longer shows as "Session" — each row's label now comes from the window length Codex reports (≈ Session / Weekly / Monthly).
**World Cup quota bars now fill their whole half**: the duel bars used auto-margins that bunched both fills against the centre line, leaving the outer ends blank so a 100% side never reached the track edge; each fill is now anchored to the centre and extended outward.
**Faster Codex log parsing**: unchanged session files are no longer re-read on every poll, and a versioned on-disk cache lets a fresh launch reuse prior parse results instead of re-scanning all history cold.