feat(zygote): add accelerated process launcher - #772
Martin Taillefer (geeknoid) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical and moderate findings affect child termination, protocol validation, descriptor cleanup, and lifecycle handling.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Adds accelerated Linux zygote launching, cross-platform process creation, runtime modes, sandboxing, protocol support, tests, documentation, and benchmarks.
Changes:
- Introduces
zygote_controlandzygote_rt. - Adds transparent and prepared launch flows.
- Adds fixtures, benchmarks, lifecycle handling, and workspace integration.
| File | Summary |
|---|---|
README.md |
Documents workspace crates. |
crates/zygote_rt/src/zygote.proto |
Defines the protocol schema. |
crates/zygote_rt/src/prepared.rs |
Implements prepared runtime state. |
crates/zygote_rt/src/lib.rs |
Exposes runtime APIs. |
crates/zygote_rt/src/build.rs |
Configures runtime builds. |
crates/zygote_rt/README.md |
Documents runtime usage. |
crates/zygote_rt/logo.png |
Adds branding asset. |
crates/zygote_rt/favicon.ico |
Adds documentation favicon. |
crates/zygote_rt/CHANGELOG.md |
Records runtime changes. |
crates/zygote_rt/Cargo.toml |
Defines the runtime crate. |
crates/zygote_control/tests/protocol.rs |
Tests protocol behavior. |
crates/zygote_control/tests/launch_semantics.rs |
Tests launch semantics. |
crates/zygote_control/tests/fixtures/targets/src/lib.rs |
Implements test fixture behavior. |
crates/zygote_control/tests/fixtures/targets/src/bin/transparent.rs |
Defines transparent fixture entry. |
crates/zygote_control/tests/fixtures/targets/src/bin/prepared.rs |
Defines prepared fixture entry. |
crates/zygote_control/tests/fixtures/targets/examples/controller.rs |
Exercises controller usage. |
crates/zygote_control/tests/fixtures/targets/Cargo.toml |
Defines fixture package metadata. |
crates/zygote_control/tests/fixtures/targets/build.rs |
Configures fixture linking. |
crates/zygote_control/src/zygote.rs |
Implements launcher lifecycle. |
crates/zygote_control/src/unix.rs |
Provides Unix process support. |
crates/zygote_control/src/stdio.rs |
Defines standard-stream configuration. |
crates/zygote_control/src/sandbox.rs |
Defines sandbox controls. |
crates/zygote_control/src/lib.rs |
Exposes controller APIs. |
crates/zygote_control/src/command.rs |
Implements launch configuration. |
crates/zygote_control/src/child.rs |
Implements child handles and output capture. |
crates/zygote_control/README.md |
Documents controller usage. |
crates/zygote_control/logo.png |
Adds branding asset. |
crates/zygote_control/favicon.ico |
Adds documentation favicon. |
crates/zygote_control/examples/controller.rs |
Provides controller example. |
crates/zygote_control/docs/TODO.md |
Tracks future work. |
crates/zygote_control/CHANGELOG.md |
Records controller changes. |
crates/zygote_control/Cargo.toml |
Defines the controller crate. |
crates/zygote_benchmarks/src/bin/transparent.rs |
Defines transparent benchmark fixture. |
crates/zygote_benchmarks/src/bin/transparent_signals_ignored.rs |
Defines ignored-signal fixture. |
crates/zygote_benchmarks/src/bin/transparent_signals_custom.rs |
Defines custom-signal fixture. |
crates/zygote_benchmarks/src/bin/transparent_default.rs |
Defines default-signal fixture. |
crates/zygote_benchmarks/src/bin/transparent_close_fallback_512.rs |
Defines descriptor fallback fixture. |
crates/zygote_benchmarks/src/bin/transparent_close_fallback_4096.rs |
Defines large descriptor fallback fixture. |
crates/zygote_benchmarks/src/bin/startup.rs |
Configures startup benchmarks. |
crates/zygote_benchmarks/src/bin/prepared.rs |
Defines prepared benchmark fixture. |
crates/zygote_benchmarks/src/bin/prepared_64m.rs |
Defines 64 MiB fixture. |
crates/zygote_benchmarks/src/bin/prepared_1m.rs |
Defines 1 MiB fixture. |
crates/zygote_benchmarks/src/bin/prepared_0.rs |
Defines empty-state fixture. |
crates/zygote_benchmarks/src/bin/fixture.rs |
Implements benchmark workload. |
crates/zygote_benchmarks/Cargo.toml |
Defines benchmark package metadata. |
crates/zygote_benchmarks/build.rs |
Configures benchmark builds. |
crates/zygote_benchmarks/benches/zygote_benchmarks_specialization.rs |
Benchmarks specialization. |
crates/zygote_benchmarks/benches/zygote_benchmarks_scaling.rs |
Benchmarks scaling. |
crates/zygote_benchmarks/benches/zygote_benchmarks_output.rs |
Benchmarks output capture. |
crates/zygote_benchmarks/benches/zygote_benchmarks_launch.rs |
Benchmarks launch performance. |
crates/zygote_benchmarks/benches/support/mod.rs |
Provides benchmark utilities. |
CHANGELOG.md |
Registers crate changes. |
Cargo.toml |
Updates workspace configuration. |
Cargo.lock |
Locks dependencies. |
.spelling |
Adds project terminology. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
c62f4eb to
ff18816
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved packaging, lifecycle, and protocol-validation findings remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (2)
Resolved since last review (2)
ff18816 to
34a2653
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
One critical memory-safety issue and five moderate correctness or lifecycle issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
Resolved since last review (2)
34a2653 to
a4615d3
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical and moderate correctness, security, and portability issues remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
Resolved since last review (1)
a4615d3 to
1b97067
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical and moderate issues affect process cleanup, descriptor safety, fail-closed validation, and FFI correctness.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 6
Open (8)
Close received descriptors on ancillary parsing errors · New Handle readdir errors during proc enumeration · New Terminate and reap child after send_body failure · New Reject null argument_vector for zero-length arguments · New Validate SCM_RIGHTS payload bounds before descriptor access Validate ancillary data before reading SCM_RIGHTS descriptors Add coverage exclusion annotation to Windows tests · New Add coverage exclusion annotation to test module · New
1b97067 to
8fbf7af
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved runtime safety and validation issues remain, so approval is blocked.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 6
Open (8)
Propagate collector read errors and terminate the child · New Reject truncated datagrams before slicing the packet buffer · New Reject null argument_vector for zero-length arguments Terminate and reap child after send_body failure Handle readdir errors during proc enumeration Close received descriptors on ancillary parsing errors Add coverage exclusion annotation to test module Add coverage exclusion annotation to Windows tests
Resolved since last review (2)
8fbf7af to
4a3b201
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical prepared-bootstrap behavior and additional runtime, benchmark, and test-coverage findings block approval.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 3
Open (4)
Resolved since last review (6)
Reject null argument_vector for zero-length arguments Terminate and reap child after send_body failure Handle readdir errors during proc enumeration Close received descriptors on ancillary parsing errors Add coverage exclusion annotation to test module Add coverage exclusion annotation to Windows tests
4a3b201 to
e45f0ef
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical linker integration and moderate correctness/test findings remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
Resolved since last review (1)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical descriptor-leak and protocol field-presence issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
Resolved since last review (1)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved sandbox-probing and prepared-launch error-reporting issues remain, along with test and documentation fixes.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Six unresolved moderate findings affect benchmark validity, backend consistency, fixture assertions, sandbox coverage, and prepared-startup diagnostics.
Review effort: Lite
Findings: None
Resolved since last review (1)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical loader-environment behavior and cross-platform sandbox/validation issues remain unresolved; seccomp acknowledgement semantics also need clarification.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
Martin Taillefer (geeknoid)
left a comment
There was a problem hiding this comment.
Static-only five-pass review completed. I found one Windows correctness defect and four test/measurement gaps; details are in the inline comments.
Claims I specifically attacked and did not break: bounded/canonical protobuf plus SCM_RIGHTS validation; specialization acknowledgement before Started; pidfd-backed signalling and failure cleanup; fail-closed privilege/seccomp/Landlock/cgroup policy application; worker/shutdown lock ordering; prepared-mode panic/FFI containment; and the raw-pointer/arena/ABI invariants across the unsafe runtime. I found no confirmed UB or exploitability chain meeting the security bar.
I assessed all 820 taxonomy classes (150 security, 162 correctness, 182 testing, 183 performance, 143 conformance), read and deduplicated 158 prior inline comments, and did not repeat optimization work already recorded in the PR’s TODO. Generated READMEs were excluded per repository policy.
Nothing was executed: no project code, tests, benchmarks, profiles, Miri, coverage, mutation, fuzzing, or live probes.
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical and moderate issues affect memory safety, child lifecycle handling, worker capacity, configuration validity, and fail-closed sandboxing.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical Windows sandbox and handle-inheritance issues, plus two moderate correctness issues, remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical CI runner exposure and worker-bound issues remain, along with additional moderate correctness and packaging issues.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
Resolved since last review (2)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical runtime packet handling and moderate arena-clearing, worker-health/counting, and benchmark-platform issues require fixes.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical sandbox validation and reusable-memory wiping issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (3)
Resolved since last review (1)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 16921781-b55f-423e-9ac1-851b2cba7ac2
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved moderate issues affect benchmark failure handling, launch accounting, Linux shutdown recovery, sandbox capability reporting, and closed-stdio handling.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
Resolved since last review (1)
| #[cfg(any(target_os = "linux", windows))] | ||
| { | ||
| Ok(()) |



Summary
zygote_control, astd::process-style controller with accelerated Linux launches and native Windows/macOS process creationzygote_rttarget runtime with transparent and prepared entry modes plus a checked-in Protobuf protocolzygote_benchmarks, integration fixtures, user documentation, design notes, and the remaining forward-looking backlogValidation
cargo check, Clippy, and rustdoc