fix(dashboard): audit Second Brain — pistes, erreur briefing, dark, crédits
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:
@@ -1,36 +1,30 @@
|
||||
# Audit dashboard Second Brain (`/home`) — 2026-07-16
|
||||
|
||||
## Portée
|
||||
## Demande d’origine
|
||||
|
||||
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 l’architecture. 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 d’anciens 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
|
||||
|
||||
Reference in New Issue
Block a user