* 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 |
||
|---|---|---|
| .. | ||
| plans | ||
| 2026-06-27-orca-mobile-manual-network-address-design.md | ||
| README.md | ||
| agent-hook-stdin-lifecycle.md | ||
| agent-session-resume-cli-evidence.md | ||
| direct-url-or-file-entry.md | ||
| feature-discovery-interaction-tracking.md | ||
| feature-education-retention-analytics.md | ||
| feature-education-state.md | ||
| git-compatibility.md | ||
| headless-linux-server.md | ||
| keyboard-layout-shortcut-dispatch.md | ||
| new-user-parallel-work-telemetry.md | ||
| opencode-commit-message-stdin.md | ||
| project-ordering-mode.md | ||
| reliability-gates-implementation-plan.md | ||
| reliability-pain-points-2026-06-30.md | ||
| ssh-gssapi-kerberos.md | ||
| ssh-typing-latency-under-relay-load.md | ||
| telemetry-availability.md | ||
| terminal-cold-park-reveal-cost.md | ||
| terminal-hidden-view-parking.md | ||
| terminal-model-view-contract.md | ||
| terminal-query-authority.md | ||
| terminal-session-lifecycle.md | ||
| terminal-side-effect-authority.md | ||
| terminal-switch-typing-lag-investigation.md | ||
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
- Stable reference material.
- Public-facing docs that are not part of the root README.
- Docs that other checked-in files link to.
- Telemetry availability notes that dashboard authors need after the original design or implementation branch is gone. See Telemetry Availability.
- Headless Linux server setup for remote
orca servehosts. See Headless Linux Server. - Feature education state, interaction tracking, and retention analytics notes that define how contextual tours are persisted and measured. See Feature Education State, Feature Discovery Interaction Tracking, and Feature Education Retention Analytics.
- New-user parallel work telemetry notes that define how the parallel-work tour and setup guide should be measured against retention. See New User Parallel Work Telemetry.
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.