DevBerth v0.1.9
What changed
#33 — Fix parallel project startup pipe isolation
Release unit
This roll-up integrates the complete parallel-start fix as one main update and one source release.
Incorporated review shards
- #32 — implementation and regression coverage for command-capture and managed-log descriptor isolation
- #33 — durable engineering rules, architecture rationale, implementation evidence, and composed validation
What changed
- mark trusted-command capture pipes close-on-exec before subprocess launch
- mark managed-service log pipes close-on-exec before concurrent managed-service launch
- assert descriptor isolation and retained command-output capture in
ProcessGroupTests - document close-on-exec as a required process boundary in
AGENTS.md, architecture, and implementation state
Why
A long-running service launched in parallel could inherit a sibling fingerprint probe’s pipe writer. The probe then waited indefinitely for EOF, leaving project startup at a non-terminal count even though the affected listener was active.
Impact
Dependency-layer siblings now inherit only their intended standard streams. Project startup can reach its normal readiness success or failure boundary instead of hanging inside process fingerprint capture. Lifecycle authority, restart trust, and readiness requirements are unchanged.
Observed validation
- focused
ProcessGroupTests: 9 passed, 0 failed - full warnings-as-errors macOS scheme: 218 passed, 0 failed, 0 skipped, 0 expected failures in about 180 seconds
- both shard CI runs passed before roll-up
- Release build installed at
/Applications/DevBerth.app; strict signature verification passed - exact installed UI showed Pharmacy Project at 3 of 3 active with no in-flight startup overlay; existing runtimes remained honestly observed after app restart
Source release
The repository release workflow will publish exactly one immutable source tag for this roll-up merge. This does not claim a signed, notarized, or auto-updating distributable.
Release provenance
- Merge commit:
8a414b4f4d11abf1919b86e1fcfbfa69d035cb3e - Pull request: #33
- Compare v0.1.8...v0.1.9
This is a source-project release. It does not include a signed or notarized app binary.