Summary
Claude enterprise accounts have three related display problems. All three were identified by an enterprise Claude Code user (@cachedout) who has a working fix ready.
Problems
1. Spend metric labeled "Extra Usage" instead of "Spend"
The extra_usage API field is labeled "Extra Usage" everywhere — a consumer term for an optional add-on beyond a quota. For enterprise accounts, this field is the entire monthly billing metric; there is no quota to exceed. The correct label is "Spend".
Root cause: the widget descriptor title is baked in at startup and cannot vary by account type. The mapper has no way to signal a different display name.
2. Session, Weekly, Fable, and Sonnet rows show permanent "No data"
Enterprise accounts have no per-session or per-week token caps. The Anthropic API returns null for five_hour, seven_day, seven_day_sonnet, and limits[] on enterprise plans — these limits structurally do not exist. The four rows render as permanent "No data" placeholders with no way to dismiss them.
3. Usage trend and spend tiles always empty
The log scanner's ownedUsageFiles filter attributes CLI sessions via an ownerOrganizationUuid stamp in session events or via the Claude Desktop session index. Claude Code CLI sessions do not stamp org UUIDs, and the Desktop index only covers sessions Claude Desktop is aware of. The fallback (allowsUnattributedSessions) is gated on having exactly one Claude account record — users who also have a Desktop org account have more than one record, so the fallback is disabled and every CLI session is dropped. Result: the usage trend and Today/Last 30 Days tiles are always empty for enterprise CLI users.
Proposed fix
A fix is implemented and tested. Happy to share the PR once an issue is approved. In brief:
- Add
titleOverride: String? to MetricLine.progress so the mapper can signal a context-sensitive display name without touching the widget registry.
- Skip emitting token-window lines in the mapper for enterprise accounts; mark those descriptors
hideWhenNoData so the dashboard omits them instead of showing "No data".
- In
ProviderCatalog, CLI-based Claude cards always set allowsUnattributedSessions: true — ~/.claude/ is the exclusive CLI home for the default CLI account and its sessions belong to that account unconditionally.
All changes have regression tests.
Summary
Claude enterprise accounts have three related display problems. All three were identified by an enterprise Claude Code user (@cachedout) who has a working fix ready.
Problems
1. Spend metric labeled "Extra Usage" instead of "Spend"
The
extra_usageAPI field is labeled "Extra Usage" everywhere — a consumer term for an optional add-on beyond a quota. For enterprise accounts, this field is the entire monthly billing metric; there is no quota to exceed. The correct label is "Spend".Root cause: the widget descriptor title is baked in at startup and cannot vary by account type. The mapper has no way to signal a different display name.
2. Session, Weekly, Fable, and Sonnet rows show permanent "No data"
Enterprise accounts have no per-session or per-week token caps. The Anthropic API returns
nullforfive_hour,seven_day,seven_day_sonnet, andlimits[]on enterprise plans — these limits structurally do not exist. The four rows render as permanent "No data" placeholders with no way to dismiss them.3. Usage trend and spend tiles always empty
The log scanner's
ownedUsageFilesfilter attributes CLI sessions via anownerOrganizationUuidstamp in session events or via the Claude Desktop session index. Claude Code CLI sessions do not stamp org UUIDs, and the Desktop index only covers sessions Claude Desktop is aware of. The fallback (allowsUnattributedSessions) is gated on having exactly one Claude account record — users who also have a Desktop org account have more than one record, so the fallback is disabled and every CLI session is dropped. Result: the usage trend and Today/Last 30 Days tiles are always empty for enterprise CLI users.Proposed fix
A fix is implemented and tested. Happy to share the PR once an issue is approved. In brief:
titleOverride: String?toMetricLine.progressso the mapper can signal a context-sensitive display name without touching the widget registry.hideWhenNoDataso the dashboard omits them instead of showing "No data".ProviderCatalog, CLI-based Claude cards always setallowsUnattributedSessions: true—~/.claude/is the exclusive CLI home for the default CLI account and its sessions belong to that account unconditionally.All changes have regression tests.