feat(sandbox): add canonical main process - #2726
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
🌿 Preview your docs: https://nvidia-preview-pr-2726.docs.buildwithfern.com/openshell |
E2E Test AttestationLocal E2E smoke passed against the exact pushed commit. CI does not currently run this Docker E2E lane, so this comment serves as the verification record.
Test Summary1 passed; 0 failed; 0 ignored; finished in 0.72s Tests Executed
The broader canonical-process lifecycle and reconnect cases were also exercised during implementation; this attestation records the final-commit smoke lane specifically. |
f192d21 to
05983c0
Compare
Principal Review Findings AddressedRebased onto current
Regression tests cover backend-terminal-first ordering, stop/exit races, and initial PTY sizing. Verification
The full Go race suite reaches three unrelated gateway-list tests that inspect this host's real |
5040f5c to
3416111
Compare
Closes #2710 Persist and supervise one canonical workload per sandbox, attach sandbox connect to its retained session, and make every unexpected main-process exit terminal. Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
3416111 to
d52f50e
Compare
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Summary
Add one canonical main process to every sandbox and make it the process observed by
sandbox connect. The supervisor retains and multiplexes its session across reconnects, whilesandbox execremains an independent process path. Any unexpected canonical-process exit, including exit code 0, is persisted on the sandbox and transitions it toError; intentional stop/start teardown is exempt.Related Issue
Closes #2710
Changes
commandandttydirectly to the public and compute-driver sandbox specs, with sandbox-owned main instance and exit status./bin/bash -lTTY main process.sandbox connectthrough the retained main session while preserving independent exec, SFTP, editor, and forwarding behavior.sandbox createargv the persisted main process, attach interactively by default, and add--detach.Testing
mise run pre-commitmise run testwith an isolated system-gateway directory--no-keepChecklist