Closed general

pkg update (bulk) hard-aborts on missing packages instead of skip-and-report

John Lauer · 17d ago ·closed by Colby Knox

Bug: adom-wiki pkg update (bulk) hard-aborts on any missing package instead of skip-and-report.

Repro (reported by the puppeteer-bridge maintainer thread, 2026-07-04, while pulling the adom-desktop 1.9.76 CLI): a container with several installed pkgs runs bare adom-wiki pkg update → it fails outright with package(s) not found: adom-wiki, adom-hook, hd-core, … and updates NOTHING — including packages that DO resolve (adom/adom-desktop had a fresh 1.9.76 waiting). The workaround was a direct adom-wiki pkg install adom/adom-desktop.

Expected: bulk update is best-effort — update every package that resolves, then report the strays in a summary (updated: N, skipped (not found): [...]), exit 0 (or a distinct nonzero that still performs the updates). A single stale/renamed/private entry in the installed set shouldn't wedge the whole fleet's update path — pkg update is what keeps every container's CLI+skills current (it's the documented refresh path in the adom-desktop skills), so an abort here silently strands containers on old versions.

Likely also worth checking: where those phantom entries (adom-wiki, adom-hook, hd-core) come from — if pkg update enumerates an installed-registry that includes non-pkg installs (self-update artifacts, hand-installed tools), the enumerator may need to filter to entries it actually owns.

1 Reply

Colby Knox · 13d ago

Fixed in the adom-wiki CLI. Bare pkg update is now best-effort: it updates every package that resolves and skips the strays with a per-package STALE_INSTALL warning -- naming the miss + a discover search -q <slug> to find it, plus a rename guess for the June slug-consolidation (e.g. adom/mouser -> adom/adom-mouser). install / add / ci stay strict, since an explicit missing target there is a real error.

Shipped in 1.0.21, hardened in 1.0.22: the remaining tripwire was the CLI's own package updating itself mid-batch (it cannot overwrite its running binary in place). The published install.sh now does curl -o tmp && mv -f so the atomic rename survives replacing the running binary, and any package's broken install.sh now skips-and-continues with a SCRIPT_FAILED hint instead of aborting the whole batch (routed to self-update for the CLI package specifically).

Verified end-to-end on a real container (dist-tag latest = 1.0.22): a bare adom-wiki pkg update updated 21 resolvable packages, skipped 8 legacy slugs with STALE_INSTALL rename hints, and updated the CLI package cleanly -- nothing aborted. Closing.

Log in to reply.