feat(frontend): système de plugins — runtime, menus, layouts custom (#43)

Lots F1-F4 : runtime de chargement/registre plugin, extension des menus
existants, panneau de gestion des plugins, types de layout custom
(sélecteur, fallback, cellule dédiée) branchés sur le port plugin.
Suite npm typecheck/test verte (947/947).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 07:37:11 +02:00
parent bb35641715
commit ac726d075e
41 changed files with 3245 additions and 24 deletions

View File

@ -11,6 +11,7 @@ import { ProjectsView } from "@/features/projects";
import { FirstRunWizard } from "@/features/first-run";
import { AnnouncementsProvider } from "@/features/announcements";
import { AppExitConfirmDialog } from "@/features/appExit";
import { PluginRuntimeProvider } from "@/features/plugins";
import { Panel, Spinner, Toolbar } from "@/shared";
import { useGateways, shouldUseMock } from "./di";
@ -65,6 +66,7 @@ export function App() {
return (
<AnnouncementsProvider>
<PluginRuntimeProvider>
<div className="flex h-full flex-col bg-canvas text-content">
{/* ── Header ── */}
<header className="flex shrink-0 items-center justify-between border-b border-border px-6 py-3">
@ -116,6 +118,7 @@ export function App() {
</div>
</div>
<AppExitConfirmDialog />
</PluginRuntimeProvider>
</AnnouncementsProvider>
);
}