Skip to content

More plugin fixes#4725

Draft
zachwolfe wants to merge 6 commits into
developmentfrom
fix/plugin-load-event-notification
Draft

More plugin fixes#4725
zachwolfe wants to merge 6 commits into
developmentfrom
fix/plugin-load-event-notification

Conversation

@zachwolfe

Copy link
Copy Markdown
Collaborator

No description provided.

…figured

Both LoadPlugin and ReloadPlugin had early returns for the 'loaded but
unconfigured' path that skipped firing PluginLoaded/PluginReloaded events.
This caused the UI to stay stuck showing the initial failure message (e.g.
'No DLL files found') even after the plugin successfully loaded.
Allows callers to render additional buttons (e.g. Uninstall) inline with
the Save button row rather than in a separate section below.
Previously, the external widget registry was only sent during the initial
root SignalR connection. Plugins installed at runtime registered their widgets
on the backend but never notified connected clients, causing 'Unknown component
type' errors until a browser refresh.
…ions on failure

Plugins loaded before the app is built (via deferred loading) would crash
with "UseEndpoints cannot be called before the application is built" because
the background task could reach Configure before Apply(app) set up the
endpoint data source. Now UseEndpoints queues registrations when the app
isn't ready and replays them in Apply(), making plugins lifecycle-agnostic.

Additionally, when a plugin's Configure throws partway through (leaving
partial apps/endpoints/hooks registered), the contributions are now rolled
back via RemovePluginContributions so the UI doesn't show ghost entries
from failed plugins. This applies to both initial load and reload paths.
PluginCandidate now carries the plugin's Title and Icon so the UI can
show human-readable names and icons for unloaded/failed plugins instead
of raw IDs.
@artem-ivy-ai

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants