mirror of
https://github.com/moeru-ai/airi.git
synced 2026-07-10 00:08:33 +00:00
|
Some checks failed
CI / Lint (push) Has been cancelled
CI / Build Test (stage-tamagotchi) (push) Has been cancelled
CI / Build Test (stage-tamagotchi-godot) (push) Has been cancelled
CI / Build Test (stage-web) (push) Has been cancelled
CI / Build Test (ui-loading-screens) (push) Has been cancelled
CI / Build Test (ui-transitions) (push) Has been cancelled
CI / Unit Test (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Check Provenance (push) Has been cancelled
Cloudflare Pages (Admin UI) / Deploy - ui-admin (push) Has been cancelled
Cloudflare Pages (Auth UI) / Deploy - ui-server-auth (push) Has been cancelled
Cloudflare Workers / Deploy - stage-web (push) Has been cancelled
## Description Noticed this reading the terminal runner: when a `terminal_exec` command times out we only `SIGTERM` the shell. The shell isn't spawned `detached`, so anything it backgrounded (`server &`, `nohup`, a dev server) gets reparented to init and keeps running — an orphan leak on every timed-out command that backgrounded something. Fix: spawn the shell `detached` and signal the whole process group (negative PID) on timeout, SIGTERM → 5s → SIGKILL — same pattern as `apps/stage-tamagotchi/scripts/desktop-overlay-live-window-smoke.ts`. Falls back to a single-process kill, non-timeout path unchanged. ## Linked Issues None — just something I noticed. ## Additional Context Added a regression test (backgrounds a `sleep`, times out, asserts the pid is gone) — fails on `main`, passes here. `moeru-lint` clean. Left PTY teardown (`pty-runner.ts`) out on purpose: job control puts background jobs in their own groups, needs session-wide cleanup — happy to follow up. |
||
|---|---|---|
| .. | ||
| computer-use-mcp | ||
| discord-bot | ||
| minecraft | ||
| satori-bot | ||
| telegram-bot | ||
| twitter-services | ||