hq ADR 0233. Merge after mesh-controller (an older controller refuses the new data field).
37 manifests gain a data section (classes per the operator's ranking; table in the ADR); the 9 hand-written node-backup lines are gone — derived now (same paths and dumps as before, plus valuable/rebuildable items newly in the nightly plan).
restic: reads the composed data.conf (MESH_BACKUP_DATA), measures every non-cache item hourly and after each night (size + newest write in one find walk as root), reads ZFS/md/btrfs health under it, reports both in backed-up with each item's last good backup; new module tools backup_delete_retired / backup_deleted: last restore point tagged retired=<item> first, then rm -rf --one-file-system, refusing declared paths, the repository, anything near /.
postgres + keycloak (identical harness): provisioner_retirement answers held_sizes so the controller can tell an empty replacement.
Tests: restic data_test.go (parse, measure, ZFS/md, delete only after restore point), postgres/keycloak suites. go test -race green; module check passes the whole catalogue.
hq ADR 0233. **Merge after mesh-controller** (an older controller refuses the new `data` field).
- 37 manifests gain a `data` section (classes per the operator's ranking; table in the ADR); the 9 hand-written `node-backup` lines are gone — derived now (same paths and dumps as before, plus valuable/rebuildable items newly in the nightly plan).
- `restic`: reads the composed `data.conf` (`MESH_BACKUP_DATA`), measures every non-cache item hourly and after each night (size + newest write in one `find` walk as root), reads ZFS/md/btrfs health under it, reports both in `backed-up` with each item's last good backup; new module tools `backup_delete_retired` / `backup_deleted`: last restore point tagged `retired=<item>` first, then `rm -rf --one-file-system`, refusing declared paths, the repository, anything near `/`.
- postgres + keycloak (identical harness): `provisioner_retirement` answers `held_sizes` so the controller can tell an empty replacement.
- redis consumers: `cache` (nothing requires `redis-cache`).
Tests: restic data_test.go (parse, measure, ZFS/md, delete only after restore point), postgres/keycloak suites. `go test -race` green; `module check` passes the whole catalogue.
Backup lines are derived from each module's data section instead of written by hand; the holder
measures declared items, reads the array under them, and deletes a retired item only after a last
restore point; the Go providers say each held consumer's size so an empty replacement is seen.
Walks run at most daily and stop after ten minutes or two million files; datasets are read from
their counters and large items from their top level only. The database platform's tables are
dumped with pg_dumpall rather than copied as live files.
Deliverynovox/mesh-catalog@f144f6eee8af — delivered since 2026-10-06T23:05:28Z
Machines
build-agent on ace: sent
records on novox: sent
Transitions
2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#92 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
2026-10-06 23:05 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's plans go
2026-10-06 23:05 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@f144f6eee8af` — **delivered** since 2026-10-06T23:05:28Z
**Machines**
- build-agent on ace: sent
- records on novox: sent
**Transitions**
- 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#92 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
- 2026-10-06 23:05 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's `plans go`
- 2026-10-06 23:05 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
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.
hq ADR 0233. Merge after mesh-controller (an older controller refuses the new
datafield).datasection (classes per the operator's ranking; table in the ADR); the 9 hand-writtennode-backuplines are gone — derived now (same paths and dumps as before, plus valuable/rebuildable items newly in the nightly plan).restic: reads the composeddata.conf(MESH_BACKUP_DATA), measures every non-cache item hourly and after each night (size + newest write in onefindwalk as root), reads ZFS/md/btrfs health under it, reports both inbacked-upwith each item's last good backup; new module toolsbackup_delete_retired/backup_deleted: last restore point taggedretired=<item>first, thenrm -rf --one-file-system, refusing declared paths, the repository, anything near/.provisioner_retirementanswersheld_sizesso the controller can tell an empty replacement.cache(nothing requiresredis-cache).Tests: restic data_test.go (parse, measure, ZFS/md, delete only after restore point), postgres/keycloak suites.
go test -racegreen;module checkpasses the whole catalogue.Delivery
novox/mesh-catalog@f144f6eee8af— delivered since 2026-10-06T23:05:28ZMachines
Transitions
plans goThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.