Skip to content

K2GO-440 fix(updaters): source the add-ons and build-assets mirrors from the self-updating clone - #623

Merged
luisguzman-adfa merged 2 commits into
mainfrom
feat/K2GO-440-updater-self-update
Oct 3, 2026
Merged

luisguzman-adfa merged 2 commits into
mainfrom
feat/K2GO-440-updater-self-update

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

What

Point the add-ons and build-assets refresh wrappers at the mirror in the
self-updating clone (/opt/iiab-android), with a fallback to the bake-time copy in
the ansible roles directory. A mirror fix then ships via dash-node's existing
self-update (git reset), with no rootfs rebake.

Why

The add-ons and build-assets roles are Knowledge to Go overlays, not IIAB
upstream roles: their mirror scripts live in our repo and are carried into the
self-updating clone, but the wrappers read the bake-time copy, which only a full
rebake refreshes. So a two-line mirror fix forces a fleet rebake today. Forgejo
already avoids this by sourcing its orchestration from the clone; this makes the
other two consistent.

Changes

  • tools/code-addons-refresh.sh, tools/code-assets-refresh.sh: resolve MIRROR as
    the clone copy when present, else the baked copy.
  • No role/install.yml change: bake and on-demand runrole still run the baked
    copy; the no-rebake benefit targets the live refresh, where minor changes are
    consumed.
  • ADR: controller/docs/ADR-updater-self-update-no-rebake.md (also sets the
    box-vs-APK forward-compat boundary; the general policy is K2GO-447).

Verification

  • Both wrappers: bash -n clean; resolver logic emulated (clone-if-present else
    baked).
  • The clone retains the path: the bake applier runs from
    /opt/iiab-android/tools/upstream-patches/, and build-iiab-rootfs.sh asserts the
    clone exists. The fallback keeps the change safe even if the clone copy is
    absent (behaves as today).
  • A live run (refresh using the clone copy) is pending a box with run-as access
    or the next rebake.

Notes

  • No dash-node version bump: the wrappers are not static/dashboard; the same
    self-update git reset carries them.

…rom the self-updating clone

Point the refresh wrappers at the mirror in /opt/iiab-android (which dash-node
self-updates via git reset), with a fallback to the bake-time copy in the ansible
roles dir. A mirror fix then ships via self-update with no rebake, like
forgejo-refresh.sh already sources its orchestration from the clone. The two roles
are Knowledge to Go overlays, not IIAB upstream. ADR:
controller/docs/ADR-updater-self-update-no-rebake.md.
…l 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.
@luisguzman-adfa
luisguzman-adfa merged commit 72d41a9 into main Oct 3, 2026
2 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the feat/K2GO-440-updater-self-update branch October 3, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant