The listener is called SYNCHRONOUSLY with the full snapshot before watch returns —
one call per live instance — and thereafter once per committed change. A consumer therefore
has a populated board the moment it has subscribed, with no greeting to wait for and no
window in which it is connected but blank.
Declaring what you read
paths is the consumer naming the row TEMPLATES it consumes. It is not an optimisation of
the listener's inbox — watching IS demand, so a path admitted here holds that row's pump
running, and a path left out releases it. A surface that reads nine rows and asked for all
eighty-five was therefore keeping the analyser poll alive with nobody looking at a trace: the
console armed every operator-engaged lane at 10 Hz because a control surface was plugged in.
Omitted means EVERY row, which is what a consumer that genuinely mirrors the whole console
wants — and what every consumer got before the parameter existed.
What a consumer displays through a PUMP it names in the same window: a desk whose rings
paint the meters names /meters and is owed the whole frame, exactly as a windowed
GET /api/?watch=1&paths=/meters is (h2 spec, amendment 2026-09-02, E1). Watching IS the
demand — there is no second declaration, in process or on the wire.
Param: paths
the row templates this consumer reads (/channel/{kind}/{index}/fader); omit
for all of them
Watch the console's rows in process.
The listener is called SYNCHRONOUSLY with the full snapshot before watch returns — one call per live instance — and thereafter once per committed change. A consumer therefore has a populated board the moment it has subscribed, with no greeting to wait for and no window in which it is connected but blank.
Declaring what you read
pathsis the consumer naming the row TEMPLATES it consumes. It is not an optimisation of the listener's inbox — watching IS demand, so a path admitted here holds that row's pump running, and a path left out releases it. A surface that reads nine rows and asked for all eighty-five was therefore keeping the analyser poll alive with nobody looking at a trace: the console armed every operator-engaged lane at 10 Hz because a control surface was plugged in.Omitted means EVERY row, which is what a consumer that genuinely mirrors the whole console wants — and what every consumer got before the parameter existed.
What a consumer displays through a PUMP it names in the same window: a desk whose rings paint the meters names
/metersand is owed the whole frame, exactly as a windowedGET /api/?watch=1&paths=/metersis (h2 spec, amendment 2026-09-02, E1). Watching IS the demand — there is no second declaration, in process or on the wire.Param: paths
the row templates this consumer reads (
/channel/{kind}/{index}/fader); omit for all of themReturns
the open watch