`disposal contains a spawn-failure rejection that races teardown` asserted one winner of the race. A bootstrap that publishes its pre-exec failure rejects with that failure, and a teardown that stops the bootstrap first settles as the requested termination — the recorded failure only outranks the stop when it was published before the stop landed. Assert the contract instead: a rejection carries the failure, a stop carries SIGTERM, which only the Linux scope records because the win32 job owner and the fallback launcher both reject the start. The two terminal cases that drive a mocked PTY exit state why they pin `internals.platform`: under the host's native scope the mocked exit races the scope bootstrap and fails as `terminal scope exited before its bootstrap consumed the launch request`.
description, kind
| description | kind |
|---|---|
| The subprocess group map: the shared child-process service and its local host provider, for users and maintainers navigating the group. | package-group |
subprocess/ — subprocess capability family
English | 中文
Summary
Every child process and terminal session the harness runs — bash commands, language servers, persistent shells, and out-of-process subagent backends — is started, observed, and terminated through one shared service (ctx.subprocess), with a local provider running them on the host machine. It is not a standalone product feature: the consuming capability seams decide what each process means, and command semantics, deadlines, and model-facing presentation stay with them. The group provides executable lookup, bounded output capture with spill recovery, provider-managed process ranges with disclosed weaker fallbacks, and a scrubbed starting environment for every child.
Table of Contents
Packages
| Package | Role | ctx key |
|---|---|---|
subprocess |
Defines the child-process service: executable lookup, managed process spawns, and real terminal sessions | ctx.subprocess |
subprocess-local |
Runs host processes and terminals with native managed ranges where supported and explicit weaker fallbacks elsewhere | registers on ctx.subprocess |
win32-process |
Owns shared Win32 bindings for sandbox and ordinary process creation, stdio, Job assignment, polling, waits, and handle cleanup | library — no ctx key |
The service keeps process lifetime across consumer reloads; consumers own what a process means (a bash command, a language server) and every default that shapes one.
Related documentation
- Subprocess subsystem — spawn specs, output readers, outcomes, and the managed
DSH_*environment. - Subprocess seam Agent Note — why the process half of the bash executors became its own seam.
Dev Note
Working context for maintainers — click to expand
None.