Arm task #68's per-channel flow watchdog (manifestation 2): detect a channel whose
meter tap reads silence while its source link is provably live in the graph — the exact
contradiction the 2026-07-06 wave left on ch2 (head+fader loopbacks permanently
unscheduled, links all active, zero daemon errors; a relink kick did NOT clear it) —
and bounce that channel's loopback pair (FlowWatchableMixer.bounceChannel).
The sampler crosses two REAL reads, both cheap and in-memory:
peak — the latest per-channel meter level from the adapter's own meter poll
(peakCachingMeterSource); and
link activity — does the live link list carry an edge from one of the channel's
source ports into its head-input ports? An unpatched channel, or one whose source
link is genuinely down (the route healer's territory), is never "active".
The loopback meter tap is post-fader, so a channel the operator silenced (mute /
fader at 0) legitimately reads 0 — those are exempted, never a stall. Returns the
started FlowWatchdog; the caller stops it on shutdown.
Arm task #68's per-channel flow watchdog (manifestation 2): detect a channel whose meter tap reads silence while its source link is provably live in the graph — the exact contradiction the 2026-07-06 wave left on ch2 (head+fader loopbacks permanently unscheduled, links all active, zero daemon errors; a relink kick did NOT clear it) — and bounce that channel's loopback pair (FlowWatchableMixer.bounceChannel).
The sampler crosses two REAL reads, both cheap and in-memory:
The loopback meter tap is post-fader, so a channel the operator silenced (mute / fader at 0) legitimately reads 0 — those are exempted, never a stall. Returns the started FlowWatchdog; the caller stops it on shutdown.