feat(layout): supporte la création de layouts plugins (customPluginLayout)

Étend le flux de création de layout backend (DTO, usecases, store) et le
frontend (sélecteur, adaptateurs, LayoutTabs/LayoutGrid) pour permettre
d'ouvrir un layout déclaré par un plugin installé (ex. Android Health),
sans passer par le message bloquant "extension backend pas encore livrée".

Ticket #141 — QA vert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 18:34:21 +02:00
parent 168f93df78
commit 45617992ef
29 changed files with 907 additions and 99 deletions

View File

@ -6,15 +6,8 @@
* plugins never appear — carnet §1.3: only `enabled` plugins are loaded, so
* there is nothing to filter here beyond what the registry already omits).
*
* Presentational only; not yet mounted in a layout-creation flow. The
* existing "layout" concept in this codebase (`LayoutTabs`, `LayoutKind`) is
* a whole-tab kind (`"terminal" | "gitGraph"`) picked via a fixed two-item
* dropdown, backed by a `create(name, kind)` Tauri command that only knows
* those two kinds. Wiring an actual "create a plugin layout" action needs a
* backend `LayoutKind`/`create_layout` extension (carnet §10 flags F4 as
* "DevFrontend + DevBackend si ajustement DTO layout") — this component is
* the frontend half, ready to drop into that flow once the DTO lands; see the
* F4 delivery report's open point.
* Presentational only: the caller owns whether selecting a contribution creates
* a named plugin layout, replaces an unavailable cell, or just previews it.
*/
import type { PluginLayoutContribution } from "@/domain";