Uh oh!
There was an error while loading. Please reload this page.
feat(sandbox): add canonical main process - #2726
Merged
Merged
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 |
This comment was marked as resolved.
This comment was marked as resolved.
drewforce-pushed
the
codex/2710-canonical-main-process
branch
from
August 13, 2026 19:58
f192d21 to
05983c0Compare
This comment was marked as resolved.
This comment was marked as resolved.
drewforce-pushed
the
codex/2710-canonical-main-process
branch
3 times, most recently
from
August 18, 2026 23:44
5040f5c to
3416111Compare9 tasks
drewforce-pushed
the
codex/2710-canonical-main-process
branch
from
August 19, 2026 00:28
3416111 to
d52f50eComparedrew
marked this pull request as ready for review
August 19, 2026 00:30
drew
requested review from
a team, derekwaynecarr, mrunalp and sjenning
as code ownersAugust 19, 2026 00:30
drewforce-pushed
the
codex/2710-canonical-main-process
branch
from
August 19, 2026 15:43
37dfc68 to
a209b62CompareUh oh!
There was an error while loading. Please reload this page.
rhuss
reviewed
Aug 19, 2026
Uh oh!
There was an error while loading. Please reload this page.
drewforce-pushed
the
codex/2710-canonical-main-process
branch
from
August 20, 2026 01:46
24b1d4a to
08120b5Comparedrewforce-pushed
the
codex/2710-canonical-main-process
branch
4 times, most recently
from
August 20, 2026 20:56
5560945 to
5133e9fCompare9 tasks
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>
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>
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>
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>
drewforce-pushed
the
codex/2710-canonical-main-process
branch
from
August 20, 2026 22:01
ef7f6e7 to
4a7a6a0Comparesjenning
approved these changes
Aug 20, 2026
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 20, 2026
russellb added a commit
to russellb/OpenShell
that referenced
this pull request
Aug 21, 2026
Main renamed the canonical-command transport from OPENSHELL_SANDBOX_COMMAND to the versioned OPENSHELL_MAIN_PROCESS_SPEC (NVIDIA#2726), which the supervisor decodes and launches. proxy-pod runs the sandbox image directly with no supervisor, so that env var is not only useless in the workload container but leaks the intended command into it. Strip MAIN_PROCESS_SPEC alongside the other supervisor-oriented variables, replacing the now-removed SANDBOX_COMMAND entry. Rebase adaptation: proxy-pod's workload command continues to flow through the containers.agent.command driver_config, since the canonical main process requires an in-sandbox supervisor this topology does not run. Signed-off-by: Russell Bryant <rbryant@redhat.com>
14 tasks
russellb added a commit
to russellb/OpenShell
that referenced
this pull request
Aug 24, 2026
Main renamed the canonical-command transport from OPENSHELL_SANDBOX_COMMAND to the versioned OPENSHELL_MAIN_PROCESS_SPEC (NVIDIA#2726), which the supervisor decodes and launches. proxy-pod runs the sandbox image directly with no supervisor, so that env var is not only useless in the workload container but leaks the intended command into it. Strip MAIN_PROCESS_SPEC alongside the other supervisor-oriented variables, replacing the now-removed SANDBOX_COMMAND entry. Rebase adaptation: proxy-pod's workload command continues to flow through the containers.agent.command driver_config, since the canonical main process requires an in-sandbox supervisor this topology does not run. Signed-off-by: Russell Bryant <rbryant@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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