2.3 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| ticket285-sdk-plugin-root-runtime-api | memory note ticket285-sdk-plugin-root-runtime-api |
|
Ticket #285 — API SDK ctx.pluginRoot
Le ticket #285 a été rouvert puis livré le 2026-09-08 pour remplacer la simple documentation d’absence d’API par une vraie API SDK officielle.
Contrat livré
ActivateContext expose désormais pluginRoot: string dans le SDK sdk/IdeaSDK/src/runtime.ts.
ctx.pluginRoot est le chemin absolu fourni par le host vers la racine du package plugin installé actif. Il sert notamment à appeler des scripts packagés depuis un handler TS, par exemple via ctx.services.tasks.runCommand() avec une commande construite depuis ctx.pluginRoot.
Le host reste propriétaire de la résolution : le chemin vient du package installé actif, pas d’un input plugin, pas du manifest, et pas de bundleUrl. Aucune API de résolution arbitraire type resolvePluginPath() n’a été ajoutée.
Chaîne technique
Propagation livrée : store/package root -> catalogue runtime application -> DTO backend pluginRoot -> types frontend -> loader runtime -> activate(ctx) -> SDK ActivateContext.
Docs SDK mises à jour : activation-context.md, services.md, commands-and-feedback.md, manifest.md.
Exemple SDK mis à jour : examples/hello-plugin inclut et package scripts/hello-task.mjs, lancé depuis un chemin construit avec ctx.pluginRoot.
Validation
QA vert : cargo check -p domain -p application -p infrastructure -p backend -p app-tauri --lib, tests application runtime catalogue 5/5, plugin_install_load 5/5, dto_plugins 2/2, frontend typecheck + 33 tests, SDK npm run check, diff-check/fmt-check verts.
Git local : SDK commit 9ce3a55, merge SDK e3a0f46; parent commit e499a0f, merge parent b681433, ticket sync 270c740, note post-build 2512565. Aucun push.
AppImage finale reconstruite depuis develop : target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage.
Réserve opérationnelle
Le binaire actif ne change qu’après remplacement manuel de /home/anthony/Documents/IdeA_0.1.0_amd64.AppImage puis relance IdeA. Ne pas automatiser cette étape depuis l’orchestrateur actif. Après relance, valider live ctx.pluginRoot avec un plugin consommateur comme UnityPlugin.