Files
hms-mediaengine/STATUS.md
T
HMS MediaEngine Agent 9536e08748 Phase 1: IPC-Verbindungsschicht + Build-first-Strategie (ADR-0008)
- ADR-0008: Build-first, gesammelte Windows-Validierung (Auftraggeber-Freigabe)
- ADR-0004 vorläufig: Rust auf GStreamer-D3D11-Elementpfad
- ADR-0005 vorläufig: Nuitka Onefolder
- hms_protocol: IpcServer/IpcClient mit Handshake (hello/welcome),
  Capabilities-Austausch, Heartbeat 500 ms bidirektional, Snapshot/Delta,
  Loopback-only-Enforcement, Re-Sync nach Reconnect, Version-Mismatch-Fehler
- 9 Integrationstests: echter TCP-Loopback, kein Mock
2026-09-11 00:50:03 +02:00

3.2 KiB
Raw Blame History

STATUS

Stand: 2026-09-11

Aktuelle Phase

Phase 1 Fundament und Netzwerkbasis unter der Build-first-Strategie (ADR-0008): Die Phasen 15 werden plattformneutral vollständig gebaut; Gate 0 und alle renderer-nahen Abnahmen werden gesammelt in einem späteren Windows-Durchlauf validiert. Auftraggeber-Freigabe für die Reihenfolgeabweichung vom 2026-09-11, dokumentiert in ADR-0008 gemäß PLAN.md §1.

Letzter grüner Commit

  • siehe git log und TEST_REPORT.md jede Etappe endet mit grünem pytest und Ruff und wird sofort nach Forgejo gepusht.

Bestandene Gates

  • keine; Gate 0 bleibt offen bis zum Windows-Hardware-Durchlauf (Testplan in ADR-0008)

Arbeitsweise (ADR-0008)

  • Build-first: plattformneutral fertig bauen, Hardware-Validierung gesammelt am Ende (Windows-Durchlauf).
  • Kein Gate wird als grün gemeldet, solange der Windows-Durchlauf offen ist.
  • Renderer-Nähe ausschließlich über den Backend-Vertrag (§12.6); Korrekturen bleiben lokal im Adapter.

Laufende Arbeit

Phase 0 (abgeschlossen, soweit ohne Hardware möglich):

  • Repository, Pflichtdokumente, ADRs 00010003
  • GStreamer-Pin 1.28.6, Kernpakete, Control Core, Renderer-Spike
  • Beispielplugins (Passthrough, Gaussian Blur mit 3 AQ-Varianten), Tools
  • 121 Unit-/Integrationstests grün, Ruff grün (Belege: TEST_REPORT.md)

Phase 1 (im Bau):

  • IPC-Verbindung Control Core ↔ Renderer: Handshake (hello/welcome), vollständiger Snapshot nach Verbindung, Deltas mit monotoner Revision, Command-Acks idempotent über message_id, Heartbeat 500 ms in beide Richtungen, Re-Sync nach Reconnect, ausschließlich Loopback (§6.2)
  • SQLite-Persistenz (WAL, Migrationen, Backup, §24)
  • Launcher/Supervisor (Prozessstart, Heartbeat-Überwachung, kontrolliertes Beenden, Crash-Erkennung)
  • Persistente Node-Identität + Rollen in der App-Verkabelung
  • mDNS/DNS-SD-Discovery + manuelle Node-Liste (§6.3)
  • Paarung (PIN/Fingerprint) und Node-Vertrauen
  • Cluster-Nachrichtenhülle mit Sequenzen/Revisionen (§6.5)

Nächste drei Aufgaben

  1. SQLite-Persistenz mit WAL, transaktionalem Autosave und Migrationstests (§24)
  2. Launcher/Supervisor mit Heartbeat-Überwachung und kontrolliertem Beenden (§6.1A)
  3. Discovery (mDNS) plus manuelle Fallback-Liste und Paarungsgrundlage (§6.3)

Ausstehende Hardware-Validierung (ADR-0008 Testplan)

Nur auf echtem Windows mit GPU messbar; nichts davon gilt als erledigt:

  • D3D11-Hardwaredecode aktiv; D3D11Memory durchgängig ohne CPU-Rundweg
  • Framezeit p50/p95/p99; DMX → sichtbarer Frame p95 ≤ 2 Frames
  • Adaptive-Quality-Wechsel ohne Stall; Golden Images; Shader-Compile auf GPU
  • Portable Onefolder-Ausgabe auf sauberem Rechner (§29.6)
  • Rust-Renderkern-Kompilierung und GStreamer-Plugin-Bindung (ADR-0004)

Bekannte Blocker

  • Windows-Referenzhardware fehlt in der Entwicklungsumgebung (Linux-Container, CPU-only) Kernblocker, durch ADR-0008 gemanagt.
  • Rust-Toolchain (cargo) fehlt im Container: Rust-Quellcode wird entwickelt, das Kompilierungsgate erfolgt im Windows-Durchlauf.
  • pnpm fehlt im Container: wird für Phase 5 über Node-Corepack aktiviert (kein Installationsblocker).