feat(plugins): soft refresh UI des contributions plugins après install/reload — frontend #279 (PluginRuntimeProvider refreshRuntime sur événements pluginInstalled/pluginReloaded, dispose de l'ancien registry, catalogue listRuntimeContributions, gateway mock; QA verte ré-exécutée: 35/35 tests features/plugins dont nouveau PluginRuntimeProvider.test, typecheck OK)
This commit is contained in:
@ -1,7 +1,8 @@
|
||||
/**
|
||||
* Plugin bootstrap loader (ticket #43, F1, carnet §1.3/§6).
|
||||
*
|
||||
* At UI bootstrap, the app calls {@link loadPlugins} once with the catalog
|
||||
* At UI bootstrap and after an install/reload event, the app calls
|
||||
* {@link loadPlugins} with the catalog
|
||||
* from `PluginGateway.listRuntimeContributions()` (already filtered by the
|
||||
* backend to `enabled && !pendingUninstall`, carnet §1.3) and the gateway set
|
||||
* used to build the public service facade. For each entry it dynamically imports
|
||||
@ -370,9 +371,8 @@ function createPluginStorage(gateways: PluginGatewaySet, pluginId: string): Plug
|
||||
|
||||
/**
|
||||
* Loads every plugin in the catalog into a fresh {@link PluginRuntimeRegistry}.
|
||||
* Called once at app bootstrap (and never again in the same session — carnet
|
||||
* §1.3: disable/uninstall only masks contributions in-session, the actual
|
||||
* unload happens on next restart via a fresh `loadPlugins` call).
|
||||
* The provider swaps this fresh snapshot atomically at bootstrap and after a
|
||||
* supported plugin lifecycle event.
|
||||
*/
|
||||
export async function loadPlugins(
|
||||
catalogPlugins: PluginRuntimePlugin[],
|
||||
|
||||
Reference in New Issue
Block a user