feat(sandbox): honor OCI image working directories - #2530
feat(sandbox): honor OCI image working directories#2530matthewgrossman wants to merge 7 commits into
Conversation
2c9c7b7 to
6838984
Compare
|
🌿 Preview your docs: https://nvidia-preview-pr-2530.docs.buildwithfern.com/openshell |
BlockedGator is blocked because PR #2530 currently has merge conflicts ( Next action: @matthewgrossman, please rebase or merge the base branch and resolve the conflicts, then push an updated head SHA so gator can run the independent review. |
6838984 to
493abe0
Compare
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: PR #2530 implements linked issue #2526, which is already marked state:agent-ready / state:pr-opened, and the current head is open, ready for review, and no longer conflict-blocked.
Head SHA: 493abe06869d41a5b161a1a97abc21c0c3ce6436
Review findings:
- Warning: Docker/Podman pass the resolved workspace to the supervisor, but the create specs still appear to inherit the image process cwd. For hand-crafted OCI images where
Config.WorkingDiris missing on disk or is not a directory, the container runtime may fail before the supervisor can run the intended workspace validation/preparation path. Please consider starting the supervisor from a known-safe cwd such as/while passing--workdir <resolved-root>separately, and add coverage for missing/non-directoryWorkingDir. - See the inline warning about accepting whitespace/control-character OCI
WorkingDirvalues before SSH discovery and shell-text flows consume the path.
Docs: Fern docs and relevant agent skill guidance were updated; no docs navigation change appears required because no new page was added.
Next state: gator:in-review
c02986a to
d14d6c9
Compare
6d53441 to
254364a
Compare
d14d6c9 to
41b25a7
Compare
|
Label |
PR Review StatusValidation: PR #2530 implements linked issue #2526, which is already marked Review findings:
Docs: Fern docs and relevant agent skill guidance were updated; no docs navigation change appears required because no new page was added. E2E: Applied Checks: Required checks are not green yet. Next state: |
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: PR #2530 implements maintainer-authored, agent-ready issue #2526 and remains open, non-draft, mergeable, and project-valid.
Head SHA: 6bafbb649530f60871f7b4a545a6c56bfde5ead0
Review findings:
- One warning remains about guaranteeing that an existing OCI workspace is writable after ownership preparation; see the inline comment.
- The prior whitespace/control-character OCI
WorkingDirfinding remains addressed and was not re-raised.
Docs: Fern docs and relevant agent skill guidance are updated; no navigation change is needed because no page was added.
E2E: test:e2e remains appropriate for the sandbox lifecycle, policy, Docker/Podman, and SSH workspace changes.
Next state: gator:in-review
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: PR #2530 implements maintainer-authored, agent-ready issue #2526 and remains open, non-draft, mergeable, and project-valid.
Head SHA: ad58a35413db4717d8d487b782d2f45465d9bd18
Review findings:
- One warning remains about guaranteeing that an existing OCI workspace is writable after ownership preparation; see the inline comment.
- The new head addresses the SSH connection-limit path, but it does not change the workspace ownership/preparation code behind the unresolved warning.
- The prior whitespace/control-character OCI
WorkingDirfinding remains addressed and was not re-raised.
Docs: Fern docs and relevant agent skill guidance are updated; no navigation change is needed because no page was added.
E2E: test:e2e remains appropriate for the sandbox lifecycle, policy, Docker/Podman, and SSH workspace changes.
Next state: gator:in-review
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: PR #2530 implements agent-ready issue #2526 and remains open, non-draft, mergeable, and project-valid.
Head SHA: ccba5bb168afa4d7b554bb1b42b121871c745fd0
Thanks @matthewgrossman. I checked your latest replies against the current diff: the whitespace/control-character validation and existing 0555 workspace permission findings are resolved and were not re-raised.
Review findings:
- Three distinct warnings remain; see the inline comments for the Docker pre-inspection mount check, inaccessible workspace ancestors, and incomplete protection of system paths selected through OCI
WorkingDir.
Docs: Fern docs and the relevant generate-sandbox-policy / openshell-cli skill guidance are updated; no navigation change is needed because no page was added or moved.
E2E: test:e2e remains appropriate for the sandbox lifecycle, policy, Docker/Podman, and SSH workspace changes.
Next state: gator:in-review
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: PR #2530 implements agent-ready issue #2526 and remains open, non-draft, mergeable, and project-valid.
Head SHA: babd6ba679067f40eaacbf5bfad4a65283e4acaa
Thanks @matthewgrossman. I checked your current-head replies against the diff: the Docker placeholder-metadata mount collision, inaccessible 0700 ancestor case, and protected-system-tree coverage are addressed and were not re-raised.
Review findings:
- One distinct warning remains for workspace ancestors traversable only through a named user's supplementary groups; see the inline comment.
- One docs wording correction is suggested; see the inline comment.
Docs: Relevant Fern docs and agent skill guidance are updated, and no navigation change is needed because no page was added or moved. The baseline-filesystem wording should be qualified as noted inline.
E2E: test:e2e remains appropriate for the sandbox lifecycle, policy, Docker/Podman, SSH, transfer, and editor-workspace changes.
Next state: gator:in-review
Closes #2526 Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
babd6ba to
9873756
Compare
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
9873756 to
7cd2bbc
Compare
PR Review StatusValidation: PR #2530 implements agent-ready issue #2526 and remains open, non-draft, mergeable, and project-valid. Thanks @matthewgrossman. I checked your current-head replies and changes for the supplementary-group-only workspace ancestor and the Review findings:
Docs: Relevant Fern docs and agent skill guidance are updated; no navigation change is needed because no page was added or moved. E2E: Checks: Next state: |
Summary
Docker and Podman now honor a usable OCI
Config.WorkingDiras the sandbox workspace, with an OpenShell-created/sandboxfallback for empty or root declarations. The resolved workspace is used consistently by drivers, the supervisor, filesystem policy, SSH transfers, and editor launch while Kubernetes/OpenShift and VM retain/sandbox.This is a stacked PR on top of #2509.
Related Issue
Closes #2526
Changes
WorkingDirwithUserfrom the same immutable Docker/Podman image and pass the resolved root through the existing supervisor workdir argumentfilesystem.include_workdirinstead of automatically granting literal/sandbox/sandboxbehavior for Kubernetes/OpenShift and VMTesting
mise run pre-commitpassesmise run testpassescustom_imageE2E passes (OCI WorkingDir, fallback, direct/SSH, transfers)driver_config_volumeE2E passes (nested volume ownership)Checklist