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
I2720
majordomus self update re-runs the published installer, and never reimplements it
Where it stands
devtask.issue- Readiness
- ready no dependency and no gate holds it; nobody has started it
- Status
- READY
- Can start
- startable
- Milestone
- Milestone status
- ACTIVE
- Wave
0- Waiting on
- none
- Holds back
- Behind it in all
3- Evidence
0of2
Moves
plan.transitionWhat it is
- Objective
- Give every installation one typed command that reports and applies an upgrade to the stable release by running the published install.sh with --version and the installation's own prefix, so the download, verification and swap exist once.
- Why
- ADR 0161 (owner decision of 2026-10-14) makes a mesh node follow the published release. docs/DISTRIBUTION.md left open whether a self-update reimplements the installer in Rust or re-runs it; ADR 0161 decides it re-runs it, because the installer's digest and size check and its atomic launcher rename are the tested risky part (case 85).
- Now
- There is no self-update command; a person reruns install.sh with --version on each machine.
- Wanted
- A capability self.update with --check (current version, the stable pointer's version, whether an upgrade applies, forward-only and stable-only verdict) and --apply (runs the installer the installation's share/distribution.yaml names, with --version <tag> and the installation's prefix, and reports the installed version read back from the new launcher). It refuses a downgrade, a pre-release and a version the metadata does not list.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- self update --check names the running and the stable version and whether an upgrade applies, without a network write
- self update --apply installs the stable release through install.sh and the new launcher reports it
- A downgrade, a pre-release and an unlisted version are refused with the reason
- Validation
bin/majordomus plan validateMJ_TEST_JOBS=4 bash test/run.sh 85_installer <the case this issue adds>- Evidence required
self_update_wraps_installer_testself_update_refuses_downgrade_test- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
apps/majordomus-cli/src/capability/builtinapps/majordomus-cli/src/releaseshare/commands.yamldocs/DISTRIBUTION.mddocs/CLI.mdtest/cases- Not
A second implementation of download, verification or swapActivating the new version in a running server (I2722, I2163)- Depends on
- none
- Priority
- p0
- Profile
- implementation
- Parallel safe
- true
- 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
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares test/cases with I2723; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2731; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2734; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/capability/builtin with I2740; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2742; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2747; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2760; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2786; they may not run concurrently | majordomus plan validate |