{# DASHBOARD center view (live) — the ALL-PROJECTS overview (cross-project fleet). This is the console's landing Dashboard: a KPI strip (fleet-wide totals) over a grid of cards, one per ACTIVE project, each showing REAL vitals (agents · active tasks · pending handoffs · events/24h from /state, fetched concurrently) + a health pill + a best-effort epic-progress strip. Cards are sorted attention- first (busiest pending queues lead) so it answers "who needs attention across the fleet" at a glance. Clicking a card SELECTS that project in the rail + scopes cols 2/4 (agents + workspace) to it — it reuses the rail's exact project-select flow (hx-get="/projects/{key}" → #scope-region). The center itself stays on this cross-project Dashboard (Dashboard is not project-scoped). Context (built server-side in main._fleet_context — templates do no logic): `fleet_cards` : sorted list of card views. Each: key, name, repo_root, pico, initial, agent_count, active_tasks, pending_handoffs, events_24h, health{state,label}, needs_attention, epic{...} `fleet_count` : number of active projects `fleet_kpis` : {projects, agents, active_tasks, pending_handoffs, events_24h, attention} `selected_key` : the operator's currently-scoped project (highlights its card) A None counter renders as '—' (graceful degrade when a project's /state was unreachable — that card's health pill reads 'no data'). #}
No active projects returned by Cortex.
{% endif %}