[{"data":1,"prerenderedAt":48},["ShallowReactive",2],{"doc:fr:plugins\u002Finstaller":3},{"title":4,"lede":5,"html":6,"headings":7},"Installer un plugin","Un plugin ajoute à Escouade un thème, un harness, une source du Kanban, un webhook ou des outils. Cette page dit comment l’installer, l’activer projet par projet, lui retirer une permission, lire son journal, le mettre à jour et le désinstaller.","\u003Ch2 id=\"la-vue-plugins\">La vue Plugins\u003C\u002Fh2>\n\u003Cp>L’icône en forme de pièce de puzzle de la barre des projets, sous les statistiques, ouvre la vue Plugins en plein écran ; un second clic revient au projet. Réglages › Plugins mène au même endroit.\u003C\u002Fp>\n\u003Cp>Sa barre latérale :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Store\u003C\u002Fstrong> : le catalogue de store.escouade.dev, gardé sur ta machine et cherché sur elle (voir plus bas).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Installés\u003C\u002Fstrong> : tous les plugins, en deux groupes, « Ajoutés » et « Livrés avec Escouade ». Une ligne par plugin : sa version, « Non vérifié » ou « En développement », la mise à jour trouvée, d’où il vient, les projets où il est actif (une pastille par projet, un cadenas pour un projet privé) et son interrupteur pour toute l’app.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mises à jour\u003C\u002Fstrong> : les versions plus récentes trouvées, leur nombre en ambre.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>En développement\u003C\u002Fstrong> : les dossiers chargés en place.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Les catégories\u003C\u002Fstrong> : Harness, Sources du Kanban, Hébergeurs de code, Thèmes, Notifications, Autorisations, Outils, Langues, tirées de ce que chaque plugin ajoute.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"installer\">Installer\u003C\u002Fh2>\n\u003Cp>Deux boutons en tête de la vue :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Depuis un dossier…\u003C\u002Fstrong> : le dossier du plugin, celui de son \u003Ccode class=\"key\">escouade-plugin.json\u003C\u002Fcode>. Escouade le copie dans ses données (\u003Ccode>~\u002F.escouade\u002Fplugins\u002F&lt;id&gt;\u003C\u002Fcode>), sans son historique git, et le fixe par l’empreinte SHA-256 de ses fichiers : une copie modifiée ensuite se charge désactivée, et le dit.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Depuis un dépôt git…\u003C\u002Fstrong> : l’adresse du dépôt et une étiquette (\u003Ccode class=\"key\">v1.2.0\u003C\u002Fcode>). Escouade le clone à cette étiquette seule et le fixe par son commit.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Rien n’est installé tout de suite : le plugin est lu, mis de côté, et la fenêtre d’installation s’ouvre.\u003C\u002Fp>\n\u003Ch2 id=\"depuis-le-store\">Depuis le store\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Store\u003C\u002Fstrong>, dans la barre latérale, montre le catalogue de \u003Ca href=\"https:\u002F\u002Fstore.escouade.dev\" rel=\"noopener\">store.escouade.dev\u003C\u002Fa>. Escouade le lit au démarrage puis toutes les 6 heures et le garde sur ta machine : l’en-tête dit quand (« catalogue lu à 10:42 ») et, si le store ne répond pas, montre le catalogue gardé en le disant.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>La recherche\u003C\u002Fstrong> se fait sur ta machine, sans rien envoyer : le nom, la description, les mots-clés, l’auteur et l’id, sans tenir compte de la casse ni des accents. \u003Cstrong>Vérifiés seulement\u003C\u002Fstrong> ne garde que les plugins au sceau « Vérifié par Escouade » ; les puces et la barre latérale filtrent par catégorie.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pour &lt;projet&gt;\u003C\u002Fstrong>, en tête : jusqu’à trois plugins qu’Escouade propose d’après ce qu’il voit sur ce poste et dans le projet ouvert, chacun avec sa raison (« vibe est installé sur ce poste », « des clés DEM-… dans les commits de ce dépôt »). Rien n’en est envoyé. « Pas maintenant » écarte une proposition une semaine, « Ne plus proposer » pour de bon.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Chaque ligne\u003C\u002Fstrong> dit le sceau de la version proposée ou « Non vérifié », l’auteur, les installations et ce que le plugin demande en une ligne (« Lance un programme », les hôtes, « Un secret », ou « Sans programme »).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>La page d’un plugin\u003C\u002Fstrong> du store : sa description, ses permissions, ses versions (chacune vérifiée ou non, retirée par son auteur), le résumé de la revue, d’où il vient, et « Signaler sur le store ».\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Escouade propose \u003Cstrong>la dernière version qu’il peut faire tourner\u003C\u002Fstrong> : une version écrite pour une Escouade plus récente est sautée, une version retirée par son auteur aussi.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Installer\u003C\u002Fstrong> télécharge la version, puis vérifie tout avant d’ouvrir la fenêtre d’installation : \u003Ccode class=\"key\">version.json\u003C\u002Fcode> contre l’empreinte du catalogue, la signature contre les clés publiques qu’Escouade embarque (le store ne peut pas fabriquer un sceau : il n’a pas la clé), l’archive et son module contre \u003Ccode class=\"key\">version.json\u003C\u002Fcode>, le manifeste contre son empreinte. Un écart arrête tout et le dit (« L’archive reçue ne correspond pas à celle que le store a publiée ») : rien n’est installé. Le catalogue, les archives et la liste de révocation passent par \u003Cstrong>Réglages › Réseau\u003C\u002Fstrong> (proxy, certificats du système).\u003C\u002Fp>\n\u003Cp>La fenêtre d’installation dit alors « Vérifié par Escouade » et « Signature : vérifiée ici, par l’app » ; pour une version non vérifiée, une bande : « Personne n’a relu cette version. Elle vient du store, son archive est bien celle que l’auteur a publiée, mais rien ne dit ce que fait son programme », et le bouton « Installer quand même ».\u003C\u002Fp>\n\u003Cp>\u003Cstrong>N’installer que des versions vérifiées\u003C\u002Fstrong>, en tête des installés (éteint d’office), refuse toute version du store sans sceau, à l’installation comme à la mise à jour.\u003C\u002Fp>\n\u003Cp>Un plugin installé depuis un dossier ou un dépôt git dont l’id est au store le dit sur sa page, avec « Passer à la v… du store » : la même fenêtre, tes choix gardés.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Ouvrir dans Escouade\u003C\u002Fstrong>, sur la page d’un plugin de store.escouade.dev, est un lien \u003Ccode>escouade:\u002F\u002Fplugin\u002F&lt;id&gt;\u003C\u002Fcode> : il lance Escouade, ou la ramène au premier plan si elle est ouverte, sur la page du plugin dans la vue Plugins (sa page d’installé s’il l’est déjà). \u003Cstrong>Un lien n’installe jamais rien\u003C\u002Fstrong> : l’installation reste ton geste, depuis la page, dans la fenêtre qui montre ses permissions. Un lien qu’Escouade ne sait pas lire est dit (« Lien Escouade illisible, rien n’a été fait »), un plugin que le catalogue n’a pas aussi, et rien d’autre ne se passe. L’installeur enregistre le lien auprès du système (Windows, macOS, le \u003Ccode class=\"key\">.deb\u003C\u002Fcode> sous Linux) ; une AppImage l’enregistre elle-même à son démarrage.\u003C\u002Fp>\n\u003Cdiv class=\"callout note\">\u003Cp class=\"callout-title\">À noter\u003C\u002Fp>\u003Cp>Si tu as accepté les statistiques d’usage, une installation depuis le store est comptée sur le store (\u003Ccode>POST \u002Fapi\u002Fv1\u002Finstalls\u003C\u002Fcode> : l’id, la version, « install » ou « update », rien d’autre) et dans les statistiques d’Escouade (« plugin installé depuis le store », sans son nom). Sans ton accord, rien ne part.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"la-fenetre-d-installation\">La fenêtre d’installation\u003C\u002Fh2>\n\u003Cp>Elle dit, avant que rien ne soit installé :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>qui l’a fait\u003C\u002Fstrong> : son nom, son auteur, sa version, sa licence et son id ;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>d’où il vient\u003C\u002Fstrong> : le dossier, ou le dépôt et l’étiquette ; sa version et son commit ; son empreinte ; sa signature, « Aucune » hors du store. Un plugin hors du store est \u003Cstrong>non vérifié\u003C\u002Fstrong> : personne ne l’a relu, et la fenêtre le dit en tête ;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ce qu’il ajoute\u003C\u002Fstrong> : ses thèmes, ses harness, ses webhooks, ses réglages…, et où les trouver ;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ce qu’il pourra faire\u003C\u002Fstrong>, permission par permission, la plus forte d’abord :\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Permission\u003C\u002Fth>\n\u003Cth>Ce que dit la fenêtre\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">run.command\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Lance un programme sur ton ordinateur, avec tes droits », en gras\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">run.js\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Tourne dans Escouade, isolé » : un programme en WASM, sans accès au disque hors de son dossier\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">permissions.decide\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Décide des autorisations de tes agents », en rouge\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">permissions.commands\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Lance des commandes », et lesquelles\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">permissions.events\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Reçoit ces événements », et lesquels\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">permissions.network\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Se connecte à », et l’hôte : appliqué à un programme \u003Ccode class=\"key\">run.js\u003C\u002Fcode> et aux webhooks, que Escouade n’envoie qu’à ces hôtes ; seulement déclaré pour un programme \u003Ccode class=\"key\">run.command\u003C\u002Fcode>, dont Escouade ne filtre pas le réseau\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">permissions.secrets\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>« Garde un secret : », et son nom\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>« Installer quand même » installe le plugin ; « Annuler » efface ce qui avait été mis de côté. Un manifeste qui ne tient pas n’ouvre pas la fenêtre : la raison s’affiche en tête de la vue, champ par champ (voir \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fmanifest\u002F\">le manifeste\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch2 id=\"les-plugins-livres-avec-escouade\">Les plugins livrés avec Escouade\u003C\u002Fh2>\n\u003Cp>Certaines intégrations d’Escouade sont des plugins, livrés avec l’app, signés et mis à jour avec elle : la vue Plugins les range sous « Livrés avec Escouade », avec la même page que les autres (ce qu’ils ajoutent, leurs permissions, leur journal). Ils sont actifs partout d’office, projets privés compris, comme quand ils faisaient partie de l’app.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Plugin\u003C\u002Fth>\n\u003Cth>Ce qu’il sert\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>GitHub\u003C\u002Ftd>\n\u003Ctd>L’hébergeur GitHub (PR, CI, relectures, déploiements) et la source GitHub Issues, sur un seul compte. Voir \u003Ca href=\"\u002Fdocs\u002Fintegrations\u002F\">les intégrations\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>GitLab\u003C\u002Ftd>\n\u003Ctd>L’hébergeur GitLab, gitlab.com et tes instances (merge requests, pipelines, discussions, déploiements). GitLab Issues fait encore partie de l’app, sur le même compte.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Bitbucket\u003C\u002Ftd>\n\u003Ctd>L’hébergeur Bitbucket Cloud.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Gitea \u002F Forgejo\u003C\u002Ftd>\n\u003Ctd>L’hébergeur de Gitea, de Forgejo et de Codeberg.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Trello\u003C\u002Ftd>\n\u003Ctd>La source Trello du Kanban.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>ACP\u003C\u002Ftd>\n\u003Ctd>Les \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fharnesses\u002F\">harness ACP décrits\u003C\u002Fa> par un plugin, comme Goose.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>isola\u003C\u002Ftd>\n\u003Ctd>L’environnement de lancement isola, pour les \u003Ca href=\"\u002Fdocs\u002Ftesting\u002F\">lancements de test\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>OpenAI, Groq, Mistral, ElevenLabs, Deepgram\u003C\u002Ftd>\n\u003Ctd>Les services de voix en ligne (voir \u003Ca href=\"\u002Fdocs\u002Fsettings-voice\u002F\">Réglages › Voix\u003C\u002Fa>).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cul>\n\u003Cli>\u003Cstrong>Les couper\u003C\u002Fstrong> : leur interrupteur, pour toute l’app, ou leur onglet Projets, pour un projet. Rien de ce qu’ils ont fait n’est perdu, et tes choix sont gardés pour quand tu les rallumes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ce qui se voit\u003C\u002Fstrong> : un hébergeur coupé ou arrêté ne suit plus les PR, et la carte de l’agent comme Réglages › Intégrations le disent ; une source coupée arrête sa synchro, qui dit pourquoi ; un service de voix coupé quitte Réglages › Voix, et la dictée repasse en local ; les agents d’un harness ACP restent, marqués « Harness absent ».\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pas de désinstallation\u003C\u002Fstrong>, ni de mise à jour à part : ils changent avec l’app. Un plugin d’un autre auteur ne peut pas prendre leur identifiant (\u003Ccode class=\"key\">dev.escouade.*\u003C\u002Fcode> est réservé) ; il peut servir le même service à côté d’eux, et c’est le compte qui dit lequel le sert.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"activer-pour-l-app-ou-par-projet\">Activer pour l’app ou par projet\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Pour toute l’app\u003C\u002Fstrong> : l’interrupteur de sa ligne, ou « Désactiver » sur sa page. Désactivé, rien de lui ne tourne et aucun projet ne le reçoit ; son process est arrêté.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Par projet\u003C\u002Fstrong> : l’onglet Projets de sa page, une ligne par projet ouvert. Un plugin installé est actif dans chaque projet, \u003Cstrong>sauf les projets privés\u003C\u002Fstrong> : un projet privé est coupé d’office, et la ligne le dit (« rien ne lui parvient »). L’y activer est un choix fait un par un ; la ligne rappelle alors qu’Escouade ne peut pas empêcher un programme de lire le disque.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"callout note\">\u003Cp class=\"callout-title\">À noter\u003C\u002Fp>\u003Cp>Un projet qui propose un plugin dans son \u003Ccode class=\"key\">.escouade.yml\u003C\u002Fcode> ne l’installe ni ne l’active jamais seul : c’est toujours la fenêtre d’installation, et ton accord.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"retirer-une-permission\">Retirer une permission\u003C\u002Fh2>\n\u003Cp>L’onglet Permissions de sa page liste ce qu’il peut faire, avec un interrupteur par permission. En retirer une arrête son process ; le suivant démarre sans elle, et le plugin continue, ou s’arrête s’il ne peut pas. Un secret retiré ne lui est plus donné : \u003Ccode class=\"key\">secrets\u002Fget\u003C\u002Fcode> lui répond une erreur pour cette clé. Le programme lui-même ne se retire pas : pour l’arrêter, désactive le plugin.\u003C\u002Fp>\n\u003Ch2 id=\"ses-reglages-et-ses-secrets\">Ses réglages et ses secrets\u003C\u002Fh2>\n\u003Cp>L’onglet Réglages montre les champs qu’il déclare (\u003Ccode class=\"key\">contributes.settings\u003C\u002Fcode>, \u003Ccode class=\"key\">contributes.secrets\u003C\u002Fcode>). Un réglage est gardé avec la liste des plugins installés et lui est donné par \u003Ccode class=\"key\">settings\u002Fget\u003C\u002Fcode> ; dans un projet dont le \u003Ca href=\"\u002Fdocs\u002Fescouade-yml\u002F\">\u003Ccode class=\"key\">.escouade.yml\u003C\u002Fcode>\u003C\u002Fa> règle le plugin (\u003Ccode class=\"key\">plugins.&lt;id&gt;\u003C\u002Fcode>), la valeur du projet passe devant. Un secret va au trousseau du système, sous un nom à lui (\u003Ccode class=\"key\">plugin:&lt;id&gt;:&lt;clé&gt;\u003C\u002Fcode>) : l’onglet dit seulement s’il est gardé, et « Oublier » l’efface.\u003C\u002Fp>\n\u003Ch2 id=\"le-journal\">Le journal\u003C\u002Fh2>\n\u003Cp>L’onglet Journal montre où en est son process (prêt, en marche, relancé après un plantage, arrêté après trois plantages, arrêté pour sa mémoire…) et les 500 dernières lignes de son journal : ses démarrages, ses arrêts et leur raison, ses plantages, sa sortie d’erreur, ses messages, les appels restés sans réponse et ce qui lui a été refusé. Il est relu toutes les deux secondes, se filtre par genre et se copie en entier. Les secrets qu’il a reçus y sont masqués.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Démarrer\u003C\u002Fstrong> lance un plugin qui n’a pas encore tourné (il démarre seul à sa première activation).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Relancer\u003C\u002Fstrong> relance un plugin arrêté, ses plantages oubliés.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Le fichier du journal est \u003Ccode>~\u002F.escouade\u002Fplugin-logs\u002F&lt;id&gt;.log\u003C\u002Fcode> (\u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fapi\u002F#le-journal\">le protocole\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch2 id=\"les-mises-a-jour\">Les mises à jour\u003C\u002Fh2>\n\u003Cp>Au démarrage, Escouade cherche une version plus récente de chaque plugin : une étiquette plus haute de son dépôt git, une version plus haute dans le dossier d’où il a été copié, la dernière version compatible du catalogue pour un plugin du store (« v1.3.0 · non vérifiée » quand elle n’a pas de sceau). Ce qu’il trouve est \u003Cstrong>proposé, jamais installé seul\u003C\u002Fstrong> : « v1.3.0 disponible » sur sa ligne, « Mettre à jour vers la v1.3.0 » sur sa page, la liste dans Mises à jour, et « Tout mettre à jour » en tête des installés.\u003C\u002Fp>\n\u003Cp>Une mise à jour passe par la fenêtre d’installation, de la version installée à la nouvelle. \u003Cstrong>Si elle demande plus\u003C\u002Fstrong>, la fenêtre le dit (« ton accord est redemandé ») et marque « nouveau » chaque permission en plus. Tes choix restent : ses projets, les permissions retirées, ses réglages et ses secrets. « Tout mettre à jour » ouvre la fenêtre de chacune, l’une après l’autre.\u003C\u002Fp>\n\u003Ch2 id=\"le-retrait-par-escouade\">Le retrait par Escouade\u003C\u002Fh2>\n\u003Cp>Escouade lit la \u003Cstrong>liste de révocation\u003C\u002Fstrong> du store au démarrage puis toutes les 6 heures (ou « Relire maintenant », en bas des installés), la vérifie avec ses clés et refuse une liste plus ancienne que la dernière lue ; si le store ne répond pas, il lit sa copie sur escouade.dev. La dernière liste lue s’applique même hors ligne.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Une version \u003Cstrong>retirée\u003C\u002Fstrong> est arrêtée et désactivée ; une bande rouge en tête des installés dit laquelle, quand et pourquoi. Escouade ne supprime rien : ses réglages et ses secrets restent là, et « Désinstaller » est sur sa page.\u003C\u002Fli>\n\u003Cli>Une version \u003Cstrong>dont le sceau est retiré\u003C\u002Fstrong> continue de tourner ; sa page dit pourquoi elle n’est plus vérifiée.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Le sceau d’un plugin installé est revérifié sur ta machine, avec le \u003Ccode class=\"key\">version.json\u003C\u002Fcode> et la signature gardés à l’installation : il tient sans le store.\u003C\u002Fp>\n\u003Ch2 id=\"desinstaller\">Désinstaller\u003C\u002Fh2>\n\u003Cp>« Désinstaller », sur sa page, arrête son process et efface son dossier, ses réglages, ses secrets et son journal. La case « Garder ses réglages et ses secrets pour une prochaine installation » les garde : réinstallé, le plugin les retrouve. Un dossier en développement reste où il est.\u003C\u002Fp>\n\u003Ch2 id=\"le-mode-developpeur\">Le mode développeur\u003C\u002Fh2>\n\u003Cp>En développement, « Charger un dossier… » lit le dossier d’un plugin où il est, sans copie ni empreinte, et le relit dès qu’un fichier change. Son journal se lit en direct dans l’onglet Journal. Voir \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fmanifest\u002F\">le manifeste\u003C\u002Fa> et \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fapi\u002F\">le protocole\u003C\u002Fa> pour l’écrire.\u003C\u002Fp>\n",[8,12,15,18,21,24,27,30,33,36,39,42,45],{"id":9,"text":10,"depth":11},"la-vue-plugins","La vue Plugins",2,{"id":13,"text":14,"depth":11},"installer","Installer",{"id":16,"text":17,"depth":11},"depuis-le-store","Depuis le store",{"id":19,"text":20,"depth":11},"la-fenetre-d-installation","La fenêtre d’installation",{"id":22,"text":23,"depth":11},"les-plugins-livres-avec-escouade","Les plugins livrés avec Escouade",{"id":25,"text":26,"depth":11},"activer-pour-l-app-ou-par-projet","Activer pour l’app ou par projet",{"id":28,"text":29,"depth":11},"retirer-une-permission","Retirer une permission",{"id":31,"text":32,"depth":11},"ses-reglages-et-ses-secrets","Ses réglages et ses secrets",{"id":34,"text":35,"depth":11},"le-journal","Le journal",{"id":37,"text":38,"depth":11},"les-mises-a-jour","Les mises à jour",{"id":40,"text":41,"depth":11},"le-retrait-par-escouade","Le retrait par Escouade",{"id":43,"text":44,"depth":11},"desinstaller","Désinstaller",{"id":46,"text":47,"depth":11},"le-mode-developpeur","Le mode développeur",1793889379328]