fix: register core capabilities + plugin lifecycle before discovery
Core fix: core capabilities (plugin-manager, capability-registry, contribution-registry, permissions, events) now registered BEFORE plugin discovery, so plugins can resolve required capabilities at load time. Changes: - main.go: register 5 core capabilities before DiscoverPlugins(); add plugin lifecycle (register caps, resolve required/optional, set status LOADED/DEGRADED/MISSING_REQUIRED, register contributions) - api/app.go: ReloadPlugins now re-registers core + plugin capabilities - capability/registry.go: add UnregisterAll() for reload - cmd/smoke-platform/main.go: verify core caps, required resolution, degraded status, total caps >= 7 - PluginCard.svelte: remove ✗ on optional-missing, show degraded info - PluginManager.svelte: preserved (counter shows core+plugin caps) Rule: optional missing => DEGRADED (not FAILED). Required missing => MISSING_REQUIRED_CAPABILITY. Verified: smoke-platform ✅, test.sh (10/10) ✅, check.sh ✅
This commit is contained in:
@@ -46,6 +46,13 @@ func (r *Registry) Register(pluginID string, capabilities []string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// UnregisterAll removes all capabilities (used before reload).
|
||||
func (r *Registry) UnregisterAll() {
|
||||
r.mu.Lock()
|
||||
defer r.mu.Unlock()
|
||||
r.capabilities = make(map[string]*Entry)
|
||||
}
|
||||
|
||||
// Unregister removes all capabilities provided by a plugin.
|
||||
func (r *Registry) Unregister(pluginID string) {
|
||||
r.mu.Lock()
|
||||
|
||||
Reference in New Issue
Block a user