2.9 KiB
2.9 KiB
Control Ownership
Ziel
Diese Regeln definieren die konfliktfreie Steuersemantik zwischen allen aktuellen und spaeteren Control-Quellen auf derselben Host-Core-v1-Aussenkante.
Betroffene Quellen:
- kreative Web-UI
- technische Desktop-GUI
- generischer externer Control-Adapter
- spaetere grandMA-Anbindung
Gemeinsame Grundregel
Der Host-Core bleibt die einzige mutierende Autoritaet fuer Show-State.
Keine Quelle darf:
- intern an Simulation-, Persistenz- oder UI-Zustaende vorbeischreiben
- eigene Sonderpfade fuer Pattern-, Preset-, Group- oder Transition-Logik einziehen
- die LED-Taktung oder Timing-Autoritaet uebernehmen
Rollen
Web-UI
- kreative Oberflaeche
- darf direkte Primitive und lokale staged Sessions benutzen
- staged Zustand bleibt lokal, bis
trigger_transitionexplizit committed wird
technische Desktop-GUI
- Engineering- und Diagnoseoberflaeche
- bevorzugt direkte Operationen, Beobachtung und Admin-Aktionen
- bekommt keine priorisierte Besitzrolle gegenueber anderen Quellen
externer Control-Adapter
- darf nur auf die eingefrorene v1-Primitive-Semantik abbilden
- staged Sessions muessen pro externer Session sauber getrennt gehalten werden
- Fehlercodes aus dem Host werden unveraendert durchgereicht
spaetere grandMA-Anbindung
- ist spaeter nur eine weitere Quelle auf derselben Bridge-/Primitive-Aussenkante
- bekommt keine Sonderrechte gegenueber Web-UI, GUI oder anderen Adaptern
Konfliktregeln
Direkte Operationen
- direkte Primitive mutieren sofort den globalen Host-State
- letzte erfolgreich ausgefuehrte Mutation gewinnt
- dazu gehoeren insbesondere:
blackoutrecall_presetrecall_creative_snapshotset_master_brightnessupsert_group
Staged Operationen
- staged Primitive mutieren den globalen Host-State nicht sofort
- staged Zustand gehoert immer nur zur lokalen Session der jeweiligen Quelle
- staged Sessions duerfen parallel existieren
- staged Inhalt wird erst mit
trigger_transitionglobal wirksam
Commit-Verhalten
trigger_transitionist der einzige Commit-Punkt fuer staged Pattern-/Parameter-/Transition-Intents- ein erfolgreicher Commit konsumiert nur die staged Session der commitenden Quelle
- andere offene Sessions bleiben unveraendert bestehen
Beobachtung
request_snapshotund State-Projektionen sind read-only- Beobachtung erzeugt keinen Ownership-Anspruch auf den Show-State
Praktische Auswirkungen
- es gibt aktuell kein verteiltes Locking zwischen Quellen
- konfliktfreie Zusammenarbeit entsteht ueber:
- identische Primitive-Semantik
- lokale Session-Isolation fuer staged Flows
- last-write-wins fuer direkte globale Mutationen
- explizite Commits statt impliziter Side Effects
Persistenz
- nur global wirksame Host-Mutationen und Persistenz-Kommandos beeinflussen Runtime-State-Dateien
- uncommittete staged Sessions sind absichtlich nicht Teil des globalen Persistenzzustands