Files
mesh-catalog/modules/restic
jschoubben 3e08301b27
mesh/delivery-group group feat/judge-once rejected: composed together: the checker's verdict at the members' heads (5c42ba1fb5f3): integration: artifactstoreto…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: artifactstoretools/cmd/artifa… | 3e08301b27ea on 4b16c193f0fb | judged by the candidate's mesh-build-go at 8dd51540f73a
Pin every module to the group's mesh-sdk head after the gofmt fix
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-01 03:30:59 +01:00
..

restic

The machine's backups as the node-backup seat (novox/hq ADR 0214, to-be 43, ADR 0233): one restic repository on the machine, one restore point per module a night, thinned by the machine's settings. Against mistakes, not disasters: nothing leaves the machine.

How restore points are kept

  • A night's restore point is tagged with its module alone and thinned by keep-daily, keep-weekly and keep-monthly (14, 8 and 6 by default).
  • A restore point taken by hand (node-backup.now, asked by a person, or by the mesh before a module moves) is tagged hand as well. The thinning keeps that tag (--keep-tag hand), so the next night never takes it (novox/hq issue 453). It is let go, by its id, only when both hold: it is older than keep-hand-taken-days (7 by default), and a later night of its module was recorded as good. A partial night, where restic wrote a restore point but could not read every file, does not count.
  • A module that left the machine gets no later night, so its restore points taken by hand are kept for good. That is a choice: deleting a module's last restore point is a person's act, and until then it costs only space.

A repository another restic holds (a listing of the restore points, say, while a delivery plan backs up the machine's modules before their moves) is waited for: the thinning asks restic to retry the lock for up to ten minutes (--retry-lock, novox/hq issue 620), and fails only after that. A failed thinning keeps every restore point, and the module's health stays unhealthy until a thinning succeeds: the next night's, or one after node-backup.now.

node-backup.backed-up lists each module's restore points taken by hand under handTaken: when each was taken, the time it is kept at least until, whether it still waits for a later good night, and a sentence saying so.

Files it does not know

Each directory or archive this module declares says how it treats a file it did not write (ADR 0422, ADR 0416).

  • ${dir:state}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).
  • ${dir:repository}: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2).