Skip to content

Commit 34554f1

Browse files
K2GO-440 docs(adr): clarify delivery via the dash-node rebuild (manual Rebuild needs no version bump)
The updater code reaches a box through the dash-node rebuild (git reset of the clone), triggered from the Dashboard detail screen. Note both paths: the auto "update available" prompt needs a package.json bump, but the always-present manual Rebuild deploys a mirror/wrapper fix with no bump. Content-refresh actions do not update the updater code.
1 parent 407c34e commit 34554f1

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

‎controller/docs/ADR-updater-self-update-no-rebake.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,35 @@ baked copy", resolved by a fixed preference (clone first, baked fallback). We do
5454
NOT build version arbitration between repositories ("the newer of A vs B wins").
5555
That complexity is explicitly rejected.
5656

57+
## Delivery (how a mirror fix reaches a deployed box)
58+
59+
The content-refresh actions ("Update repos / add-ons / assets") re-download content
60+
only: they do NOT update the updater code. The updater code (wrappers and mirrors)
61+
reaches a box through the dash-node self-update (`POST /system/dashboard/rebuild`,
62+
`git reset --hard origin/<branch>` on the whole clone).
63+
64+
The rebuild is reached from the app UI on the Dashboard detail screen
65+
(`redesign/DashboardDetailFragment`, also surfaced in `ModuleHubFragment`): an
66+
"Update" button when a newer version is on `origin/main`, or a de-emphasized but
67+
always-present "Rebuild" button otherwise ("Never blocks: the user can still
68+
Rebuild manually"). Both run `POST /system/dashboard/rebuild`.
69+
70+
Two delivery paths follow from that:
71+
72+
- Automatic prompt: the "update available" chip appears only when `package.json`
73+
differs from `origin/main` (CLAUDE.local.md: "No bump -> existing boxes never
74+
pick up the change through self-update"). The bump is the fleet-wide delivery
75+
trigger (as in ADFA-386, "the version bump is the delivery mechanism").
76+
- Manual: the "Rebuild" button is always available, so an admin can trigger the
77+
`git reset --hard origin/main` at any time; it pulls the whole clone (new
78+
wrappers and mirrors) regardless of any version bump.
79+
80+
So a mirror or wrapper fix does NOT strictly require a dash-node version bump to
81+
reach a box: a manual Rebuild deploys it. A bump is only needed to auto-prompt the
82+
fleet. Either way the `git reset` carries the whole clone, no rebake. A fresh bake
83+
gets the code from source regardless. This ADR does NOT add an updater-only
84+
delivery trigger independent of the rebuild; that would be extra scope.
85+
5786
## Scope (minimal)
5887

5988
- `tools/code-addons-refresh.sh` and `tools/code-assets-refresh.sh`: resolve

0 commit comments

Comments
 (0)