mirror of
https://github.com/openai/codex.git
synced 2026-10-18 17:18:52 +00:00
## Why Linux pipe launches need session, parent-death signal, and descriptor setup. Move this work into a fresh, single-threaded executable image to avoid forking the app-server for child setup. ## What changed - Register an early setup helper and launch it through `posix_spawn` for Linux pipe processes. - Start the helper with an empty environment, then transfer the target environment over a control socket so loader settings cannot interfere with helper startup. - Await target execution asynchronously, propagate setup and execution errors, and kill incomplete launches on cancellation. - Preserve direct spawning as a fallback when the helper is unavailable or fails before target execution. ## Testing Add coverage for launch semantics, avoiding fork, loader environment isolation, early argument dispatch, closed standard descriptors, and fallback under bootstrap failure or descriptor pressure. Add an app-server regression test that reuses a process handle after an execution failure. GitOrigin-RevId: 079c673f0f22ebd531f8c57e5338095cc98acfdc
37 lines
969 B
TOML
37 lines
969 B
TOML
[package]
|
|
name = "codex-arg0"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "codex_arg0"
|
|
path = "src/lib.rs"
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
codex-apply-patch = { workspace = true }
|
|
codex-async-utils = { workspace = true }
|
|
codex-exec-server = { workspace = true }
|
|
codex-install-context = { workspace = true }
|
|
codex-linux-sandbox = { workspace = true }
|
|
codex-sandboxing = { workspace = true }
|
|
codex-shell-escalation = { workspace = true }
|
|
codex-utils-absolute-path = { workspace = true }
|
|
codex-utils-home-dir = { workspace = true }
|
|
codex-utils-pty = { workspace = true }
|
|
dotenvy = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
tokio = { workspace = true, features = ["rt-multi-thread"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
codex-windows-sandbox = { workspace = true }
|
|
pathdiff = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = { workspace = true }
|