HMS MediaEngine Agent
|
cc119d3751
|
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
|
2026-09-11 01:31:26 +02:00 |
|
HMS MediaEngine Agent
|
c4574927fd
|
Phase 1: Cluster-Fundament – Nachrichten, Registry, Paarung, Discovery
- hms_cluster: ClusterMessage (§6.5: Pflichtfelder, Sequenzen, Revisionen,
execute_at, Trace-ID), CommandTracker (idempotent, vorwärts-only:
accepted->armed->executed/failed)
- NodeRegistry: online/degraded/stale/offline über Schwellen, UI-Kategorien
discovered/paired/unknown/incompatible/offline, Doppel-Node-ID blockiert,
IP-Wechsel erhaelt node_id (§6.3, §6.5)
- Pairing: PIN (TTL 120s, Versuchslimit), Fingerprint (SHA-256 gruppiert),
Token nur als Hash, Scopes read/control/content_sync/admin, Ablauf +
sofortiger Widerruf (§6.3, §27.1, ADR-0010)
- Discovery-Modell: _hmsmedia._tcp.local. TXT ohne Secrets, Capability-
Digest, persistente manuelle Fallback-Liste (ADR-0009)
- ADR-0009 (mDNS + Fallback) und ADR-0010 (Paarung) dokumentiert
- 25 Unit-Tests; Gesamtsuite 183 Tests gruen, Ruff gruen
|
2026-09-11 01:06:26 +02:00 |
|