v0.5.0 — Opus 4.8 support
Summary
Adds support for Opus 4.8 (claude-opus-4-8), the flagship model introduced in Claude Code 2.1.154. Sessions running 4.8 now show the correct "Opus 4.8" model badge and — crucially — a context gauge scaled to the 1M-token window rather than 200K.
Why this matters
Opus 4.8 ships with a 1M-token context window as the API default — no beta header, no [1m] settings suffix required. But the JSONL message.model field only ever carries the bare id claude-opus-4-8 (verified across 3,185 turns on real transcripts; the [1m] suffix never appears there).
If 4.8 fell through to the generic opus branch, ModelContextLimits would report 200K, and every 4.8 session would over-report context-gauge fullness by 5× — the exact failure mode that bit Opus 4.7 in CC 2.1.117.
What changed
ModelContextLimits—claude-opus-4-8joins the inherent-1M branch alongside 4.7, so the context gauge is always computed against 1M regardless ofsettings.json.ModelNameFormatter—opus-4-8→ "Opus 4.8", listed newest-first so it's never shadowed by 4.7/4.6. Provider-prefixed ids (us.anthropic.claude-opus-4-8) resolve too.- The model-family color (orange/Opus), badge, and
(1M)label all flow through automatically — the parser, settings reader, and badge views are model-agnostic and needed no change.
Tests
Regression guards added to ContextUsageRatioTests:
claude-opus-4-8(and the provider-prefixed form) →1_000_000without anysettings.json[1m]mapping — closes the 5×-over-report failure mode.- Display name resolves to "Opus 4.8" and is never shadowed by 4.7/4.6.
Note: this repo's test target uses XCTest, which requires the full Xcode SDK. On Command Line Tools–only machines
swift buildandbash scripts/build-app.shsucceed; runswift teston a machine with Xcode installed.
Version
Info.plist: 0.4.1 → 0.5.0, build 7 → 8.
Full Changelog: v0.4.1...v0.5.0