spawn/sh
A 66036bfac9
fix(do): skip _run_with_restart in headless mode to prevent duplicate droplets (#2805)
The _run_with_restart wrapper in all 8 DigitalOcean agent scripts catches
SIGTERM/SIGKILL exit codes (143/137) and retries the orchestration process.
In headless mode (E2E tests), when the provision timeout kills the process,
this restart loop would re-run main.ts, creating duplicate droplets and
exhausting the account's droplet quota — causing ALL subsequent DO agents
to fail provisioning.

Skip the restart loop entirely when SPAWN_HEADLESS=1 (set by runScriptHeadless
in the CLI). The restart behavior is only useful for interactive sessions
where the user's SSH connection drops.

Fixes #2794

Agent: code-health

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 16:12:25 -07:00
..
aws docs: add missing agent entries to all cloud READMEs (#2494) 2026-03-11 05:49:50 -04:00
cli feat(cli): add spawn uninstall command (#2724) 2026-03-17 16:33:09 -07:00
digitalocean fix(do): skip _run_with_restart in headless mode to prevent duplicate droplets (#2805) 2026-03-19 16:12:25 -07:00
docker feat: add junie Dockerfile for Docker image builds (#2601) 2026-03-13 19:40:51 -07:00
e2e security: base64-encode cmd in _sprite_exec to prevent injection (#2803) 2026-03-19 13:19:07 -07:00
gcp docs: add missing agent entries to all cloud READMEs (#2494) 2026-03-11 05:49:50 -04:00
hetzner docs: add missing agent entries to all cloud READMEs (#2494) 2026-03-11 05:49:50 -04:00
local docs: add missing agent entries to all cloud READMEs (#2494) 2026-03-11 05:49:50 -04:00
shared feat(qa): telegram soak test on digitalocean + fix bun -e (#2547) 2026-03-12 19:45:18 -04:00
sprite docs: add missing agent entries to all cloud READMEs (#2494) 2026-03-11 05:49:50 -04:00
test refactor: Remove dead code and stale references (#2062) 2026-03-01 11:45:24 -05:00