A take is a comparison: the host's facts, former targets, and strays (hq ADR 0163) #63

Merged
mesh-admin merged 1 commits from feat/a-take-is-a-comparison-the-hosts-facts into main 2026-10-01 19:25:57 +00:00
Contributor

The host's half of hq ADR 0163 (group 6):

  • Every held thing carries the facts a take compares. A found container: its image and the image's creation date, the networks it is on and the other containers on each, mounts and published ports, beside the declared image (and its date once the image is on the machine), ports and volumes; downgrade is decided only when both dates are known. A found file declared whole: whether the declared content differs and how, as lines lost (-) and lines new (+), bounded.
  • A resource whose target moved keeps the former target on record as an orphan (<id>@former:<target>), so the next apply removes the container or file the host wrote under the old name; what was found is held and never recorded here, so never removed (issue 097).
  • Every apply reports the strays: containers the mesh neither wrote nor holds.

Tests: facts from a fake runtime, the difference, an unpulled declared image leaving the downgrade undecided, strays, former targets. make check green. The controller reads the facts as data (mesh-controller branch feat/a-take-is-a-comparison); a controller older than that ignores them, a host older than this reports none and the preview says so.

The host's half of hq ADR 0163 (group 6): - Every held thing carries the facts a take compares. A found container: its image and the image's creation date, the networks it is on and the other containers on each, mounts and published ports, beside the declared image (and its date once the image is on the machine), ports and volumes; `downgrade` is decided only when both dates are known. A found file declared whole: whether the declared content differs and how, as lines lost (-) and lines new (+), bounded. - A resource whose target moved keeps the former target on record as an orphan (`<id>@former:<target>`), so the next apply removes the container or file the host wrote under the old name; what was found is held and never recorded here, so never removed (issue 097). - Every apply reports the strays: containers the mesh neither wrote nor holds. Tests: facts from a fake runtime, the difference, an unpulled declared image leaving the downgrade undecided, strays, former targets. `make check` green. The controller reads the facts as data (mesh-controller branch `feat/a-take-is-a-comparison`); a controller older than that ignores them, a host older than this reports none and the preview says so.
mesh-admin added 1 commit 2026-10-01 19:24:54 +00:00
Every held thing carries what a take compares: for a found container its image and the image's date,
the networks it is on and the other containers on each, its mounts and published ports, beside the
declared image (and its date once pulled), ports and volumes, with the downgrade decided when both
dates are known; for a found file whether the declared content differs and how, as lines lost and
lines new. A resource whose target moved keeps the former target on record as an orphan, so the next
apply removes the container or file the host wrote under the old name (issue 097). Every apply reports
the strays: containers the mesh neither wrote nor holds.
mesh-admin merged commit d53e626366 into main 2026-10-01 19:25:57 +00:00
mesh-admin deleted branch feat/a-take-is-a-comparison-the-hosts-facts 2026-10-01 19:25:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#63