orca/docs/reference
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
..
plans fix: reconcile SSH repo rows after host re-add (#8201) 2026-07-11 03:20:55 -07:00
2026-06-27-orca-mobile-manual-network-address-design.md feat(mobile-pairing): combobox with manual network address entry (#6501) 2026-06-29 00:32:36 -07:00
README.md Document headless Linux server setup (#6802) 2026-06-30 00:04:47 -07:00
agent-hook-stdin-lifecycle.md fix(agent-hooks): make Windows cmd hook launcher directly spawnable (#8430 regression) (#8737) 2026-07-14 05:41:19 -07:00
agent-session-resume-cli-evidence.md
direct-url-or-file-entry.md
feature-discovery-interaction-tracking.md Add Floating Workspace contextual tour (#5062) 2026-06-10 14:12:07 -07:00
feature-education-retention-analytics.md
feature-education-state.md
git-compatibility.md fix(git): cache unsupported capabilities per host (#8109) 2026-07-10 18:19:36 -07:00
headless-linux-server.md Document headless Linux server setup (#6802) 2026-06-30 00:04:47 -07:00
keyboard-layout-shortcut-dispatch.md
new-user-parallel-work-telemetry.md Remove split terminal from onboarding checklist (#6340) 2026-06-25 01:49:56 -07:00
opencode-commit-message-stdin.md
project-ordering-mode.md
reliability-gates-implementation-plan.md Harden reliability gate policy and register merged terminal regression tests as gates (#7295) 2026-07-03 19:58:07 -07:00
reliability-pain-points-2026-06-30.md Add reliability gate manifest (#7001) 2026-07-03 19:26:00 -07:00
ssh-gssapi-kerberos.md feat(ssh): support Kerberos/GSSAPI hosts via the system OpenSSH transport (#7507) 2026-07-15 01:58:46 -07:00
ssh-typing-latency-under-relay-load.md perf(ssh): bound relay bulk-stream backlog so PTY echo is not head-of-line blocked (#7601) 2026-07-06 17:10:04 -07:00
telemetry-availability.md Follow up Windows terminal onboarding polish (#5530) 2026-06-16 14:59:35 -07:00
terminal-cold-park-reveal-cost.md perf(terminal): tune cold-park keep-warm so common rotation never remounts (#8262) 2026-07-12 11:48:17 -07:00
terminal-hidden-view-parking.md perf(terminal): tune cold-park keep-warm so common rotation never remounts (#8262) 2026-07-12 11:48:17 -07:00
terminal-model-view-contract.md Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
terminal-query-authority.md Fix mobile terminal query reply authority (#8227) 2026-07-11 02:13:15 -07:00
terminal-session-lifecycle.md fix(terminal): kill agent descendant processes on session teardown (STA-1800) (#8706) 2026-07-15 13:25:24 -07:00
terminal-side-effect-authority.md Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
terminal-switch-typing-lag-investigation.md Fix terminal switch input lag from daemon session listing (#7002) 2026-07-01 13:19:50 -07:00

README.md

Durable Docs

Keep this folder for versioned reference docs that are meant to survive past a single design or implementation pass.

What Goes Here

What Stays Out

Ephemeral design notes, implementation sketches, and planning docs should stay as local Markdown files under docs/. They are ignored by default so they do not get checked in accidentally.