The seatnode-backup (node scope) with the verbs backed-up, now, restore, receiving contributions of kind backup.
A contribution may name its module's own directories (Receivable.Dirs, opt-in per kind): each contributor's ${dir:<id>} is filled with where it is on the machine when the holder places it; an undeclared one is refused when the manifest is parsed.
The catalogue check refuses a store provider without a backup (CheckBackup, TestEveryCatalogueStoreSaysHowItIsBackedUp). Deliberately not in parsing: registered providers written before the rule must stay readable.
Seat count 37 → 38.
Tests: new backup tests pass; full suite passes except the two resolver tests that fail on main too (they wait for catalog #247).
Merge order: mesh-controller first, and let it deploy; then mesh-catalog; then hq. A controller without the node-backup seat refuses a module contributing to it, so the catalog's rebuilt store modules would not register before it.
- **The seat** `node-backup` (node scope) with the verbs `backed-up`, `now`, `restore`, receiving contributions of kind `backup`.
- **A contribution may name its module's own directories** (`Receivable.Dirs`, opt-in per kind): each contributor's `${dir:<id>}` is filled with where it is on the machine when the holder places it; an undeclared one is refused when the manifest is parsed.
- **The catalogue check refuses a store provider without a backup** (`CheckBackup`, `TestEveryCatalogueStoreSaysHowItIsBackedUp`). Deliberately not in parsing: registered providers written before the rule must stay readable.
- Seat count 37 → 38.
Tests: new backup tests pass; full suite passes except the two resolver tests that fail on main too (they wait for catalog #247).
**Merge order: mesh-controller first, and let it deploy; then mesh-catalog; then hq.** A controller without the `node-backup` seat refuses a module contributing to it, so the catalog's rebuilt store modules would not register before it.
ADR 0214 / to-be 43: a node seat whose holder keeps nightly restore points of what every module on
the machine declares. A contribution of kind backup may name its module's own directories, filled
per module when placed. The catalogue check refuses a store provider that contributes no backup;
parsing does not, so the providers already running stay readable.
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Transitions
2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#49 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/mesh-controller@869fb6d6bf4c` — **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 build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
**Transitions**
- 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#49 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`.
This repo is archived. You cannot comment on pull requests.
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.
node-backup(node scope) with the verbsbacked-up,now,restore, receiving contributions of kindbackup.Receivable.Dirs, opt-in per kind): each contributor's${dir:<id>}is filled with where it is on the machine when the holder places it; an undeclared one is refused when the manifest is parsed.CheckBackup,TestEveryCatalogueStoreSaysHowItIsBackedUp). Deliberately not in parsing: registered providers written before the rule must stay readable.Tests: new backup tests pass; full suite passes except the two resolver tests that fail on main too (they wait for catalog #247).
Merge order: mesh-controller first, and let it deploy; then mesh-catalog; then hq. A controller without the
node-backupseat refuses a module contributing to it, so the catalog's rebuilt store modules would not register before it.Delivery
novox/mesh-controller@869fb6d6bf4c— held since 2026-10-06T23:05:28ZHeld for a person: merged without a passing check: only a person decides that it goes on —
mesh-delivery.releasewith why lets it go on.Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.