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:
38
.ideai/tickets/141/issue.md
Normal file
38
.ideai/tickets/141/issue.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
id: "5ed1fc9b-1eef-4236-be89-e5d351ece549"
|
||||
number: 141
|
||||
title: "Supporter l’ouverture des layouts plugins comme Android Health"
|
||||
status: "open"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1785766766212
|
||||
updatedAt: 1785766766212
|
||||
version: 1
|
||||
---
|
||||
Le plugin Android `dev.idea.android-plugin` déclare un layout `idea-android.health` et l’enregistre correctement à l’activation, mais l’ouverture depuis l’UI échoue avec le message : « la création de layouts plugins nécessite une extension backend pas encore livrée ».
|
||||
|
||||
Constat confirmé :
|
||||
- Ce n’est pas un bug du plugin Android sur la déclaration/enregistrement du layout.
|
||||
- Ce n’est pas un problème du SDK sur le contrat de layout.
|
||||
- Le blocage est côté IdeA host : le frontend expose bien les contributions de layout plugin, mais la création effective d’une cellule/layout plugin depuis le sélecteur n’est pas supportée de bout en bout.
|
||||
|
||||
Preuves repo :
|
||||
- `frontend/src/features/layout/LayoutTabs.tsx` affiche explicitement ce message et mentionne l’absence de l’extension backend `create_layout` pour les plugin layouts.
|
||||
- `frontend/src/features/plugins/PluginLayoutSelectorSection.tsx` documente aussi que la partie frontend est prête mais que le flux réel dépend d’une extension backend non livrée.
|
||||
- Le rendu d’un `customPluginLayout` déjà présent semble supporté (`PluginLayoutCellView`, `CustomPluginLayoutCell`) ; le manque porte sur la création de cette cellule depuis l’UI.
|
||||
|
||||
Attendu :
|
||||
- Permettre à l’utilisateur de créer/ouvrir un layout plugin déclaré dans un plugin installé et chargé, notamment `Android Health` du plugin Android.
|
||||
- Étendre le flux de création de layout côté backend + DTO/layout kind si nécessaire pour supporter `customPluginLayout`/`pluginId`/`layoutType`/`state`.
|
||||
- Retirer le message bloquant une fois le support livré.
|
||||
|
||||
Critères d’acceptation :
|
||||
1. Depuis le sélecteur de layouts, choisir `Android Health` crée une cellule/layout plugin valide dans l’arbre de layout.
|
||||
2. Le layout `idea-android.health` du plugin `dev.idea.android-plugin` se rend correctement via le runtime plugin chargé.
|
||||
3. L’état opaque du layout peut être persistant comme prévu par le contrat `customPluginLayout`.
|
||||
4. Aucun message « extension backend pas encore livrée » n’apparaît plus pour les plugin layouts supportés.
|
||||
Reference in New Issue
Block a user