Files
Neil 2f217b4d0d refactor(daemon): group endpoint, provider, session and transport owners (#38462)
* refactor(daemon): group transport, provider, endpoint, and terminal owners

* refactor(daemon): consolidate owner imports and preserve pinned baseline sources

* refactor(daemon): import termination budgets from their defining owner

* fix(ci): retain serve mode coverage for extracted orcad startup

* fix daemon build smoke to load concrete argument owner

* read daemon protocol facts from historical defining paths

* route protocol revision owners through compatibility checks
2026-11-05 01:54:51 -08:00
..

Daemon shutdown descendant regression

Run from the repository root with Docker running:

ORCA_BACKGROUND_LAUNCH=1 node config/scripts/run-daemon-shutdown-descendants-docker.mjs

The runner bundles the production TerminalHost and native PTY wrapper from the working tree. By default it runs the candidate only. Pass --baseline <git-ref> to add a red/green run; the baseline loads the five teardown modules from that ref without changing the checkout. Both run in Linux with node-pty 1.1.0.

A live PTY shell owns a child that called setsid and ignores SIGTERM. The fixture verifies those relationships, calls host.dispose(), and immediately exits its process. A separate supervisor checks that the child has stopped, an unrelated canary is still running, and shutdown finished within the daemon's five-second limit. The baseline must leave the child running; the candidate must stop it.

ORCA_DOCKER overrides the Docker executable. ORCA_DOCKER_PLATFORM overrides the Linux architecture. The test creates a temporary image and removes it afterward.

This proves cleanup of descendants still parented beneath a live shell at shutdown. It does not prove cleanup of processes that had already reparented before shutdown, or reproduce systemd-oomd policy decisions.