Skip to content

feat(cli): support multiple --upload flags on sandbox create (#1635)#1645

Open
feloy wants to merge 1 commit into
NVIDIA:mainfrom
feloy:multi-upload
Open

feat(cli): support multiple --upload flags on sandbox create (#1635)#1645
feloy wants to merge 1 commit into
NVIDIA:mainfrom
feloy:multi-upload

Conversation

@feloy
Copy link
Copy Markdown

@feloy feloy commented Jun 1, 2026

Closes #1635

Summary

Changes --upload on sandbox create from a single Option<String> to a repeatable Vec<String>, so users can seed a sandbox with multiple paths in one command without needing a post-creation sandbox upload step.

Related Issue

Closes #1635

Changes

  • crates/openshell-cli/src/main.rs: upload field changed to Vec<String>; all local paths are validated upfront before the sandbox is created; three new CLI-parse tests added
  • crates/openshell-cli/src/run.rs: sandbox_create now accepts &[(String, Option<String>, bool)] and iterates over each spec sequentially; progress output shows [1/N] counters when multiple uploads are present
  • crates/openshell-cli/tests/sandbox_create_lifecycle_integration.rs: updated 10 call sites from None to &[] to match the new signature
  • docs/sandboxes/manage-sandboxes.mdx: updated the --upload note with a multi-upload example
  • e2e/rust/src/harness/sandbox.rs: added create_with_uploads helper accepting multiple (local, dest) pairs; create_with_upload delegates to it
  • e2e/rust/tests/upload_create.rs: added create_with_multiple_uploads test that uploads two directories in one sandbox create call and asserts both appear in output

Testing

  • mise run pre-commit passes
  • Unit tests added/updated
  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@feloy feloy requested review from a team, derekwaynecarr, maxamillion and mrunalp as code owners June 1, 2026 08:57
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Jun 1, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

All contributors have signed the DCO ✍️ ✅
Posted by the DCO Assistant Lite bot.

@feloy
Copy link
Copy Markdown
Author

feloy commented Jun 1, 2026

I have read the DCO document and I hereby sign the DCO.

@feloy
Copy link
Copy Markdown
Author

feloy commented Jun 1, 2026

recheck

@johntmyers johntmyers added gator:blocked Gator is blocked by process or repository gates test:e2e Requires end-to-end coverage labels Jun 4, 2026
@johntmyers
Copy link
Copy Markdown
Collaborator

gator-agent

PR Review Status

Validation: this PR is project-valid because it implements the scoped CLI UX improvement requested in #1635 and stays within the sandbox create upload path.
Head SHA: d92736687e59ffe2f3a540d2a1b21c5536c69434

Review findings:

  • No blocking code-review findings remain.

Docs: direct CLI UX change is covered by the Fern docs update in docs/sandboxes/manage-sandboxes.mdx; no docs/index.yml navigation change is needed because this updates an existing page.

E2E: test:e2e is required and applied because this changes sandbox create upload behavior and adds an e2e create-with-multiple-uploads path.

Next state: gator:blocked

Blocked

Gator is blocked by the current branch state: GitHub reports mergeable_state: dirty, and the PR branch is behind current main.

Next action: @feloy, please rebase or otherwise update the PR branch to resolve the dirty merge state. I verified maintainer authority for the current gator user, so once the current head SHA is rebased, mergeable, and ready for tests, gator is cleared to post /ok to test <sha> and any required test-trigger comments for that new head.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 4, 2026

Label test:e2e applied, but pull-request/1645 is at {"messa while the PR head is d927366. A maintainer needs to comment /ok to test d92736687e59ffe2f3a540d2a1b21c5536c69434 to refresh the mirror. Once the mirror catches up, re-run Branch E2E Checks from the Actions tab.

…1635)

Closes NVIDIA#1635

Signed-off-by: Philippe Martin <phmartin@redhat.com>
@johntmyers
Copy link
Copy Markdown
Collaborator

gator-agent

/ok to test 5724eba

@johntmyers johntmyers added gator:watch-pipeline Gator is monitoring PR CI/CD status and removed gator:blocked Gator is blocked by process or repository gates labels Jun 4, 2026
@johntmyers
Copy link
Copy Markdown
Collaborator

gator-agent

PR Review Status

Validation: still project-valid after the rebase; the current head implements the scoped repeated --upload CLI change for #1635.
Head SHA: 5724eba6d2d240ad533a48396334fd7b1ee4e17d

Review findings:

  • No blocking code-review findings remain after re-checking the rebased diff.

Docs: Fern docs remain updated in docs/sandboxes/manage-sandboxes.mdx; no navigation update is needed for this existing page.

E2E: test:e2e remains required and applied. Posted /ok to test 5724eba6d2d240ad533a48396334fd7b1ee4e17d for the current rebased head under verified maintainer authority.

Next state: gator:watch-pipeline

@johntmyers
Copy link
Copy Markdown
Collaborator

/ok to test 5724eba

gator-agent

Exact slash command reposted because the marked command comment did not update the mirror-gated statuses.

@johntmyers
Copy link
Copy Markdown
Collaborator

/ok to test 5724eba

@johntmyers johntmyers added gator:approval-needed Gator completed review; maintainer approval needed and removed gator:watch-pipeline Gator is monitoring PR CI/CD status labels Jun 4, 2026
@johntmyers
Copy link
Copy Markdown
Collaborator

gator-agent

Maintainer Approval Needed

Gator validation and PR monitoring are complete.

Validation: project-valid scoped CLI UX improvement for #1635.
Review: no blocking code-review findings remain after re-checking the rebased head 5724eba6d2d240ad533a48396334fd7b1ee4e17d.
Docs: Fern docs updated in docs/sandboxes/manage-sandboxes.mdx; no navigation update needed for the existing page.
Checks: Branch Checks passed; Helm Lint passed.
E2E: test:e2e applied; Core E2E passed. test:e2e-gpu not required.

Human maintainer approval or merge decision is now required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gator:approval-needed Gator completed review; maintainer approval needed test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: support multiple --upload flags on sandbox create

2 participants