PruneBlobs, CleanupLocalSnapshots, RemoveSnapshot, RemoveAllSnapshots
and snapshot purge wrote their status lines straight to stdout, so
`snapshot create --cron --prune` printed on every successful run and
--quiet did not silence `prune`, `snapshot purge`, `snapshot remove` or
`remote nuke`. Those lines now go through internal/ui, which drops them
under --cron and --quiet; warnings, errors and --json documents still
print.
The confirmation prompts and their "Cancelled" answer still write to
stdout directly, as the `database delete` prompt does. Under --quiet
without --force, the list of snapshots shown before the purge prompt is
now silenced.
The two purge test fixtures gained the UI writer production always sets.
Model: opus-5-5