Severity: 🟠 high · Effort: L
SRT/WHIP — the transports chosen for low latency — are the least resilient. They have no NWPathMonitor supervision, no queue-stall watchdog, no per-path ceiling, VideoFrameAdmission is inert (setQueueDepth never called → admit() always true), no mic-stall audio failover, and a plain 1s→30s backoff that burns attempts while down. Extract the RTMP path-supervision + watchdog + setPathProfile + setQueueDepth + mic-stall failover into a shared layer both publishers use. One refactor closes ~5 high/medium gaps.
Evidence: SessionPublisher.swift:180-209,58,242 vs RTMPPublisher.swift:183-702
From the architecture audit MVP backlog.
Severity: 🟠 high · Effort: L
SRT/WHIP — the transports chosen for low latency — are the least resilient. They have no NWPathMonitor supervision, no queue-stall watchdog, no per-path ceiling,
VideoFrameAdmissionis inert (setQueueDepthnever called →admit()always true), no mic-stall audio failover, and a plain 1s→30s backoff that burns attempts while down. Extract the RTMP path-supervision + watchdog +setPathProfile+setQueueDepth+ mic-stall failover into a shared layer both publishers use. One refactor closes ~5 high/medium gaps.Evidence:
SessionPublisher.swift:180-209,58,242vsRTMPPublisher.swift:183-702From the architecture audit MVP backlog.