Symptom. A working SRT/RTMP contribution feed is permanently shown as not connected: SRT reads "Engine off or awaiting SRT status"; RTMP devices are forced to "connecting, no signal" every snapshot. No decode errors, frame age or RTT.
Cause (read, not run). The core emits captureDevices (MediaCore.cpp:811) but NativeMediaCoreWireState has no such property and the mapper never copies it; only the stub/typed branch fills it (CoreProtocolParser.cs:608-610). ShowInputsCoordinator.cs:50-51 therefore calls ApplyRuntimeStatus(null) every snapshot; StudioViewModel.RtmpIngest.cs:165-187 finds no facts.
Done when. captureDevices is bound on the wire path and set on the mapped snapshot, with a mapper test using real-core JSON.
Found by the 2026-10-02 half-wired-feature audit, by reading code on main (8b84a8f). Not yet reproduced in the running app unless stated.
Symptom. A working SRT/RTMP contribution feed is permanently shown as not connected: SRT reads "Engine off or awaiting SRT status"; RTMP devices are forced to "connecting, no signal" every snapshot. No decode errors, frame age or RTT.
Cause (read, not run). The core emits
captureDevices(MediaCore.cpp:811) butNativeMediaCoreWireStatehas no such property and the mapper never copies it; only the stub/typed branch fills it (CoreProtocolParser.cs:608-610).ShowInputsCoordinator.cs:50-51therefore callsApplyRuntimeStatus(null)every snapshot;StudioViewModel.RtmpIngest.cs:165-187finds no facts.Done when.
captureDevicesis bound on the wire path and set on the mapped snapshot, with a mapper test using real-core JSON.Found by the 2026-10-02 half-wired-feature audit, by reading code on main (8b84a8f). Not yet reproduced in the running app unless stated.