orca/config
Brennan Benson 40d0159926
fix(terminal): kill agent descendant processes on session teardown (STA-1800) (#8706)
* fix(terminal): kill agent descendant processes on session teardown (STA-1800)

Agent CLIs spawn tool children in detached process groups that PTY
SIGHUP can never reach. Killing an agent session (tab close, retire,
sleep) left those children running as orphans — eight orphaned git
processes burned ~8 cores for up to 11.5h under the agents-running
keep-awake and drained a battery to 8%.

New pty-descendant-termination module: snapshot the ppid tree BEFORE
signalling (a dead root's descendants reparent to pid 1 and become
unfindable), SIGTERM the root group and every descendant, then after a
2s grace SIGKILL survivors gated on a pid+start-time identity re-check
so a recycled pid is never signalled. Snapshot is bounded and never
rejects; failures degrade to today's shell-only kill.

Wired for agent sessions only (plain terminals keep nohup semantics) at
all three POSIX kill sites: local provider shutdown, daemon
TerminalHost immediate kill (the pty:kill path — force-kill bypassed
Session.kill entirely), and daemon Session graceful kill.

Verified live in the built app: an agent pane with a detached-pgid
child; the child survived on the unwired build (three control runs) and
dies within ~5s with the fix. Windows ConPTY and SSH-hosted PTYs keep
the previous foreground-tree contract (documented follow-ups).

* fix(terminal): harden descendant teardown

* fix(terminal): require fresh process snapshots

* fix(terminal): close descendant teardown races

* refactor(terminal): preserve teardown line budget

* fix(terminal): keep descendant teardown fresh and identity-safe

* docs(reliability): record integrated descendant E2E

* fix(terminal): bound descendant teardown work

* fix(terminal): share descendant snapshot indexes

* docs(reliability): record descendant review evidence

* revert: remove speculative descendant hardening
2026-07-15 13:25:24 -07:00
..
nsis Windows terminal update-survival (single consolidated PR) (#7538) 2026-07-07 19:21:07 -04:00
patches fix(terminal): keep WebGL glyph atlas pages within the shader sampler budget (#8672) 2026-07-14 14:48:21 -07:00
scripts fix(terminal): keep WebGL glyph atlas pages within the shader sampler budget (#8672) 2026-07-14 14:48:21 -07:00
dev-app-update.yml
electron-builder.config.cjs Add version-matched skill guides to the CLI (#8624) 2026-07-14 02:17:55 -07:00
localization-audit.md Revert "Decouple feature copy from translated locale catalogs (#8488)" (#8500) 2026-07-12 23:43:07 -07:00
localization-coverage-allowlist.json
max-lines-baseline.txt Add max-lines ratchet CI gate to block new line-limit bypasses (#7608) 2026-07-06 17:12:27 -07:00
oxlint-react-doctor.json
oxlint-switch-exhaustiveness.json
packaged-runtime-node-modules.cjs Fix Windows bundled ConPTY packaging (#6968) 2026-06-30 18:05:38 -07:00
reliability-gates.jsonc fix(terminal): kill agent descendant processes on session teardown (STA-1800) (#8706) 2026-07-15 13:25:24 -07:00
tsconfig.cli.json fix(agent-hooks): drain stdin before hook script early exits so agents never hit EPIPE (#8430) 2026-07-13 00:26:22 -07:00
tsconfig.node.json fix(daemon): daemon cannot start in 1.4.129-rc.1 — electron require leaked into daemon-entry chunk (#7844) 2026-07-08 19:41:09 -04:00
tsconfig.relay.json
tsconfig.tc.cli.json
tsconfig.tc.web.json perf(main): make worktree path dedupe linear (#8177) 2026-07-10 20:52:24 -07:00
tsconfig.web.json
vitest.config.ts