mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-06 22:09:44 +02:00
PR #4637 (MUL-3771) dropped hard-deleted agents from the per-agent leaderboard so they'd stop rendering as a bare UUID, but the top-line Cost/Tokens KPIs still count their spend (those totals aggregate task_usage_hourly without joining `agent`). The breakdown therefore no longer reconciled with the totals (#4640). Instead of dropping unknown-agent rows, fold them into a single aggregated "Deleted agents" row: sum(visible rows) == KPI total again, with no UUID exposed. Archived agents still appear as themselves (the agent list is fetched with include_archived). The bucket carries tokens + cost only; Time/Tasks render as "—" since the run-time rollups inner-join `agent` and never attribute time to deleted agents. - bucketUnknownAgentRows replaces filterKnownAgentRows in dashboard/utils - Leaderboard renders the sentinel bucket row with a neutral placeholder and a "{{count}} agents · {{deleted}} deleted" caption - i18n: deleted_agents + caption_with_deleted (en/zh-Hans/ja/ko) - tests cover bucket reconciliation, archived-stays, null-loading passthrough Co-authored-by: multica-agent <github@multica.ai>