Tests / tests (push) Successful in 3m5s
- offer_chroot(): optional arch-chroot shell into the still-mounted target, from install_cleanup() on success and from the EXIT trap when a step fails after pacstrap (TARGET_INSTALLED flag); temp NOPASSWD sudoers drop-ins are always removed before the shell is opened. - INT/TERM handler re-exits with 128+N: without it bash runs the EXIT trap with $? = 0 for a signal-killed shell and the rc != 0 test would skip the offer. A signal during teardown only aborts the prompt (first) so the unmount still runs; a second forces the exit. - cleanup(): report a failed umount -R / cryptsetup close instead of hiding stderr, so a repair shell leaving busy mounts is visible before reboot. - Document the flow in AGENTS.md.