ReadonlychannelReadonlyendpointsThe ordered source endpoints feeding the channel ([primary, ...extras]). Each carries at
most ONE honesty mark about this patch (issue #154, refined by #194) — absent = every
leg of the patch is live and carrying audio:
deferred: true — the patch carries NO audio at all: either the SOURCE is absent from
the live graph (a stopped stream, an unplugged stagebox) or every one of its legs is
still waiting on this channel's head input. A surface ghosts the cell.partial: true — the source is PRESENT and at least one leg is live, but at least one
OTHER leg is still waiting on an absent destination port: a stereo source running on one
leg (the #193 half-widened strip, a channel mid stereo-width reconfigure). Half-connected
is a real operating condition and gets its own mark, because both of the alternatives lie
— drawn live it hides a dead leg, ghosted it claims a source that IS feeding the desk is
gone (the #194 report). A surface renders it distinctly from both.The marks describe the PATCH, not the device: the device-presence read is patchbay.io's
per-node deferred, which stays strictly "this node's ports do not resolve". Sourced from
the #168 deferral ledger + the live-graph mirror; never false.
ReadonlystereoThe channel's semantic source width: true when the patch made it stereo — a
stereo pair (FL/FR) was assigned, or any summed crosspoint source is a pair.
Patching Firefox makes the channel stereo; a mono mic keeps it mono; unpatching
reverts it. Channel LINKING is deliberately not folded in (it rides
/channel/{kind}/{index}/link): the surface renders a strip stereo when it is linked OR
source-stereo, so the two cues never fight.
Readonlytype
Broadcast after any crosspoint change (PATCH /patch/input/{kind}/{index}): the FULL set of input endpoints now feeding a channel's head — the crosspoint patchbay's multi-in state. Multiple endpoints sum natively at the head; a UI renders one cell per
(source, channel)pair, and flags a source feeding more than one channel. So every client converges on the complete source → channel crosspoint.