mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-30 16:20:35 +02:00
* feat(usage): mirror Tokens metric toggle onto Usage page Daily chart (MUL-2148) #2537 added the Cost/Tokens metric toggle to the Daily chart inside the runtime-detail Usage section (packages/views/runtimes/components/ usage-section.tsx). The workspace-level Usage page at /{slug}/usage imports the same DailyCostChart primitive but renders it from dashboard-page.tsx without any toggle wrapper, so #2537 only landed on half of the surface that says "Daily cost". This PR mirrors the same pattern to dashboard-page.tsx so users see the toggle wherever a "Daily" chart appears. Changes - `packages/views/dashboard/utils.ts`: new `aggregateDailyTokens` helper that folds DashboardUsageDaily[] into the same DailyTokenData[] shape the DailyTokensChart consumes (mirrors aggregateByDate's dailyTokens branch from the runtimes side, adapted to DashboardUsageDaily field names). - `packages/views/dashboard/components/dashboard-page.tsx`: rename `DailyCostBlock` → `DailyTrendBlock`, add a Cost/Tokens Segmented next to the section title, switch chart and title based on the active metric, per-metric empty-state (so a workspace with unmapped pricing but recorded tokens still gets a real Tokens chart while the Cost view falls through to the empty-state — same convention as DailyTab in usage-section.tsx). - usage.json (en + zh-Hans): split `daily.title` into `title_cost` + `title_tokens`, add `metric_cost` + `metric_tokens` toggle labels. * feat(usage): default Daily chart to Tokens metric Most users land on /{slug}/usage to gauge "how much agent work happened" rather than "how much was spent." Tokens is the more universally meaningful axis on first read (Cost depends on having pricing mapped for every model and on whether the workspace has unmaintained models). Cost stays one click away via the same toggle. Also reorder the Segmented so Tokens sits first, matching the new default.