You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Command contract is not authoritative: production sync emits dispatcher no-ops; unknown batch members are dropped #616
The production command contract is not a single authoritative list. The WinUI production-sync path emits commands the C++ dispatcher does not handle. Unknown commands inside a batch are silently ignored. The parity gate is one-way substring matching against a non-shipping TypeScript mirror, so a live no-op can stay green.
This is not #530. #530 is the Control API advertising programPreview while the implementation spelling is program-preview. Same class of silent control-plane lie, different defect.
Evidence
Static review at 6f4f025687f02e14ce33fa012200afaf7396a536 (2026-09-24).
MediaCoreCommandBuilder.cs ~20–38, 326–370 — production sync command construction
MediaCore/StudioViewModel extraction (#540 only), Program/Preview/Multiview thread split, atomic native Take, NDI out-of-process, retiring React/native-core from CI, enabling DeckLink/AJA.
Live-show items that still beat this cluster
#615 (RTMP vs PC-wide connectivity), #608 (audio dropout when others leave), #597 acceptance, #601 (encoder ignores bitrate), #604 (stopFfmpegProcess never kills the child). Those are tonight's show. This cluster is whether we can tell the truth about the show.
Completed by merged #631 and #639. The live dispatcher rejects unknown commands through its final branch, parity checks the full executable branch set against the native contract and production C# builder, Program texture events use the Program drain, and the response lane is bounded. The final #639 CI run passed across the native, macOS, Windows shell, and analysis jobs.
Activity
docs: file architecture-review findings #616–#622 as unranked backlog…
iamfatness commentedon Sep 24, 2026
Prioritization play (recommendation only — owner ranks)
Review commit:
6f4f025(2026-09-24). Rules: AGENTS.md §3 — agents do not promote to Now.Do not jump Now
#535 remaining adapter lifecycle stays Now. #538 stays Next. Architecture that does not save tonight's show does not replace those rows.
If you promote anything from this cluster
Promote as a single Next slice after #535, before or beside #538, not as a fourth Now item:
Leave parked from this review
MediaCore/StudioViewModel extraction (#540 only), Program/Preview/Multiview thread split, atomic native Take, NDI out-of-process, retiring React/native-core from CI, enabling DeckLink/AJA.
Live-show items that still beat this cluster
#615 (RTMP vs PC-wide connectivity), #608 (audio dropout when others leave), #597 acceptance, #601 (encoder ignores bitrate), #604 (stopFfmpegProcess never kills the child). Those are tonight's show. This cluster is whether we can tell the truth about the show.
docs: rank #616–#622 into Next after #535
docs: rank control-plane slice after #535; honest README (#623)
fix(core): make dispatcher authoritative for command admission (#616)
fix(core): make dispatcher authoritative for command admission (#616)
fix(core): make dispatcher authoritative for command admission (#616)
fix(core): make dispatcher authoritative for command admission (#616) (…
iamfatness commentedon Sep 26, 2026
Completed by merged #631 and #639. The live dispatcher rejects unknown commands through its final branch, parity checks the full executable branch set against the native contract and production C# builder, Program texture events use the Program drain, and the response lane is bounded. The final #639 CI run passed across the native, macOS, Windows shell, and analysis jobs.