Add piped child process support

This commit is contained in:
2026-10-09 01:17:58 +00:00
parent 41e58ef894
commit 618a7c9dd3
4 changed files with 267 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
# Computational Efficiency Implementation Plan
**Status:** Stages 1–2 complete; Stages 3–11 pending.
**Status:** Stages 1–3 complete; Stages 4–11 pending.
## Purpose And Baseline
@@ -200,6 +200,13 @@ credentials and mutable external services.
**Owner:** [internal/process](../../internal/process/process.go) and its tests.
**Completion:** Complete. `Run` and `StartPiped` share command construction.
Piped children expose caller-owned input and output pipes, cancellation, and a
single underlying wait/reap while preserving parent-context and exit errors.
Tests cover argument, directory, and environment propagation; an exchange that
responds before input EOF; synchronized cancellation; startup failure; and a
nonzero exit. The package inventory now describes the pipe lifecycle.
1. Factor existing command construction and command-error wrapping into small
private helpers shared by `Run` and a new internal `StartPiped` operation.
Preserve arguments, directory, environment overlay/removal, stderr routing,