A channel's effective (audible) mute: its own individual mute OR any active mute group it
belongs to OR a held panic (#404, #178). Because the individual mute is passed in rather
than mutated, releasing every group (mutedByGroup → false) and releasing the
panic (panicEngaged → false) both restore exactly the individual state — nothing
upstream ever overwrites individualMute, so there is nothing to restore by hand.
panic is optional so every existing caller (none of which know about panic) keeps
compiling unchanged; omitting it is equivalent to no panic held.
A channel's effective (audible) mute: its own individual mute OR any active mute group it belongs to OR a held panic (#404, #178). Because the individual mute is passed in rather than mutated, releasing every group (mutedByGroup →
false) and releasing the panic (panicEngaged →false) both restore exactly the individual state — nothing upstream ever overwritesindividualMute, so there is nothing to restore by hand.panicis optional so every existing caller (none of which know about panic) keeps compiling unchanged; omitting it is equivalent to no panic held.