You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Grok is a registered provider with no usage visibility. Research (spec §Readers/grok) verified the transport: GET https://cli-chat-proxy.grok.com/v1/billing?format=credits with the long-lived key from ~/.grok/auth.json (read-only, 0600) and the required X-XAI-Token-Auth: xai-grok-cli header. Base URL confirmed present in the installed grok 1.0.30 binary.
Expired login ⇒ actionable error row ("start any Grok session to refresh"); self-heals on the next 60s poll after a Grok session refreshes the file. Never writes auth.json; never reimplements the OIDC refresh.
Maps subscriptionTier, config.creditUsagePercent, currentPeriod.end, productUsage[] to plan/rows/detail. Credits row is all-models scope; product rows model-family.
Phase 2 of the spec. Depends on the usage-source registry from the Phase 1 issue.
Acceptance criteria
Reader + mapping unit tested against captured fixtures (fresh capture with a live login during this PR; fixture stores response body only).
Expiry branch tested; error copy actionable.
Keys never logged/cached/echoed (sanitized error path tested).
Grok row renders in the modal rail/detail when enabled.
Activity
fix(usage): address the Phase 1 review — three blockers, two should-f…
Juliusolsson05 commentedon Sep 22, 2026
Implementation complete in PR #1126 (enablement + both readers + review fixes from four orchestrated reviewers). CI running; will merge after green.
fix(usage): final review — terminal-kind splits, direction defaults, …
feat(usage): Grok subscription usage reader
fix(usage): use the spec's canonical proxy-header casing
fix(usage): address the Phase 1 review — three blockers, two should-f…
fix(usage): final review — terminal-kind splits, direction defaults, …