Skip to content

Add oac uninstall to remove an installation and its data - #281

Merged
SaladDay merged 3 commits into
mainfrom
codex/oac-uninstall
Sep 30, 2026
Merged

SaladDay merged 3 commits into
mainfrom
codex/oac-uninstall

Conversation

@SaladDay

@SaladDay SaladDay commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Add <install-dir>/oac uninstall to remove an installation's Compose project and database volume, native Core unit, unused untagged images, and installation directory. It also works with incomplete installations or missing config.json, and reuses the installer cleanup under the installation lock.

The command lists the deletion scope and data loss before requiring the exact installation path or --yes. When Core answers it lists registered nodes and warns about remaining sandbox resources; after removal it prints the node-host uninstall command with --force. Tagged images and images used by other containers stay. Unavailable Docker inspection preserves recovery state, and unsafe private-file links skip the optional Core probe.

The installation summary includes the command; Operations owns its usage documentation.

Validation: 27 focused uninstall/output tests; make check-distribution (249 installer tests, two expected skips); make check-names. Independent blind review covers resource ownership, confirmation, credential protection and recovery.

Review follow-up: truncated Core HTTP responses fall back to the generic node reminder, so optional discovery cannot block uninstall. After integration, reran the 70 affected installer and output tests and the name guard.

@SaladDay
SaladDay merged commit 8a24440 into main Sep 30, 2026
5 checks passed
oac uninstall lists what it removes (Compose project and database volume,
native Core's unit, the recorded images, the directory) and, when Core
answers, the registered nodes and the sandboxes in use, with a warning that
uninstall stops no sandbox (E2B keeps running and billing). It then needs the
typed installation directory or --yes. It holds the installation lock, needs
only state.json, and accepts complete and incomplete installations alike;
the incomplete-installation refusal of other commands now names it.

It builds on oac_cli.remove, which now also removes the recorded images on
request, run like Compose from / without COMPOSE_* and printing nothing: an
image that a tag names or any container uses is kept and reported. A rerun
of the same oac finishes an interrupted uninstall; without state.json it
removes nothing and says so. Afterwards it prints the nodes' --force
uninstall command with the installation ID.

The install summary lists the command, and operations.md gains an Uninstall
section.
@SaladDay
SaladDay deleted the codex/oac-uninstall branch October 7, 2026 06:38
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