Every row ADDRESS the console serves, declared once.
An address is a contract fact: it says where a thing lives, and two places that spell it are
two answers to one question. Until 2026-08-11 there were two — the server declared 120 of
these and the surface retyped 82 of them, with a comment explaining the retyping ("the web-ui
does not depend on @freemixer/server"). That reason was sound and the conclusion was not:
the DIRECTION is right, the HOME was wrong. Core is the home; the surface already imports it,
so nothing new is depended on.
They agreed, character for character, on the day they were merged — checked before the move,
across all 120 and 82. That is luck expiring, not a system working: nothing had ever compared
them, and a client that renders against a stale address gets no-such-resource on a desk.
mixer-standard.md (NORMATIVE): "nothing about a specific desk or show is hardcoded". An
address typed into a client is exactly that.
Reading these
A {name} segment is a path VARIABLE the address codec parses — {kind} and {index} name a
channel, {busKind}/{busIndex} its destination, and the rest are the row's own tail. The
templates are the registry's keys, so a typo here is not a broken string: it is a row nobody
can reach, and tools/omx-walk.py --check sees the address list change.
Every row ADDRESS the console serves, declared once.
An address is a contract fact: it says where a thing lives, and two places that spell it are two answers to one question. Until 2026-08-11 there were two — the server declared 120 of these and the surface retyped 82 of them, with a comment explaining the retyping ("the web-ui does not depend on
@freemixer/server"). That reason was sound and the conclusion was not: the DIRECTION is right, the HOME was wrong. Core is the home; the surface already imports it, so nothing new is depended on.They agreed, character for character, on the day they were merged — checked before the move, across all 120 and 82. That is luck expiring, not a system working: nothing had ever compared them, and a client that renders against a stale address gets
no-such-resourceon a desk.mixer-standard.md(NORMATIVE): "nothing about a specific desk or show is hardcoded". An address typed into a client is exactly that.Reading these
A
{name}segment is a path VARIABLE the address codec parses —{kind}and{index}name a channel,{busKind}/{busIndex}its destination, and the rest are the row's own tail. The templates are the registry's keys, so a typo here is not a broken string: it is a row nobody can reach, andtools/omx-walk.py --checksees the address list change.