fix(quotas): unifier le décompte IA (BYOK, rollback) et combler les fuites
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 6m55s
CI / Deploy production (on server) (push) Successful in 36s

Centralise la réserve via ai-quota, corrige admin unavailable (-1), brancher les routes sans quota et le host-pays brainstorm, avec usage-meter élargi, noms de clusters, MCP et ajustements dashboard/insights.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Antigravity
2026-07-15 20:42:25 +00:00
parent 30da592ba2
commit 4fe31ebc99
75 changed files with 2949 additions and 785 deletions

View File

@@ -1,4 +1,4 @@
export const DASHBOARD_LAYOUT_VERSION = 5 as const
export const DASHBOARD_LAYOUT_VERSION = 6 as const
/** Widgets visibles dans la mise en page par défaut (réf. prototype / capture utilisateur). */
export const CANONICAL_VISIBLE_WIDGET_IDS: readonly DashboardWidgetId[] = [
@@ -6,6 +6,7 @@ export const CANONICAL_VISIBLE_WIDGET_IDS: readonly DashboardWidgetId[] = [
'next-paths',
'intelligence',
'resume',
'activity',
'mind-map',
'sentiment',
'inbox',
@@ -14,6 +15,7 @@ export const CANONICAL_VISIBLE_WIDGET_IDS: readonly DashboardWidgetId[] = [
'reminders',
'flashcards-progress',
'agents',
'pinned',
] as const
export type DashboardWidgetId =
@@ -80,8 +82,8 @@ export const DASHBOARD_WIDGET_META: Record<DashboardWidgetId, {
stats: { required: false, zone: 'side', category: 'cognition', defaultVisible: false },
'agent-activity': { required: false, zone: 'side', category: 'agents', defaultVisible: false },
gmail: { required: false, zone: 'side', category: 'productivity', defaultVisible: false },
activity: { required: false, zone: 'main', category: 'cognition', defaultVisible: false },
pinned: { required: false, zone: 'side', category: 'cognition', defaultVisible: false },
activity: { required: false, zone: 'main', category: 'cognition', defaultVisible: true },
pinned: { required: false, zone: 'side', category: 'cognition', defaultVisible: true },
usage: { required: false, zone: 'side', category: 'agents', defaultVisible: false },
'daily-review': { required: false, zone: 'side', category: 'paths', defaultVisible: false },
'open-loops': { required: false, zone: 'side', category: 'paths', defaultVisible: false },
@@ -108,21 +110,21 @@ export const DEFAULT_DASHBOARD_LAYOUT: DashboardLayout = {
{ id: 'next-paths', visible: true, order: 1, zone: 'main' },
{ id: 'intelligence', visible: true, order: 2, zone: 'main' },
{ id: 'resume', visible: true, order: 3, zone: 'main' },
{ id: 'mind-map', visible: true, order: 4, zone: 'main' },
{ id: 'activity', visible: true, order: 4, zone: 'main' },
{ id: 'mind-map', visible: true, order: 5, zone: 'main' },
// Colonne latérale (droite) — cartes compactes + widgets IA
{ id: 'sentiment', visible: true, order: 5, zone: 'side' },
{ id: 'inbox', visible: true, order: 6, zone: 'side' },
{ id: 'revision', visible: true, order: 7, zone: 'side' },
{ id: 'stats', visible: true, order: 8, zone: 'side' },
{ id: 'reminders', visible: true, order: 9, zone: 'side' },
{ id: 'flashcards-progress', visible: true, order: 10, zone: 'side' },
{ id: 'agents', visible: true, order: 11, zone: 'side' },
{ id: 'sentiment', visible: true, order: 6, zone: 'side' },
{ id: 'inbox', visible: true, order: 7, zone: 'side' },
{ id: 'revision', visible: true, order: 8, zone: 'side' },
{ id: 'stats', visible: true, order: 9, zone: 'side' },
{ id: 'reminders', visible: true, order: 10, zone: 'side' },
{ id: 'flashcards-progress', visible: true, order: 11, zone: 'side' },
{ id: 'agents', visible: true, order: 12, zone: 'side' },
{ id: 'pinned', visible: true, order: 13, zone: 'side' },
// Catalogue — masqués par défaut, ajoutables via « Personnaliser »
{ id: 'daily-review', visible: false, order: 12, zone: 'side' },
{ id: 'agent-activity', visible: false, order: 13, zone: 'side' },
{ id: 'gmail', visible: false, order: 14, zone: 'side' },
{ id: 'activity', visible: false, order: 15, zone: 'main' },
{ id: 'pinned', visible: false, order: 16, zone: 'side' },
{ id: 'daily-review', visible: false, order: 14, zone: 'side' },
{ id: 'agent-activity', visible: false, order: 15, zone: 'side' },
{ id: 'gmail', visible: false, order: 16, zone: 'side' },
{ id: 'usage', visible: false, order: 17, zone: 'side' },
{ id: 'open-loops', visible: false, order: 18, zone: 'side' },
{ id: 'daily-note', visible: false, order: 19, zone: 'side' },