Phase 2: State-Sync-Fundament – State-Store, Gruppen, Clock, Aktivierung

- ProjectStateStore (§6.4, §24.2): monotone State-/Projekt-Revisionen,
  Snapshot nach Verbindung, Delta mit neu/geaendert/geloescht,
  Szenenabruf als Zielzustand (Uebergang macht der Renderer, §18.1),
  Projekt-/Livezustand strikt getrennt
- GroupRouter (§6.3, §10.1): Ziele All/Node/Output/ServerGroup,
  Regeln selected/tag_query/all, Commit-Vorschau (§17.5)
- ClockEstimator (§6.4): RTT-Min-Filter (<=2x Min gegen Jitter),
  Offset-/Drift-Schaetzung (Drift erst ab 1 s Fenster belastbar),
  Showzeit -> lokale Node-Zeit
- ActivationCoordinator (§6.5): zeitgestempelte Preset-Aktivierung,
  200 ms Vorlauf, Arm/Execute/Ack-Kette, FAILED bei fehlender
  Arm-Bestaetigung (kein stilles Ueberbruecken)
- 35 neue Unit-Tests; Gesamtsuite 293 gruen, Ruff gruen
This commit is contained in:
HMS MediaEngine Agent
2026-09-11 01:31:26 +02:00
parent d24fe3a963
commit cc119d3751
8 changed files with 958 additions and 6 deletions
+23 -4
View File
@@ -37,7 +37,7 @@ Phase 0 (abgeschlossen, soweit ohne Hardware möglich):
- [x] Beispielplugins (Passthrough, Gaussian Blur mit 3 AQ-Varianten), Tools
- [x] 121 Unit-/Integrationstests grün, Ruff grün (Belege: TEST_REPORT.md)
Phase 1 (im Bau):
Phase 1 (plattformneutral abgeschlossen, ADR-0008):
- [x] IPC-Verbindung Control Core ↔ Renderer: Handshake (hello/welcome),
vollständiger Snapshot nach Verbindung, Deltas mit monotoner Revision,
@@ -66,11 +66,30 @@ Phase 1 (im Bau):
- [ ] mDNS-Echtnetz-Betrieb mit zeroconf auf Zielsystemen (Modell fertig;
Multicast-Test gehört zu Gate 1, ADR-0009)
Phase 2 (im Bau):
- [x] Domänenmodell: Project/Composition/Layer/Source/EffectInstance/
MediaAsset/OutputSurface/PresetScene mit Validierungen (§10.1)
- [x] Medien-Engine: PlaybackController (Play/Pause/Stop/Retrigger, Loop/
Once/Ping-Pong, In/Out, ±4x Speed, Ende-Ereignis), PreloadSlot für
atomaren Clipwechsel, MediaLibrary mit Duplikaterkennung und Bank-
Slots, ContentManifest mit SHA-256 und Chunk-Hashes (§12, §13, §6.4)
- [x] Project-State-Store mit monotonen Revisionen, Snapshot/Delta
(neu/geändert/gelöscht), Szenenaktivierung als Zielzustand,
Projekt-/Livezustand getrennt (§6.4, §24.2, §18.1)
- [x] Servergruppen + Zielrouting: All/Node/Output/Group, Zielregeln
selected/tag_query/all, Commit-Vorschau (§6.3, §10.1, §17.5)
- [x] Clock-Offset-/Drift-Messung: RTT-Min-Filter (≤2× Min), Drift erst
ab 1 s Fenster, Showzeit→lokale-Zeit-Abbildung (§6.4)
- [x] zeitgestempelte Preset-Aktivierung: Vorlauf 200 ms, Arm/Execute/
Ack, FAILED bei fehlender Arm-Bestätigung (§6.5)
- [ ] Renderer-Anbindung: IPC-Deltas aus dem State-Store in den Renderer
## Nächste drei Aufgaben
1. Phase-2-Domänenmodell: Composition/Layer/MediaAsset in hms_domain (§10.1)
2. Renderer-IPC-Handshake an Control Core anbinden (Snapshot/Delta-Fluss)
3. mDNS-Echtnetz mit zeroconf auf Zielsystemen + Gate-1-LAN-Test vorbereiten
1. Renderer-Anbindung: IPC-Deltas aus dem State-Store (§6.4)
2. Phase-3-Vorbereitung: Plugin-Loader/Lifecycle und Backend-Adapter (§14)
3. Echtes mDNS mit zeroconf auf Zielsystemen (Gate-1-LAN-Test)
## Ausstehende Hardware-Validierung (ADR-0008 Testplan)