Skip to content

v0.5.0 — Opus 4.8 support

Choose a tag to compare

@anhyobin anhyobin released this 30 May 06:47
· 18 commits to main since this release

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-8 joins the inherent-1M branch alongside 4.7, so the context gauge is always computed against 1M regardless of settings.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_000 without any settings.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 build and bash scripts/build-app.sh succeed; run swift test on 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