Add plugin reconciliation app-server API (#41949)

## What changed

- Add the `plugin/reconcile` JSON-RPC method to synchronize installed remote plugin bundles and wait for required hook updates.
- Return affected plugin IDs with MCP, Apps, hooks, and skills refresh hints, plus remote update and materialization failures.
- Refresh loaded hook runtimes after relevant updates and return an empty result when plugins or backend authentication are unavailable.

## Testing

- Cover workspace and global bundle installs, unchanged passes, enablement changes, updates, removals, materialization failures, hook refreshes, and disabled plugins.

GitOrigin-RevId: 45c02518d71990d13eb09d56ed51505c91c66956
This commit is contained in:
Matthew Zeng
2026-09-01 00:50:11 +00:00
committed by copyberry
parent c2e5692e2c
commit bfa9646787
21 changed files with 854 additions and 2 deletions
@@ -1377,6 +1377,15 @@ impl MessageProcessor {
ClientRequest::PluginInstalled { params, .. } => {
self.plugin_processor.plugin_installed(params).await
}
ClientRequest::PluginReconcile { params, .. } => {
self.plugin_processor
.plugin_reconcile(
params,
self.config_processor.clone(),
&self.request_serialization_queues,
)
.await
}
ClientRequest::PluginRead { params, .. } => {
self.plugin_processor.plugin_read(params).await
}