Skip to content

fix(sandbox): remove the incomplete snapshot when creation fails - #8211

Merged
jyaunches merged 9 commits into
mainfrom
fix/snapshot-create-failed-cleanup
Aug 5, 2026
Merged

fix(sandbox): remove the incomplete snapshot when creation fails#8211
jyaunches merged 9 commits into
mainfrom
fix/snapshot-create-failed-cleanup

Conversation

@laitingsheng

@laitingsheng laitingsheng commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

A snapshot create that could not capture a state directory or file reported the failed items and exited nonzero, but left the incomplete snapshot on disk and listed by snapshot list as a normal versioned entry, so a later restore could select a capture that never completed. Writing the manifest is what publishes a snapshot, and it ran before the failed items were weighed. The command now removes the incomplete snapshot, and reports the path that is still listed when the removal itself fails.

Related Issue

Fixes #8201.

Changes

  • Remove the incomplete snapshot in the snapshot create failure path in src/lib/actions/sandbox/snapshot.ts, covering failed directories and failed state files. When removal itself fails, the command names the path that is still listed instead of claiming the snapshot was removed.
  • Add removeIncompleteSnapshot to src/lib/state/sandbox.ts, next to the credential-sanitization and publication-validation paths that already remove an unpublished backup. It reports whether the snapshot is off disk rather than throwing, so the command can report an unremovable snapshot and still exit on the original failure.
  • Document both outcomes in docs/reference/commands.mdx and docs/manage-sandboxes/backup-restore.mdx: a removed snapshot is no longer listed or restorable, and a snapshot that could not be removed is named for manual cleanup before the next restore.
  • Move the existing failed-items output test into the new focused test file to keep src/lib/actions/sandbox/snapshot.test.ts within the test-file size budget.

backupSandboxState is unchanged. rebuild --force deliberately keeps a partial manifest so it can restore what was salvageable, and backup-all shares that source, so the cleanup belongs at the snapshot create call site rather than at the capture.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: PASS — fix(sandbox): remove the incomplete snapshot when creation fails #8211 (comment)
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: docs/manage-sandboxes/backup-restore.mdx and docs/reference/commands.mdx now state that a cleanup failure leaves the incomplete capture selectable and requires manual directory removal before restore. npm run docs:sync-agent-variants passed; npm run docs passed with 0 errors and 2 existing warnings; route and diff checks passed.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: contributor evidence: focused CLI tests 22 passed, snapshot integration tests 53 passed, sandbox action tests 2447 passed, CLI type-check and repository checks passed. Maintainer verification on the current revision: focused cleanup tests 9 passed, snapshot integration tests 53 passed, CLI type-check passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Tinson Lai tinsonl@nvidia.com

Summary by CodeRabbit

  • Bug Fixes

    • Failed snapshot creations now remove incomplete snapshots automatically.
    • Failed captures report affected items and exit with an error.
    • If cleanup fails, the retained snapshot path and required manual removal steps are shown.
    • Incomplete snapshots are excluded from listings and restoration workflows.
  • Documentation

    • Updated snapshot backup and command reference documentation with the new failure-handling behavior.

Writing the manifest publishes a snapshot, and it ran before the failed
directories and state files were weighed, so a failed create left a listable
and restorable capture behind. Pass --keep-failed or set
NEMOCLAW_KEEP_FAILED_SNAPSHOT=1 to keep it for diagnosis. Rebuild and
backup-all keep their partial-manifest salvage.

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Snapshot creation now removes incomplete published snapshots after failed directory or state-file captures. Cleanup verifies that the snapshot directory is absent and reports the path when removal fails. Tests and documentation cover cleanup, listing, lookup, versioning, and error behavior.

Changes

Failed snapshot cleanup

Layer / File(s) Summary
Incomplete snapshot removal
src/lib/state/sandbox.ts, src/lib/state/sandbox-incomplete-snapshot-removal.test.ts, test/snapshot.test.ts
Added IncompleteSnapshotRemoval and removeIncompleteSnapshot. The helper catches removal errors, verifies deletion, and supports idempotent cleanup. Tests cover listings, lookup, filesystem removal, and version recomputation.
Snapshot failure handling and documentation
src/lib/actions/sandbox/snapshot.ts, src/lib/actions/sandbox/snapshot-failed-create-cleanup.test.ts, src/lib/actions/sandbox/snapshot.test.ts, docs/manage-sandboxes/backup-restore.mdx, docs/reference/commands.mdx
Snapshot creation cleans up published incomplete snapshots after failed captures. It reports cleanup failures and manual-removal instructions. Tests cover failed and successful captures. Documentation describes the resulting behavior.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SnapshotCommand
  participant CleanupHelper
  participant SnapshotDirectory
  SnapshotCommand->>CleanupHelper: Remove published incomplete snapshot
  CleanupHelper->>SnapshotDirectory: Delete and verify directory
  SnapshotDirectory-->>CleanupHelper: Removal result
  CleanupHelper-->>SnapshotCommand: Cleanup status or recovery path
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#7880: Both changes modify sandbox snapshot or restore handling in src/lib/state/sandbox.ts.

Suggested reviewers: cv

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes remove failed snapshots, prevent listing and restoration, report cleanup failures, and add tests and documentation for issue #8201.
Out of Scope Changes check ✅ Passed The implementation, tests, and documentation directly support issue #8201 and the stated snapshot cleanup objectives.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removing incomplete snapshots when creation fails.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/snapshot-create-failed-cleanup

Comment @coderabbitai help to get the list of available commands.

@github-code-quality

github-code-quality Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 5692bf9 in the fix/snapshot-create-... branch remains at 96%, unchanged from commit 28fdd78 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 5692bf9 in the fix/snapshot-create-... branch remains at 81%, unchanged from commit 28fdd78 in the main branch.

Show a code coverage summary of the most impacted files.
File main 28fdd78 fix/snapshot-create-... 5692bf9 +/-
src/lib/shields/index.ts 74% 73% -1%
src/lib/actions...box/snapshot.ts 83% 83% 0%
src/lib/state/sandbox.ts 85% 85% 0%
src/lib/actions...ents-command.ts 67% 67% 0%
src/lib/domain/...ycle/options.ts 85% 85% 0%
src/lib/inferen...-pin-runtime.ts 90% 90% 0%
src/lib/sandbox...rce-identity.ts 87% 87% 0%
src/lib/onboard...y-management.ts 96% 99% +3%
src/lib/inferen...pter-forward.ts 92% 98% +6%

Updated August 05, 2026 10:49 UTC

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized terminology decisions differ; normalized E2E selections differ; severity counts match.
1 terminology difference from the second opinion

Advisory only. These are normalized differences from the primary terminology receipt.

  • incomplete capture at docs/manage-sandboxes/backup-restore.mdx:112: selected only by the second-opinion lane as justified.
3 additional E2E selections from the second opinion

Advisory only. The primary lane did not select these E2E jobs or targets.

  • sandbox-operations: The completed second-opinion lane identified E2E coverage that the primary lane omitted.
  • sandbox-survival: The completed second-opinion lane identified E2E coverage that the primary lane omitted.
  • security-posture: The completed second-opinion lane identified E2E coverage that the primary lane omitted.

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

1 semantic terminology decision

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • established — incomplete snapshot at docs/manage-sandboxes/backup-restore.mdx:109: Keep `incomplete snapshot` for the failed-capture artifact and `snapshot` for a completed artifact.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: onboard-repair, onboard-resume, rebuild-openclaw, state-backup-restore

1 optional E2E recommendation
  • snapshot-commands

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/reference/commands.mdx (1)

2970-2970: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

End the flag description with a period.

Line 2970 adds an imperative sentence without a final period.
As per coding guidelines, “Keep one sentence per line and end every sentence with a period.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/commands.mdx` at line 2970, Update the --keep-failed entry in
the command reference table so its description ends with a period, without
changing the documented behavior or environment variable reference.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/reference/commands.mdx`:
- Around line 2978-2982: The failed-snapshot documentation currently claims
incomplete snapshots are always removed; update the failure descriptions to
state that cleanup is attempted, but a cleanup failure leaves the incomplete
snapshot listed and restorable and requires manual removal. Apply this wording
consistently in docs/reference/commands.mdx lines 2978-2982 and
docs/manage-sandboxes/backup-restore.mdx lines 103-107.

In `@src/lib/actions/sandbox/snapshot.ts`:
- Line 105: Update the { kind: "help" } branch in runSandboxSnapshot to include
the --keep-failed option in its action-level usage, matching the keepFailed
field in the create request type. Add or update coverage to verify the default
action usage advertises --keep-failed.

---

Nitpick comments:
In `@docs/reference/commands.mdx`:
- Line 2970: Update the --keep-failed entry in the command reference table so
its description ends with a period, without changing the documented behavior or
environment variable reference.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: c3985e57-c3d0-46a0-a1c3-137a703d782f

📥 Commits

Reviewing files that changed from the base of the PR and between f504948 and f234cae.

📒 Files selected for processing (11)
  • docs/manage-sandboxes/backup-restore.mdx
  • docs/reference/commands.mdx
  • src/commands/sandbox/snapshot.test.ts
  • src/commands/sandbox/snapshot/create.ts
  • src/lib/actions/sandbox/snapshot-failed-create-cleanup.test.ts
  • src/lib/actions/sandbox/snapshot.test.ts
  • src/lib/actions/sandbox/snapshot.ts
  • src/lib/cli/public-display-defaults.ts
  • src/lib/state/sandbox-incomplete-snapshot-removal.test.ts
  • src/lib/state/sandbox.ts
  • test/snapshot.test.ts
💤 Files with no reviewable changes (1)
  • src/lib/actions/sandbox/snapshot.test.ts

Comment thread docs/reference/commands.mdx Outdated
Comment thread src/lib/actions/sandbox/snapshot.ts Outdated
@laitingsheng laitingsheng added area: cli Command line interface, flags, terminal UX, or output area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery bug-fix PR fixes a bug or regression labels Aug 4, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Aug 4, 2026
23 tasks
@apurvvkumaria apurvvkumaria self-assigned this Aug 4, 2026

@cjagwani cjagwani left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes on product scope and exact behavior before this can be approved.

Issue #8201 establishes one accepted outcome: a failed snapshot is removed so it is no longer listed or restorable. This PR also adds a new public --keep-failed flag and NEMOCLAW_KEEP_FAILED_SNAPSHOT contract that deliberately preserves a listable, restorable incomplete snapshot. That supported diagnostic surface is not established by the linked issue or another accepted design decision. Please either remove the flag/environment-variable path and keep the fix scoped to fail-closed cleanup, or link an accepted maintainer decision that defines its ownership, lifecycle, security expectations, and validation.

The two unresolved CodeRabbit findings are valid as written if the retention surface remains: action-level help omits the new flag, and the docs do not describe cleanup failure consistently. The documentation-writer receipt is also still blocked; refresh it after the final behavior is settled.

I am withholding the sensitive-path approval receipt until the product-scope decision is resolved.

@github-actions github-actions Bot added v0.0.103 Release target and removed v0.0.102 labels Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/lib/actions/sandbox/snapshot-failed-create-cleanup.test.ts`:
- Around line 71-82: Update the beforeEach setup in the snapshot cleanup tests
to explicitly set NEMOCLAW_KEEP_FAILED_SNAPSHOT to an empty value before each
test. Preserve individual tests’ ability to override the variable, and leave the
existing mock clearing and teardown behavior unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f1c06a5f-fe4a-4340-bc41-69c7c1203b44

📥 Commits

Reviewing files that changed from the base of the PR and between 87fcfe4 and 6cbbf52.

📒 Files selected for processing (11)
  • docs/manage-sandboxes/backup-restore.mdx
  • docs/reference/commands.mdx
  • src/commands/sandbox/snapshot.test.ts
  • src/commands/sandbox/snapshot/create.ts
  • src/lib/actions/sandbox/snapshot-failed-create-cleanup.test.ts
  • src/lib/actions/sandbox/snapshot.test.ts
  • src/lib/actions/sandbox/snapshot.ts
  • src/lib/cli/public-display-defaults.ts
  • src/lib/state/sandbox-incomplete-snapshot-removal.test.ts
  • src/lib/state/sandbox.ts
  • test/snapshot.test.ts
💤 Files with no reviewable changes (1)
  • src/lib/actions/sandbox/snapshot.test.ts
🚧 Files skipped from review as they are similar to previous changes (9)
  • test/snapshot.test.ts
  • docs/manage-sandboxes/backup-restore.mdx
  • src/commands/sandbox/snapshot.test.ts
  • src/lib/state/sandbox-incomplete-snapshot-removal.test.ts
  • src/lib/cli/public-display-defaults.ts
  • src/lib/actions/sandbox/snapshot.ts
  • src/commands/sandbox/snapshot/create.ts
  • src/lib/state/sandbox.ts
  • docs/reference/commands.mdx

Comment thread src/lib/actions/sandbox/snapshot-failed-create-cleanup.test.ts
laitingsheng and others added 3 commits August 5, 2026 04:09
Issue #8201 establishes removal of a failed snapshot as the accepted
outcome, and no accepted decision covers a supported flag and variable
that keep an incomplete snapshot listed and restorable. Cleanup is now
unconditional, and the docs describe the removal-failure path instead.

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Security review — PASS

Reviewed revision e2647faa5 against the current main comparison. The contributor removed the unsupported failed-snapshot retention surface; the remaining behavior removes an incomplete capture after a failed snapshot operation and reports a manual recovery path if cleanup cannot complete.

No security findings were identified.

Category Verdict Evidence
Secrets and credentials PASS No secret source or credential output was added. The existing snapshot sanitization path is unchanged, and failed captures are removed rather than retained by default.
Input validation and sanitization PASS The cleanup target comes from the internally constructed snapshot manifest under the sandbox backup root. User-supplied snapshot names do not determine the cleanup path.
Authentication and authorization PASS No authorization boundary or elevated operation changed; cleanup runs with the same local authority as snapshot creation.
Dependencies PASS No dependency or package source changed.
Error handling and logging PASS Cleanup errors keep the command nonzero and report the still-listed local path without exposing snapshot contents.
Cryptography and data protection PASS No cryptographic behavior changed. Removing incomplete captures reduces unintended local data retention.
Configuration and secure defaults PASS Failed snapshots are removed by default. No flag or environment variable can opt into retaining a restorable incomplete capture.
Security testing PASS Tests cover successful removal, idempotent removal, removal errors, a directory that remains after cleanup, list/lookup removal, and version recalculation.
Holistic security posture PASS The change prevents a partial capture from silently remaining selectable. If cleanup fails, the operator receives an explicit manual-removal requirement before restore.

Validation:

  • Focused CLI tests: 9 passed.
  • Snapshot integration tests: 53 passed.
  • CLI type-check passed.
  • Documentation build and route validation passed with no errors.
  • Normal commit and push hooks passed.
  • The documentation follow-up commit is signed and preserves the contributor’s original commits and attribution.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

The requested scope change is addressed.

  • The contributor removed the public --keep-failed flag and NEMOCLAW_KEEP_FAILED_SNAPSHOT path. The current comparison contains no retention opt-in; failed snapshot creation remains fail-closed and removes the incomplete capture.
  • The earlier action-help and retention-test comments are therefore no longer applicable. All inline CodeRabbit threads are resolved.
  • Cleanup-failure documentation now states that the incomplete capture remains selectable and that the reported directory must be removed manually before restore.
  • The documentation-writer receipt is refreshed for revision e2647faa5; the docs build completed with 0 errors, and route/diff checks passed.
  • The sensitive-path security review passed: fix(sandbox): remove the incomplete snapshot when creation fails #8211 (comment)
  • Maintainer verification passed: 9 focused cleanup tests, 53 snapshot integration tests, CLI type-check, and normal commit/push hooks.

The PR is now scoped to the accepted #8201 outcome and is ready for follow-up review after the new CI run completes.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

All current required checks are green after the branch refresh, including the full CLI shard set, aggregate CLI tests, type/build checks, E2E gate, CodeQL, documentation receipt, DCO, and commit verification.

The documentation writer reviewed revision c8928aa46; the receipt now reflects that review. There are no unresolved review threads, and the accepted scope remains limited to removing an incomplete snapshot after creation fails, with a manual-removal diagnostic only when cleanup itself cannot complete.

GitHub still records the earlier change-request decision from before the unsupported retention option was removed. That independent follow-up review is the only remaining merge gate.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

The new CLI shard-8 failure is a current-main timing-manifest regression, not a snapshot-cleanup failure.

Current main split and deleted test/pr-review-advisor.test.ts, while ci/cli-test-timing-hints.json still requires every named test path to exist. The shard failed at test/cli-coverage-sequencer.test.ts:187 on that missing path. I opened #8327 with the one-line base correction; its focused sequencer suite passes 8/8 and the commit is verified.

I am not rerunning this deterministic failure. Once the base fix merges, this branch can refresh and run a clean gate.

@cv
cv dismissed cjagwani’s stale review August 5, 2026 10:33

The requested product-scope and documentation changes were addressed by later commits: the unsupported retention surface was removed, cleanup recovery guidance was clarified, the documentation receipt was refreshed, and no review threads remain. Current CI status remains an independent merge gate.

@jyaunches
jyaunches merged commit 5fb17c5 into main Aug 5, 2026
76 checks passed
@jyaunches
jyaunches deleted the fix/snapshot-create-failed-cleanup branch August 5, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: cli Command line interface, flags, terminal UX, or output area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery bug-fix PR fixes a bug or regression v0.0.103 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Ubuntu 24.04][Sandbox] Failed snapshot (unreadable file) exits 1 'Snapshot failed' but still registers and lists the incomplete snapshot

5 participants