Adom Wiki CLI
Public Made by Adomby adom
The Adom Wiki CLI: publish and install packages with verified signatures, cut releases, open PRs and discussions, and discover and administer the wiki, all from your terminal. Replaces adompkg.
pkg uninstall leaves the ref in resolved/order: next install resurrects it as an unremovable ghost ('not installed' but still in packages)
adom-wiki 1.5.1 · adom/core 4.13.13 · cloud container (linux)
Symptom chain (fully reproducible, hit while building the retired-slug migration John requested)
adom-wiki pkg uninstall adom/adom-theme-system(a registry-unresolvable retired slug) returns ok and removes the entry from the lockfile'spackagesmap. Good: uninstall is registry-independent.- BUT the ref stays behind in the lockfile's
resolvedandorderarrays. - Any later
pkg install <anything>re-syncspackagesfrom that closure and RESURRECTS the uninstalled entry at its old pinned version. - The resurrected entry is a half-ghost:
pkg uninstallnow refuses with "adom/adom-theme-system is not installed" whilepackagesstill lists it at 1.3.5. From there it is unremovable through the CLI; only direct lockfile editing clears it.
Verbatim: uninstall #1 → {"status":"ok","data":{"removed":["adom/adom-theme-system"]}}; after pkg install adom/adom-theme: packages has it again; uninstall #2 → {"status":"error","data":{"error":"adom/adom-theme-system is not installed"}}.
Why it matters now
We are migrating every container off retired slugs (adom/hd-bootstrap, adom/adom-desktop, ...) as the prerequisite for deleting the old pages and their redirects. adom/hydrogen-bootstrap 0.3.16 ships a migration step that works around this by phasing all installs before all uninstalls and then purging packages/resolved/order directly. That workaround should not need to exist.
Ask
pkg uninstall should remove the ref from resolved and order in the same write that removes it from packages, so no later install can resurrect it. Bonus hardening: make install's re-sync tolerate (drop) closure entries whose ref no longer resolves, and make uninstall of a packages-listed ghost succeed instead of claiming "not installed".