ADR 0262: a preference has a default in its manifest, and the operator's own value has none #216

Merged
mesh-admin merged 5 commits from feat/setting-defaults into main 2026-10-08 16:18:54 +00:00
Contributor

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.

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.
Author
Contributor

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-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`.
jschoubben force-pushed feat/setting-defaults from 20aa39fb2f to 2d91bd7d15 2026-10-08 14:38:41 +00:00 Compare
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 none 2026-10-08 14:38:52 +00:00
jschoubben force-pushed feat/setting-defaults from 680ae66e28 to 314147c61e 2026-10-08 15:10:17 +00:00 Compare
jschoubben force-pushed feat/setting-defaults from 314147c61e to 63c041771f 2026-10-08 15:34:55 +00:00 Compare
jschoubben added 5 commits 2026-10-08 15:55:40 +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.
ADR 0262: say what a left-out module loses, and how far an entry's unknown key is read
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
6a9bc3f4b3
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.
jschoubben force-pushed feat/setting-defaults from 63c041771f to 6a9bc3f4b3 2026-10-08 15:55:40 +00:00 Compare
mesh-admin merged commit 79bd9911e6 into main 2026-10-08 16:18:54 +00:00
mesh-admin deleted branch feat/setting-defaults 2026-10-08 16:18:54 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#216