Root cause fixes:
- Sidebar: handleSidebarItem used item.id instead of item.view for viewId.
Platform Test sidebar item has id=verstak.platform-test.sidebar but
view=verstak.platform-test.diagnostics. Click now dispatches correct viewId.
- PluginManager: EnablePlugin/DisablePlugin only wrote to plugins.json but
never re-discovered plugins. UI showed stale state (no Enable button after
Disable, no Disable after Enable). Now calls ReloadPlugins() + loadAll()
after each toggle.
- PluginManager: loadAll() fired async loads (GetCapabilities etc) without
awaiting — loading spinner disappeared before data was ready. Now awaits
all via Promise.all.
- PluginCard: no loading feedback on Enable/Disable buttons. Added
actionFeedback prop — buttons show '⟳ Enabling...' / '⟳ Disabling...'
and are disabled during operation.
- PluginManager: no visible result after Reload/Enable/Disable. Added
toast notifications (success/error/info) with auto-dismiss.
- Settings: openSettingsFromProps didn't handle missing panel — now shows
visible error in modal.