Baseline reproduction: issue 15357

Revision: 1688f96568 (origin/main when fetched 2026-10-21).
Host: Linux x86_64 VM, canonical machine freestyle; environment display fs-27.
Start: env -u T3CODE_HOME node_modules/.bin/vp run dev --home-dir /home/ubuntu/wt/issue-15357/.t3
Web: localhost:6475; backend: localhost:14515. Real browser and real provider CLIs.
Prompt: Run Bash `sleep 120` in foreground, timeout 180000; no other tools/files/agents.

Attempt 1 (systemd user manager available): backend PID 13717, Claude PIDs 15367,16413.
Both Bash/sleep trees observed before SIGKILL. Codex comparison: app-server wrapper 17036, CLI 17063; no shell child recorded before crash, so comparison covers CLI lifetime, not completed Bash startup.
Killed backend PID 13717 only, after confirming /proc/13717/cwd was this worktree/apps/server.
At 11:14:22 UTC Claude survived, reparented to PID1453; Codex wrapper/CLI gone.
Restart by touching apps/server/src/bin.ts (node --watch, no content edit).
11:14:29.335 recovery terminalizedRuns=3 stoppedSessions=3.
11:14:29.813 Stopping agents left by a previous server, owned slice app-t3code-agents-1f8695b8127f.slice.
11:14:33 both old Claude PIDs and shell/sleep descendants absent. New Claude continuation sessions started.

Attempt 2 (without systemd user manager): env -u T3CODE_HOME -u XDG_RUNTIME_DIR T3CODE_DEV_SEED=0 node_modules/.bin/vp run dev --home-dir /home/ubuntu/wt/issue-15357/.t3
Backend PID20934; new Claude PIDs22811,23324 with bash/sleep 23799/23800 and 24082/24083.
SIGKILL only backend PID20934 after cwd verification, at 11:16:15 UTC.
Restart via touching apps/server/src/bin.ts. 11:16:22.603 recovery terminalizedRuns=2 stoppedSessions=4.
11:16:32 UTC both original Claude PIDs and both Bash/sleep trees still alive, PPID1453.
Read-only isolated sqlite snapshot showed original runs cancelled and new continuation runs running on both threads:
 d37e96ce-b289-40af-919a-7c5af55c9516 ordinal1 cancelled; ordinal2 running
 b14b2c88-6503-4fbd-bb43-ff503a63671f ordinal1 cancelled; ordinal2 running
No process adoption or orphan reap was observed. The fault is reproduced.
Cleanup: sent SIGTERM to recorded owned Claude PIDs22811,23324, stopped own dev-runner via retained terminal Ctrl-C. All recorded old PIDs gone when checked afterward.

Constraints: macOS, Windows process groups, desktop bundled server unverified. Systemd-present Linux path reaps; no-systemd Linux path leaks. Issue 20717 has a different trigger: idle session reaping while server remains alive, and leaked agent tool children; not a duplicate.
