Second review round (ds-review-bot v4p/v5/v6): the exit cleanup claim that collectors unlink their spill files on dispose was wrong — completed spill files are retained (seal() only closes, discardSpill() is the only unlink), so the exit removal only ever applies to directories that never spilled. Reword the JSDoc, README, and Agent Note accordingly, drop the redundant readdirSync precheck (rmdirSync ENOTEMPTY is caught anyway), and recount the v8-ignore window. The spawn.spec default-spill test now records the default per-process directory it created and removes it in afterAll, so a completed spill file is never left behind by the unit suite.
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 — starts, observes, and terminates 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, whole-tree termination, 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 those process and terminal spawns on the host machine | registers on ctx.subprocess |
win32-process |
Owns the shared Win32 bindings for restricted process creation, stdio, Job assignment, 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.