chore(tickets): sync store local — cycle #276 writer du contexte global (branche feature/276-orchestrator-context-writer, QA verte) + reliquats lots #269-#275, note memory plugin hot reload, permissions systeme agent Main
This commit is contained in:
@ -84,3 +84,4 @@
|
||||
- [opencode-streaming-progress-mcp-surfacing-157](opencode-streaming-progress-mcp-surfacing-157.md) — memory note opencode-streaming-progress-mcp-surfacing-157
|
||||
- [toolchain-rust-partage-acces-agents](toolchain-rust-partage-acces-agents.md) — Diagnostic et solution durable pour l'accès partagé au toolchain Rust/Tauri dans les run-dirs agents isolés.
|
||||
- [web-ui-refactor-surface-addressable-architecture](web-ui-refactor-surface-addressable-architecture.md) — memory note web-ui-refactor-surface-addressable-architecture
|
||||
- [plugin-hot-reload-agent-facing-delivered](plugin-hot-reload-agent-facing-delivered.md) — memory note plugin-hot-reload-agent-facing-delivered
|
||||
|
||||
52
.ideai/memory/plugin-hot-reload-agent-facing-delivered.md
Normal file
52
.ideai/memory/plugin-hot-reload-agent-facing-delivered.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
name: plugin-hot-reload-agent-facing-delivered
|
||||
description: memory note plugin-hot-reload-agent-facing-delivered
|
||||
metadata:
|
||||
type: project
|
||||
---
|
||||
# Hot reload plugins agent-facing livre
|
||||
|
||||
Le chantier #269 a livre le hot reload des plugins sans relancer IdeA, integre localement sur `develop` par le merge `ad2c6b4` (commit backend `805b1b4`).
|
||||
|
||||
## Contrat livre
|
||||
|
||||
- Nouveau use case backend `ReloadPlugin` pour recharger un plugin installe depuis une source directory.
|
||||
- Nouveau tool agent-facing `idea_plugin_reload({ pluginId, expectedContentHash? })` expose cote MCP/OpenAI/direct selon les catalogues existants.
|
||||
- Le tool est une `WriteAction` et reste refuse/masque par defaut tant que les permissions ne l'autorisent pas explicitement.
|
||||
- Le chemin agent-facing ne prend pas de chemin arbitraire: la source relodable vient du registry du plugin installe.
|
||||
- Le reload revalide manifest/id, recalcule le hash, met a jour le registry avec `restart_required=false`, publie un evenement `plugin_reloaded`, et lance la reconciliation des serveurs MCP de plugin.
|
||||
- Le resultat structure fournit notamment `changed`, anciens/nouveaux hashes, statuts MCP et warnings/erreurs.
|
||||
|
||||
## UX / Frontend
|
||||
|
||||
Aucune nouvelle surface humaine dediee n'a ete livree en V1. Decision UX/DevFrontend: le besoin principal est agent-facing; le resultat structure du tool et le flux agent existant suffisent.
|
||||
|
||||
Limite assumee: les contributions UI React des plugins (menus/layouts/commandes runtime frontend) restent chargees une fois par session par `PluginRuntimeProvider` et ne sont pas rafraichies apres `PluginReloaded` en V1. Cela n'affecte pas les tools MCP agent-facing.
|
||||
|
||||
## QA
|
||||
|
||||
QA #273 vert sur `feature/269-backend` avant merge:
|
||||
- `cargo +stable test -p application plugin::tests -- --nocapture` => 32 passed.
|
||||
- `cargo +stable test -p infrastructure --test mcp_server -- --nocapture` => 38 passed.
|
||||
- `cargo +stable test -p backend openai_tools::tests -- --nocapture` => 10 passed.
|
||||
- `cargo +stable test -p infrastructure --test plugin_install_load -- --nocapture` => 5 passed.
|
||||
- `cargo +stable test -p infrastructure plugin -- --nocapture` => 10 passed.
|
||||
- `cargo +stable test -p backend plugin_reloaded_relays_hashes_and_changed_flag_to_wire -- --nocapture` => 1 passed.
|
||||
- `cargo +stable test -p app-tauri backend_core_builds_without_desktop_runtime -- --nocapture` => app-tauri compile OK.
|
||||
|
||||
Risque restant: IdeA garantit que serveur/registry/prochains `tools/list` voient le nouvel etat. Certains providers/CLIs actifs peuvent garder leur propre cache de tools et devoir relister les tools ou reconnecter MCP en interne; pas de redemarrage IdeA requis par le contrat backend.
|
||||
|
||||
## Note submodule test
|
||||
|
||||
Dans les worktrees de feature, `git worktree add` n'initialise pas `sdk/IdeaSDK`. Pour les tests `plugin_install_load`, Git a utilise le submodule local du worktree principal:
|
||||
|
||||
```bash
|
||||
WT=<worktree>; MOD=$(git -C $WT rev-parse --git-path modules/sdk/IdeaSDK)
|
||||
rm -rf "$MOD" $WT/sdk/IdeaSDK
|
||||
git -C $WT \
|
||||
-c submodule.sdk/IdeaSDK.url=/home/anthony/Documents/Projects/IdeA/sdk/IdeaSDK \
|
||||
-c protocol.file.allow=always \
|
||||
submodule update --init --recursive sdk/IdeaSDK
|
||||
```
|
||||
|
||||
Aucun rebuild AppImage/live validation n'a ete fait dans ce cycle; creer un ticket dedie si validation live installee est demandee.
|
||||
Reference in New Issue
Block a user