--- id: "5ed1fc9b-1eef-4236-be89-e5d351ece549" number: 141 title: "Supporter l’ouverture des layouts plugins comme Android Health" status: "closed" priority: "high" sprint: null links: [] agentRefs: [] attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"user"} createdAt: 1785766766212 updatedAt: 1785838243826 version: 2 --- 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.