fix(dashboard): audit Second Brain — pistes, erreur briefing, dark, crédits
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m16s
CI / Deploy production (on server) (push) Has been skipped

Corrige loadPaths sans argument après Echo/IA, bannière si briefing en échec,
checklist connexion inversée, skeletons dark, libellé usage = solde unique.
This commit is contained in:
Antigravity
2026-07-16 21:08:48 +00:00
parent a77f3ffb6e
commit e8ee53c815
6 changed files with 99 additions and 50 deletions

View File

@@ -1,36 +1,30 @@
# Audit dashboard Second Brain (`/home`) — 2026-07-16
## Portée
## Demande dorigine
Revue code de `dashboard-view.tsx` + widgets catalogue / paths / briefing.
« Audit analytique : réaliser un audit complet du tableau de bord. »
## Points sains
## Correctifs appliqués (code)
| Zone | Constat |
|------|---------|
| Layout v5 configurable | Catalogue widgets + `/api/dashboard/layout` |
| Prochaines pistes | Fast paths + enrich async `/api/briefing/paths` |
| Revue quotidienne | Checklist interactive (pas revue auto) |
| Quotas | `emitAiUsageChanged` + consent IA sur actions |
| Aide « ? » | `DashboardWidgetHelp` i18n |
| Empty states | Widgets catalogue gèrent listes vides |
| # | Problème | Fix |
|---|----------|-----|
| 1 | Après refresh Memory Echo / activation IA, `loadPaths()` appelé **sans argument** → pistes non rechargées | `reloadBriefingAndPaths()` charge briefing puis paths |
| 2 | Si `/api/briefing` échoue : spinner infini, aucune erreur | Bannière + bouton Réessayer |
| 3 | Checklist « connexion » cochée quand il restait des pistes | `done` = plus aucune piste connect/resurface |
| 4 | Skeletons `bg-stone-50` clairs en dark mode | Variante `dark:bg-zinc-950/40` |
| 5 | Texte widget usage « par fonctionnalité » (seaux) | Solde unique de crédits |
## Risques / écarts
## Déjà OK (revue code)
| # | Problème | Sévérité | Action |
|---|----------|----------|--------|
| 1 | Briefing dépend du cron / première visite : widgets peuvent rester vides temporairement | Moyenne | UX « chargement / aucune donnée » déjà partielle — dogfood |
| 2 | Bridges / clusters sémantiques absurdes cross-domaine | Moyenne | Produit insights (hors dashboard pur) |
| 3 | Widget usage encore mentalité « seaux » vs solde crédits | Basse | `DashboardUsageWidget` lit `/api/usage/current` (balance multi) — OK si API à jour |
| 4 | Agent suggestions vides si cron agent-suggestions off | Basse | Ops CRON_SECRET |
- Layout v5 + grille widgets
- Fast paths + enrich async
- Revue matinale interactive
- Quotas via `UsageMeter` (balance crédits)
- Aide « ? » widgets
- Empty states flashcards / activité
## Verdict
## Reste hors code (ops / produit)
Dashboard **utilisable** et aligné prototype sur larchitecture. Pas de bug bloquant code identifié dans cette passe.
**Reste dogfood** : première visite, dark mode, clics paths, quotas 402.
## Suite recommandée
1. Dogfood 10 min sur compte réel
2. Si widget usage affiche encore danciens seaux → forcer refresh API (déjà multi-feature dans usage-current)
3. Prioriser pertinence bridges (insights) plutôt que refonte dashboard
- Cron agent-suggestions pour peupler le carrousel agents
- Pertinence sémantique des ponts (logique clusters /insights)
- Dogfood manuel sur compte réel après deploy