box/test
dan-claude-bot b3fa94a7d4 fix: teardown-host refuses a terminal-less run instead of aborting mute
host/teardown-host.sh had no `[ -t 0 ]` check before its confirmation
prompt. Without --yes/BOX_YES and without a terminal — CI, a pipe, a
nohup — it fell into `read`, took the instant EOF and exited 1 saying
only "aborted": a refusal naming neither the cause nor the override, in
the most destructive script in the tree.

It now refuses with the override named, exit 2 — "you invoked this
wrong", matching host/revoke-user.sh --purge and install.sh's confirm(),
versus 1 for "you were asked and you said no".

The gate sits below the --yes/BOX_YES arm, so consent given
non-interactively still runs headless, and above the first incus call,
so the refusal needs no daemon — which is what lets test/cli.sh drive it
for real instead of grepping for it.

Refs #113
2026-07-20 14:45:23 +00:00
..
cli.sh fix: teardown-host refuses a terminal-less run instead of aborting mute 2026-07-20 14:45:23 +00:00
labels-reconcile.sh fix: base the human auto-request on THIS handoff, not review history 2026-07-18 20:16:55 +00:00
release.sh fix: the guard also refuses a DUPLICATED release heading, not just a deleted one 2026-07-20 14:08:56 +00:00