docs: update plan backlog after Phase B-1 completion
Some checks failed
CI / build-and-test (push) Failing after 30s

This commit is contained in:
Zac Gaetano 2026-05-07 15:28:52 +00:00
parent cd5e852a30
commit 54cb4ac3d4

View file

@ -1,8 +1,14 @@
# Plan Backlog
Phase A is implemented (tag: `phase-a-complete`). After Phase A merges and CI is green:
## Completed phases
1. **Phase B — NDI Interop & Pipeline** — add real P/Invoke shim in `TeamsISO.Engine.NdiInterop`, real `IFrameScaler` against libyuv, `NdiReceiver` and `NdiSender`, `IsoPipeline`, `IsoController`, runtime version probe. Console smoke runner. Integration test suite goes live (Windows + NDI runtime required).
2. **Phase C — UI & Packaging** — WPF MVVM app on top of the engine. Settings view, participant list, alert banner, system health indicators. WiX MSI installer, release pipeline on tag, About dialog.
- **Phase A — Engine Foundation** (tag: `phase-a-complete`) — domain model, parsers, participant tracker, frame processor, config persistence, fakes, CI with 80% coverage gate.
- **Phase B-1 — Pipeline Orchestration** (tag: `phase-b-1-complete`) — `NdiReceiver`, `NdiSender`, `ExponentialBackoff`, `NdiRuntimeProbe`, `IsoPipeline` (with restart supervisor), `IsoController` (top-of-engine API). All testable on Linux against `FakeNdiInterop`.
## Next
1. **Phase B-2 — Real NDI Interop & libyuv** (Windows + NDI runtime required) — production P/Invoke implementation of `INdiInterop` in the `TeamsISO.Engine.NdiInterop` assembly. Real `IFrameScaler` against libyuv. NDI runtime version constant. Console smoke runner that exercises real Teams NDI streams. Integration tests against an `NDI Test Pattern` source. After this phase the engine can drive real ISO outputs end-to-end.
2. **Phase C — UI & Packaging** (Windows) — WPF MVVM app on top of `IIsoController`. Participant list (DataGrid bound to `Participants` observable), global settings view (framerate, resolution, aspect, audio mode), engine alert banner, system health indicators. WiX MSI installer, release pipeline on tag, About dialog.
Each phase gets its own `YYYY-MM-DD-teamsiso-phase-X-<topic>.md` plan written by `superpowers:writing-plans` once the previous phase is shipped.