1.24.0 (2026-07-16)
✨ Features
- add countDatabaseBackupsAction (dcb2650)
- add database delete confirmation dialog (bac9092)
- dashboard/home: integrate StatsLayout with mock data (56c80e5)
- dashboard: wire real DB queries, remove DASHBOARD_MOCK (08e960f)
- db: add availability and evolution indexes on databases/backups (KPI 2, 4, 5, 7) (4cf9fc7)
- db: add covering index on backup_storage for KPI 6 (storage treemap) (d267846)
- db: add materialized views schema for KPI dashboard (KPI 4-7) (58eda0d)
- db: add partial index on agents for KPI 3 (agent availability) (7bcc94a)
- db: add partial index on notification_log for KPI 1 (critical alerts) (fc9c9b1)
- db: generate migration 0057, KPI indexes and materialized views (cae3d72)
- db: register dashboard materialized views in db schemas (ddfde4b)
- purge backup files and require an offline agent on database delete (23e4896)
- stats: add AgentStatusGrid with 12h timeline tooltip (f1c556b)
- stats: add BackupEvolutionChart dual-axis recharts (97bb7ed)
- stats: add DASHBOARD_MOCK with realistic wireframe values (0d8de39)
- stats: add DashboardData types and util helpers (8b70f90)
- stats: add DatabaseTreemap by DBMS (f543ff1)
- stats: add domain query files for dashboard KPIs (3722930)
- stats: add HealthRingChart, Apple Fitness style 4-ring radial chart (f612617)
- stats: add info tooltips to all KPI cards and charts (728d464)
- stats: add InfoTooltip primitive (376c6c2)
- stats: add KpiCard component with status color indicator (3f8cfe8)
- stats: add NotificationPanel with 5 last critical alerts (49ab296)
- stats: add refreshDashboardAction and RefreshDashboardButton (fdbd748)
- stats: add Show more button to AgentStatusGrid and NotificationPanel (76ecf42)
- stats: add StatsLayout, 3-row dashboard grid (8b0710b)
- stats: add StorageTreemap by provider (d62417e)
- stats: add tooltip prop to KpiCard (5e5ac2c)
- stats: agent grid, large cards ≤8, compact squares >8 (035d52c)
- stats: agent status grid, large cards with name/status/timeAgo (28bb71c)
- stats: alert health score based on critical/total ratio (24h) (3545eb3)
- stats: alerts 24h KPI dot color based on critical/total ratio (500fb11)
- stats: backup evolution chart, auto-detect week/month granularity (bc18b1e)
- stats: improve empty states with icon + title + subtitle (9d500c8)
- stats: integrate HealthRingChart in Row 1 dashboard layout (27fd3c8)
- stats: notification panel shows channel source + links to logs page (a491e9d)
- stats: notification panel uses DataTable + NotificationLogModal (f019916)
- wire database deletion into the agent detail page (2172784)
🐛 Bug Fixes
- address final review findings on database deletion (8edccf7)
- block database delete confirmation when the backup count fails (633b7d7)
- db: remove unsupported .include() from indexes (drizzle-orm 0.45.2) (7369f94)
- stats: call refreshDashboardAction() without args (void input) (10a0afb)
- stats: health ring, fix dimensions, background color, aria-label (90f7903)
- stats: health ring center score, pill bg, remove z-50 tooltip conflict (9f88963)
- stats: notification panel, 4 compact columns, smaller icon (3bec9d1)
- stats: notification panel, sentAt with timeAgo, remove broken 'at' field (99169f4)
- stats: notification panel, show policy.event badge instead of title (b82bada)
- stats: remove CONCURRENTLY from view refresh (no unique indexes on views) (c8b8bfe)
- stats: remove inner DataTable border in notification panel (57020ad)
- stats: restore totalNotifications24h in mock data (NaN fix) (7205ec0)
- stats: translate health-ring-chart to English (eef4096)
- stats: translate KPI card labels to English (3d18f17)
- stats: use strict equality in formatBytes null check (bf07d69)