chore(tickets): sync store local — création #286 + #287 (timeout rendezvous cross-project malgré activité cible, critique; fix planifié sur fix/287-cross-project-rendezvous-timeout; exclusion scripts/restart-idea-over-ssh.sh hors périmètre)
This commit is contained in:
37
.ideai/memory/ticket285-sdk-plugin-root-runtime-api.md
Normal file
37
.ideai/memory/ticket285-sdk-plugin-root-runtime-api.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user