Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I2721

An enrolled mesh node follows the stable pointer by itself

Where it stands

devtask.issue
Readiness
blocked 1 of its dependencies is not DONE
Status
BLOCKED
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
1
Waiting on
Holds back
none
Behind it in all
0
Evidence
0 of 2
In the waySubjectDetail
issueI2720I2720 is not DONE
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I2721

majordomus plan verify I2721

majordomus plan done I2721

What it is

Objective
Make every node the mesh declaration enrolls keep its installation at the version releases/latest.json names, checking at server start, every 15 minutes with jitter and when the mesh announces a release, and applying through self update.
Why
ADR 0161. On 2026-10-14 v0.25.0 reached the five mesh nodes only after one session upgraded each by hand, and v0.26.0 sat on the stable pointer while every node ran 0.25.0.
Now
No process reads releases/latest.json except install.sh run by a person.
Wanted
The mesh declaration carries follow: stable | pinned <version> | off per node, defaulting to stable for an enrolled node of the owner's mesh. A following node's server checks the pointer as above, never while blocking a request, and applies a forward, stable, listed version through self update --apply. A mesh release announcement only triggers a check; nothing a peer sends is trusted as a version or digest.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • A following node whose installed version is behind the stable pointer is upgraded within one check interval with no person on it
  • A pinned node and a node with follow: off are left alone, and say so in mesh doctor
  • A mesh announcement naming a version the metadata does not list changes nothing
Validation
bin/majordomus plan validateMJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>
Evidence required
node_follows_stable_pointer_testpeer_announcement_not_trusted_test
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-cli/src/meshapps/majordomus-cli/src/commands/serve.rsapps/majordomus-cli/src/release.ai/repo/mesh/majordomus.yamlshare/schemasdocs/MESH.mddocs/DISTRIBUTION.mdtest/cases
Not
A network fetch on entering a repositoryRepositories that adopt Majordomus without enrolling machines in this mesh
Depends on
Priority
p0
Profile
implementation
Parallel safe
false
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-10-14
Updated
2026-10-14
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.