Files
IdeA/.ideai/memory/ticket285-sdk-plugin-root-runtime-api.md

37 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: ticket285-sdk-plugin-root-runtime-api
description: memory note ticket285-sdk-plugin-root-runtime-api
metadata:
type: project
---
# 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.