ADR 0233: a module declares the data it holds, and the mesh protects and watches it #141

Merged
mesh-admin merged 2 commits from feat/a-module-declares-the-data-it-holds into main 2026-10-06 15:11:22 +00:00
Contributor

The operator's decision of 2026-10-06, after issue 273.

  • ADR 0233 (accepted, deciders jochen): one manifest section data — own items (by ${dir:} or ${access:}), consumers per granted provision, kept-by per required provision. Classes irreplaceable / valuable / rebuildable / cache (+ none for consumers), ranked by the operator (only the media library and the photo sites' storage are irreplaceable). Protection is its own field: backup (copy / none / dump-into) or redundancy with why. Backups derived (no hand-written lines), stickiness from the class, irreplaceable+valuable retired on unassign (deleted only by cleanup delete, after a last restore point), D13 with urgent/warning by class. Rejected options recorded. Per-module class table for the operator to correct, uncertain ones listed.
  • Amends to-be 32 (the section), 18 (the field table), 43 (derived lines, the holder measures and deletes, the media library by redundancy), 45 (writers row, D12/D13 rows, the data conditions, amendment note before Phase 4).
  • Pointer-back notes in ADR 0214 and 0232.

Checks: records.py, index.py, cycle.py pass.

Built in mesh-controller, mesh-host, mesh-catalog, mesh-media-catalog and photos on the same branch name.

The operator's decision of 2026-10-06, after issue 273. - **ADR 0233** (accepted, deciders jochen): one manifest section `data` — `own` items (by `${dir:}` or `${access:}`), `consumers` per granted provision, `kept-by` per required provision. Classes `irreplaceable` / `valuable` / `rebuildable` / `cache` (+ `none` for consumers), ranked by the operator (only the media library and the photo sites' storage are irreplaceable). Protection is its own field: `backup` (copy / none / dump-into) or `redundancy` with why. Backups derived (no hand-written lines), stickiness from the class, irreplaceable+valuable retired on unassign (deleted only by `cleanup delete`, after a last restore point), D13 with urgent/warning by class. Rejected options recorded. Per-module class table for the operator to correct, uncertain ones listed. - Amends to-be 32 (the section), 18 (the field table), 43 (derived lines, the holder measures and deletes, the media library by redundancy), 45 (writers row, D12/D13 rows, the data conditions, amendment note before Phase 4). - Pointer-back notes in ADR 0214 and 0232. Checks: records.py, index.py, cycle.py pass. Built in mesh-controller, mesh-host, mesh-catalog, mesh-media-catalog and photos on the same branch name.
jschoubben added 2 commits 2026-10-06 15:06:30 +00:00
The operator's direction after issue 273: what data a module keeps, how precious it is and how it
is protected is said once, in the manifest, and backups, sticky bindings, retirement on unassign
and the self-check's watch are derived from it. Amends to-be 18, 32, 43 and 45.
Nothing large is walked; the first night's size on the home server is measured and stated, the
previews are left out, the platform database is dumped, and the bus's live copy is flagged.
jschoubben force-pushed feat/a-module-declares-the-data-it-holds from 30c1c41354 to 082693fb25 2026-10-06 15:06:30 +00:00 Compare
mesh-admin merged commit 754e0fb8e0 into main 2026-10-06 15:11:22 +00:00
mesh-admin deleted branch feat/a-module-declares-the-data-it-holds 2026-10-06 15:11:22 +00:00
Author
Contributor

Delivery novox/hq@754e0fb8e0b2 — held since 2026-10-06T23:05:28Z

Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/hq#141 merged; its head was not heard by this owner, so it is made from the forge's word
  • 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/hq@754e0fb8e0b2` — **held** since 2026-10-06T23:05:28Z Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on. **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/hq#141 merged; its head was not heard by this owner, so it is made from the forge's word - 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#141