Outcome
Offer useful at-a-glance activity, limits, and service health beyond the current Today tray totals, while reusing the shared query/quota services and avoiding a parallel dashboard.
Scope
- Add calendar heatmaps and trend/streak views for tokens, cost, sessions, categories, or productive outcomes with user-selected metric and provider/project scope.
- Expand the tray/menu into provider-switchable quota/reset/pace summaries and recent alerts.
- Add platform-appropriate desktop widgets only through a thin cached payload adapter; unsupported platforms retain the tray/dashboard experience.
- Poll official provider status endpoints only when enabled, with provenance, bounded frequency, backoff, and stale/offline states.
- Add local notifications for configured budget/quota thresholds, provider incidents, stale data, and transcript-retention risk.
- Treat achievements/gamification as an optional presentation layer over the same activity facts; do not persist a second usage history.
DRY boundary
- Heatmaps query project/ledger aggregates; widgets/tray/statusline consume the same cached status payload.
- Quota forecasts and alert decisions come from the quota service.
- Provider incident polling is separate from usage/quota credentials and cannot affect accounting.
Acceptance criteria
- Calendar/timezone/DST behavior is deterministic and matches existing inclusive date semantics.
- Widget/tray/dashboard numbers reconcile for the same scope and refresh timestamp.
- Notifications are opt-in, deduplicated, quiet-hour aware, and deep-link to supporting evidence.
- Status outages never rewrite usage, pricing, or quota history.
- Platform-specific adapters fail independently without making the main app unavailable.
Dependency and ordering
Outcome
Offer useful at-a-glance activity, limits, and service health beyond the current Today tray totals, while reusing the shared query/quota services and avoiding a parallel dashboard.
Scope
DRY boundary
Acceptance criteria
Dependency and ordering