Repository navigation
v0.213.1
A patch release: the subscription usage meters now work against the real provider payloads, and fleet members keep their ports across restarts.
Fixed
- Subscription usage meters populate (#4480). The Claude and Codex meters in Settings ▸ Providers read "Usage unavailable" because the parsers rejected the shapes the providers actually return. The Claude parser choked on the model-scoped weekly window, whose
scope.modelis an object, and filedweekly_allunder "other". The Codex parser rejectedadditional_rate_limits: null. Both now parse the live payloads, and the tests carry those shapes. - A fleet member's stop → start, or a hub restart, no longer moves it off its own port (#4481, fixes #4479). The port-in-use check from #4423 also tripped on a port that held only TIME_WAIT connections, which a member polled by the hub leaves behind for about 30 s after it stops. Members were being moved to a new port and back again (projectManager went :7875 → :7872 → :7875). A port now counts as taken only when the bind fails and something accepts connections on it.
start()also waits up to 10 s for a still-listening old process to exit before it moves the member.
Added
- Plugins can read subscription headroom (#4478, ADR 0122 D6/D7).
graph.sdk.provider_usage(account=None, *, delegate=None, model=None)returns{usable, headroom_pct, binding_window, resets_at}for an OAuth-subscription account. You can name the account by provider id or by ACP delegate:claude-agent-acp→anthropic-oauth,codex-acp→openai-codex, or an explicitaccount:on the delegate. The call reads the stored snapshot and doesn't force a poll. A window scoped to one model never limits another, so a Fable-scoped block still leaves Opus usable. If the account can't be resolved, or the snapshot is stale, unknown or missing, it returnsNone, and an unknown route behaves exactly as it did before.
Upgrading
- No config changes. After upgrading, the usage meters in Settings ▸ Providers fill in on their next poll.
- Fleet members keep their recorded ports across restarts.
What's Changed
- feat: usage U7: graph.sdk.provider_usage() + delegate→account mapping (#4436) by @mabry1985 in #4478
- fix(usage): parse the live Claude and Codex usage payloads by @mabry1985 in #4480
- fix(fleet): don't move a member off its own port on restart (#4479) by @mabry1985 in #4481
Full Changelog: v0.213.0...v0.213.1