Skip to content

v0.4.0 — spectator uninstall (inverse of install; rm -rf workdir)

Choose a tag to compare

@myurasov myurasov released this 10 May 02:35
· 17 commits to main since this release

Adds a first-class spectator uninstall verb. spectator down was always meant to be non-destructive (stops processes / containers / tmux, leaves the install on disk for next bring-up); v0.4.0 makes the cleanup-the-whole-thing case a first-class verb instead of "manually rm -rf and hope you typed the right path".

Behavior

$ ./spectator uninstall --target myspark1-local
This will stop everything Spectator launches on myspark1-local
and remove ~/.spectator/ (the entire workdir, including VSS clone,
audio-venv, ui-server state, and any transcripts in audio-out/).
Proceed? [y/N]:
  1. Confirms (defaults to No so a stray Enter doesn't nuke anything; pass --force / -y for scripts).
  2. Calls stack.down() first so VSS containers + tmux sessions exit cleanly. Best-effort — if down already ran, that's fine.
  3. rm -rf $workdir/ with safety guards: the bash payload refuses to operate when the workdir resolves to empty / / / $HOME.
  4. Prints a checklist of categories deliberately left alone, with the canonical commands to clean each manually.

Left untouched (and why)

  • Docker images cached locally (~30 GB). Re-pulling is slow (~30-45 min) and the cache may be useful for adjacent NIM-based tooling. List: docker images | grep nvcr.io. Remove: docker rmi <image-id>.
  • ~/.docker/config.json NGC login entry. May coexist with other registries the user uses. Revoke: docker logout nvcr.io.
  • --apply-system mutations (nvidia-ctk runtime config, docker group membership). These were opt-in via an explicit flag, so reversal is also explicit.
  • ~/.local/bin/uv. The user installed it and may use it for other projects.

Tests

53/53 (was 50, +3): bash payload pinned for safety guards + each "left alone" category mention; stack.down is called before rm -rf (verified for both local and remote paths via monkey-patched call-order capture); --help advertises --target / --workdir / --force and the destructive-action language.

down vs uninstall — when to use which

down uninstall
Stops VSS containers yes yes (via down internally)
Kills tmux sessions yes yes (via down internally)
Removes $workdir/ no yes
Use case between work sessions tearing down a host you're done with