feat: implement Story 2.1 — Owner/Manager Command Center Dashboard

- Rewrite DashboardController with cached role-scoped KPI aggregation
  (Cache::remember, 5-min TTL, Declaration::forUser scope)
- Create StatCard.vue component with CVA status variants and a11y
- Rewrite Dashboard.vue with 4-column KPI grid + urgent declarations table
- Add mise_en_demeure status to DeclarationStatus enum with transitions
- Exclude termine, mise_en_demeure, ferme from dashboard queries
- Set deadline proximity red threshold to ≤5 days
- Add abort(404) for non-member workspace access per architecture
- Fix null-safe client access for soft-deleted clients
- Fix hardcoded routes with Wayfinder type-safe imports
- Fix DashboardProps.stats type to allow null
- Add aria-pressed to StatCard for accessibility
- Install shadcn-vue table component (11 files)
- Add 11 Pest feature tests + 3 mise_en_demeure transition tests
- Fix DeclarationFactory eager workspace creation causing slug collisions
- 196 tests pass, 836 assertions, zero regressions
This commit is contained in:
2026-03-20 12:00:24 +00:00
parent e53b013359
commit a2ab6f365d
23 changed files with 1283 additions and 523 deletions

View File

@@ -50,18 +50,18 @@ development_status:
epic-0-retrospective: done
# Epic 1: Team Management & Permission System
epic-1: in-progress
epic-1: done
1-1-permission-configuration-and-controller-traits: done
1-2-team-management-page-view-and-invite-members: done
1-3-role-assignment-and-member-removal: done
1-4-manager-permission-toggle-matrix: done
1-5-role-based-access-enforcement-across-views: done
1-6-workspace-switching-for-multi-workspace-owners: done
epic-1-retrospective: optional
epic-1-retrospective: done
# Epic 2: Role-Driven Dashboard & Command Center
epic-2: backlog
2-1-owner-manager-command-center-dashboard: backlog
epic-2: in-progress
2-1-owner-manager-command-center-dashboard: review
2-2-priority-alerts-panel: backlog
2-3-worker-scoped-dashboard: backlog
2-4-dashboard-activity-feed: backlog