A running module could never gain a setting: a ${setting:} nothing set failed composition, and settings refused a key no file asked for yet.
ADR 0262 (extends 0112; builds the default half of the proposed 0164): a manifest may give a preference a default with why; the operator's own value has none; the mesh-wide then the node's settings override it; the defaults layer is marked, not named; stored manifests are read leniently and registration strictly; settings shows each value's source and, with list: "preferences", lists every module's preferences per machine; how each rule is checked.
Research 037: the literals in both catalogues that would become preferences, by module, with key, default and why. Nothing is converted yet.
Dated pointer notes in ADR 0155 and ADR 0164.
Design 27 gains the built paragraph and the decision; design 18's resource table names the default.
Glossary: preference (Not:tunable in hq), and ADR 0262 in the Module domain's Decided by.
Code: mesh-controller #153 (merge first, and let it go live), then mesh-catalog #132 (the dunst module). Same branch name in all three.
merge-check.sh (with the catalogue's retired words) passes locally.
A running module could never gain a setting: a `${setting:}` nothing set failed composition, and `settings` refused a key no file asked for yet.
- **ADR 0262** (extends 0112; builds the default half of the proposed 0164): a manifest may give a **preference** a default with why; the operator's own value has none; the mesh-wide then the node's settings override it; the defaults layer is marked, not named; stored manifests are read leniently and registration strictly; `settings` shows each value's source and, with `list: "preferences"`, lists every module's preferences per machine; how each rule is checked.
- **Research 037:** the literals in both catalogues that would become preferences, by module, with key, default and why. Nothing is converted yet.
- Dated pointer notes in ADR 0155 and ADR 0164.
- Design 27 gains the built paragraph and the decision; design 18's resource table names the default.
- Glossary: **preference** (*Not:* ~~tunable~~ in hq), and ADR 0262 in the Module domain's *Decided by*.
Renumbered from 0261, which hq #214 holds.
Code: mesh-controller #153 (merge first, and let it go live), then mesh-catalog #132 (the dunst module). Same branch name in all three.
`merge-check.sh` (with the catalogue's retired words) passes locally.
Deliverynovox/hq@6a9bc3f4b3ea — delivered since 2026-10-08T16:19:06Z
Delivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
2026-10-08 15:56 (new) → proposed (announced): novox/hq#216's head announced
2026-10-08 15:56 proposed → checked (checked): the verdict names this commit
2026-10-08 15:56 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 16:19 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-08 16:19 published → delivered (done): nothing for a walk to move
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/hq@6a9bc3f4b3ea` — **delivered** since 2026-10-08T16:19:06Z
**Delivery plan** — builds nothing: the change touches no module of the mesh's graph
**Transitions**
- 2026-10-08 15:56 (new) → proposed (announced): novox/hq#216's head announced
- 2026-10-08 15:56 proposed → checked (checked): the verdict names this commit
- 2026-10-08 15:56 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 16:19 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-08 16:19 published → delivered (done): nothing for a walk to move
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-admin
changed title from ADR 0261: a preference has a default in its manifest, and the operator's own value has none to ADR 0262: a preference has a default in its manifest, and the operator's own value has none2026-10-08 14:38:52 +00:00
A ${setting:} nothing set failed composition, and settings refused a key no file asked
for yet, so no order of changes could add a setting to a running module. A manifest may
now default a preference; the operator's own value still has none.
A stored manifest read strictly would fail the whole catalogue after a controller rollback, and a node
called default would lose its layer. Also scope the default, retire tunable, and list the new checks.
The operator asked for one place that lists every module's preferences and each machine's value, and
for a list of the values the catalogues hard-code that should become preferences.
Dropping an unknown key would run a module without something its manifest says. Also name the check by
what a key is about, narrow the listing to one machine, and say how to roll back below this record.
The record claimed a left-out module kept what the machine holds for it and that an entry's unknown key
was read like a top-level one; neither is true of the merged controller.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A running module could never gain a setting: a
${setting:}nothing set failed composition, andsettingsrefused a key no file asked for yet.settingsshows each value's source and, withlist: "preferences", lists every module's preferences per machine; how each rule is checked.tunablein hq), and ADR 0262 in the Module domain's Decided by.Renumbered from 0261, which hq #214 holds.
Code: mesh-controller #153 (merge first, and let it go live), then mesh-catalog #132 (the dunst module). Same branch name in all three.
merge-check.sh(with the catalogue's retired words) passes locally.Delivery
novox/hq@6a9bc3f4b3ea— delivered since 2026-10-08T16:19:06ZDelivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.20aa39fb2fto2d91bd7d15ADR 0261: a preference has a default in its manifest, and the operator's own value has noneto ADR 0262: a preference has a default in its manifest, and the operator's own value has none680ae66e28to314147c61e314147c61eto63c041771fA ${setting:} nothing set failed composition, and settings refused a key no file asked for yet, so no order of changes could add a setting to a running module. A manifest may now default a preference; the operator's own value still has none.63c041771fto6a9bc3f4b3