--- id: "2ef9b71a-9869-4476-88b6-65aaefc993e1" number: 137 title: "QA: validation end-to-end plugin multi-fichiers ESM (chargement + désinstallation propre)" status: "closed" priority: "critical" sprint: null links: [{"target":"#134","kind":"dependsOn"},{"target":"#136","kind":"dependsOn"}] agentRefs: [{"agentId":"ab328d90-c307-4771-a3b6-6c56089c8506","role":"assigned"}] attachments: [] createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"} updatedBy: {"kind":"user"} createdAt: 1785702681696 updatedAt: 1785881139749 version: 2 --- Validation réelle, sortie observée — pas seulement des tests unitaires — du fix multi-fichiers (#134) et de l'exemple SDK (#136). À exécuter dans une build réelle (AppImage ou dev Tauri) : 1. Installer le plugin multi-fichiers issu de #136 (fichiers ESM non bundlés, imports relatifs). Confirmer l'absence de l'erreur navigateur "Importing a module script failed." et l'activation correcte (`activate(ctx)` appelé, contributions menus/layouts visibles et fonctionnelles selon ce que déclare l'exemple). 2. Vérifier l'isolement : le plugin ne dépose rien dans le project root ni dans `.ideai/` du projet ouvert (contrat de #133/#135). 3. Désinstaller depuis l'UI (Panneau Plugins) : vérifier disque (aucun résidu sous `app_data/plugins/installed/`), registre (entrée disparue), et absence de toute trace côté projet. 4. Réinstaller le même plugin après désinstallation : doit repartir propre, sans conflit résiduel. Critères d'acceptation : - Rapport QA avec preuve d'exécution réelle (logs/captures), verdict vert ou liste d'écarts bloquants. - Si régression détectée sur #134/#135/#136, retour précis (repro + fichier/ligne suspecté) au dev concerné avant clôture.