Phase 3: Plugin-Lifecycle-Manager (§14.5, §14.6, §26.3)

- Zustandsgraph discovered->validated->installed->enabled->compiled->active
  mit quarantined/incompatible/disabled; nur definierte Kanten
- discover(): scannt Plugin-Verzeichnis, validiert Manifest + Shader,
  quarantiniert Ungueltiges mit dokumentierter Ursache (kein stiller
  Fehler, §33); Projekt bleibt nutzbar (§3.5)
- Show-Lock (§26.3): Installation/Update gesperrt; Aktivieren bereits
  installierter Plugins erlaubt (§17.7 Live); Versionswechsel geblockt
- Update ohne Lock: neuer Zyklus ab VALIDATED
- Backend-Kompatibilitaet: Schnittmenge entrypoints & supported_backends
- 14 Unit-Tests (Discovery, Happy Path, Sprung-/Ruecksprung-Verbot,
  Quarantaene mit Ursache, Show-Lock-Blockaden, Versionsupdate, Backends)
- Gesamtsuite 311 gruen, Ruff gruen
This commit is contained in:
HMS MediaEngine Agent
2026-09-11 01:37:47 +02:00
parent b2610e35e5
commit b4c4f214d3
3 changed files with 466 additions and 1 deletions
+11 -1
View File
@@ -1,5 +1,11 @@
"""hms_plugin_sdk Plugin-API, Manifest, Validierung (PLAN.md §14)."""
"""hms_plugin_sdk Plugin-API, Manifest, Validierung, Lifecycle (PLAN.md §14)."""
from hms_plugin_sdk.lifecycle import (
InvalidTransitionError,
LifecycleState,
PluginLifecycleManager,
PluginRecord,
)
from hms_plugin_sdk.manifest import (
PluginKind,
load_manifest,
@@ -12,4 +18,8 @@ __all__ = [
"load_manifest",
"validate_manifest",
"validate_plugin_zip",
"LifecycleState",
"PluginRecord",
"PluginLifecycleManager",
"InvalidTransitionError",
]