From 1e4b586fa3f9387f7aacfcc2bdd9cfd4630dc82e Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Thu, 23 Jul 2026 22:33:09 +0000 Subject: [PATCH] Distinguish a plugin that was never loaded from one that failed The plugin list reported "Error loading module" for anything without a loaded package, which includes plugins the controller has picked up since the page was opened. Nothing had been tried for those, so reporting a failure was both wrong and unhelpful: the fix is to reload, not to investigate. Report those as needing a reload instead. Plugins the controller cannot serve at all are excluded during startup before they reach the loaded plugin map, so those are checked for first and still count as an error. Fixes #729 Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/web_ui/src/components/PluginsPage.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/web_ui/src/components/PluginsPage.tsx b/packages/web_ui/src/components/PluginsPage.tsx index 399a92de..ddf80c29 100644 --- a/packages/web_ui/src/components/PluginsPage.tsx +++ b/packages/web_ui/src/components/PluginsPage.tsx @@ -88,6 +88,14 @@ export default function PluginsPage() { if (!plugin.meta.enabled) { return <> Disabled on controller; } + // Plugins are loaded once when the page starts, so one the + // controller has picked up since then was never attempted + // rather than attempted and failed. A plugin the controller + // cannot serve at all is excluded before it gets that far, + // and is a real error. + if (!plugin.meta.web.error && !control.pluginInfos.has(plugin.meta.name)) { + return <> Reload page to load; + } if (!plugin.package) { return <> Error loading module; }