Skip to content

fix(share): give a clear error when the local mount path is on a read-only filesystem#3235

Closed
latenighthackathon wants to merge 2 commits into
NVIDIA:mainfrom
latenighthackathon:fix/share-mount-rofs-clear-error
Closed

fix(share): give a clear error when the local mount path is on a read-only filesystem#3235
latenighthackathon wants to merge 2 commits into
NVIDIA:mainfrom
latenighthackathon:fix/share-mount-rofs-clear-error

Conversation

@latenighthackathon

@latenighthackathon latenighthackathon commented May 8, 2026

Copy link
Copy Markdown
Contributor

Summary

nemoclaw <name> share mount now fails fast with a structured, actionable error when the local mount path is on a read-only filesystem, instead of leaking the low-level fusermount3: user has no write access to mountpoint line that #3192 reported on AlmaLinux 9.7.

Related Issue

Closes #3192

Changes

  • New checkLocalMountWritable(localMount) helper in src/lib/share-command.ts recursively creates the mount directory and verifies the resulting path is writable, distinguishing EROFS (parent on read-only fs), EACCES (permission denied), and other failures and returning a structured { writable, reason } result.
  • runShareMount consults this helper after writing the temporary SSH config and before invoking sshfs. A non-writable target now exits with the offending path, the underlying reason, and a suggested writable-path invocation; the temporary SSH config file is cleaned up before the early exit so we don't leave an orphan in /tmp. Sample output for a read-only target: Local mount path '/ro/mounts/my-assistant' is not usable: parent filesystem is read-only. share mount projects sandbox files onto a host directory via SSHFS, so the local target must be on a writable filesystem. Pick a writable directory: nemoclaw my-assistant share mount /sandbox <writable-path>.
  • docs/reference/commands.md and the agent-skill mirror in .agents/skills/nemoclaw-user-reference/references/commands.md now include the writable-mount-target requirement in the share mount prerequisites, so users hitting the default ~/.nemoclaw/mounts/<name> on a read-only filesystem know they can pass an explicit local path as the second positional argument.
  • New test/share-command-writable.test.ts covers five cases for the helper: success, EROFS from mkdirSync, EACCES from mkdirSync, an unexpected mkdirSync failure (ENOSPC), and a pre-existing directory whose accessSync fails.

Type of Change

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

Verification

  • npx prek run --all-files passes (commitlint, gitleaks, biome, TypeScript, source-shape, skills YAML, dist-sourcemaps)
  • npm test (npx vitest run) passes for the new file: 5/5 in test/share-command-writable.test.ts. Full suite was 3525 passed / 4 pre-existing timing flakes (sandbox-stuck-recovery, cli timing assertion) / 13 skipped; flakes are unrelated to share-command.ts and pass 4/4 in isolation.
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes

Signed-off-by: latenighthackathon latenighthackathon@users.noreply.github.com

Summary by CodeRabbit

  • Documentation

    • Clarified that nemoclaw <name> share mount requires the local mount path to be on a writable host filesystem and how to supply an explicit writable destination.
  • Bug Fixes

    • Mount now validates the local target before attempting the mount and shows clearer, actionable errors when the path is not writable.
  • Tests

    • Added automated tests covering writable-check scenarios and failure messages.

Review Change Stack

@copy-pr-bot

copy-pr-bot Bot commented May 8, 2026

Copy link
Copy Markdown

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.

@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4e63340f-d38b-4bc1-8c57-9107b00fa7d4

📥 Commits

Reviewing files that changed from the base of the PR and between e004f5c and 0fa6708.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.md
  • src/lib/share-command.ts
  • test/share-command-writable.test.ts
✅ Files skipped from review due to trivial changes (2)
  • docs/reference/commands.md
  • .agents/skills/nemoclaw-user-reference/references/commands.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/lib/share-command.ts
  • test/share-command-writable.test.ts

📝 Walkthrough

Walkthrough

Adds an exported checkLocalMountWritable() and integrates it into runShareMount to preflight local mount writability (exit + cleanup on failure); removes the prior unconditional directory creation; adds Vitest tests for errno-to-reason mappings; updates command docs to require a writable host local mount path.

Changes

Mount Directory Writability Validation

Layer / File(s) Summary
Writable Path Check Implementation
src/lib/share-command.ts
New exported checkLocalMountWritable(localMount) creates the directory recursively, checks write access with fs.accessSync(W_OK), and returns { writable: true } or { writable: false, reason } mapping common mkdirSync/accessSync errno cases to human-readable reasons.
Integration & Error Handling
src/lib/share-command.ts
runShareMount() now calls checkLocalMountWritable(localMount) after writing the temporary SSH config; on failure it logs the localMount and reason, removes the temporary SSH config/tmp directory, and exits with code 1. The previous unconditional fs.mkdirSync(localMount, { recursive: true }) was removed.
Test Coverage
test/share-command-writable.test.ts
New Vitest suite mocks fs.mkdirSync and fs.accessSync to assert { writable: true } on success and verify errno-to-reason mappings for EROFS, EACCES, and unexpected errors; mocks are restored after each test.
User Documentation
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.md
Command reference prerequisites updated to state the local mount path must be writable on the host filesystem (FUSE/SSHFS creates the mount on the host) and that callers may supply an explicit writable local path as the second positional argument if the default is read-only.

Sequence Diagram(s)

sequenceDiagram
  participant Run as runShareMount
  participant Check as checkLocalMountWritable
  participant Cleanup as cleanup/tempdir
  Run->>Check: validate(localMount)
  alt writable
    Check-->>Run: { writable: true }
    Run->>Run: proceed to sshfs invocation
  else not writable
    Check-->>Run: { writable: false, reason }
    Run->>Cleanup: remove SSH config / temp dir
    Run->>Run: process.exit(1)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 I checked the mount where carrots hide,
If hostlands let me write inside,
If not, I tell you plain and clear,
Clean up the crumbs and hop from here,
Bunny hops — no surprises near!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding a structured error message when the local mount path is on a read-only filesystem.
Linked Issues check ✅ Passed The PR fully addresses issue #3192 by implementing a pre-check that validates mount directory writability before invoking sshfs and provides clear, actionable error messages.
Out of Scope Changes check ✅ Passed All changes are directly scoped to addressing #3192: the new helper function, integration into runShareMount, documentation updates, and test coverage are all focused on the read-only filesystem detection requirement.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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

@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/share-command.ts`:
- Around line 84-88: The catch on fs.accessSync currently collapses all errors
into "directory is not writable"; change it to inspect the caught error (e.g.,
the thrown Error object in the catch) and preserve the root cause similar to the
mkdirSync branch: if err.code === 'EROFS' return a writable:false result with
the same EROFS/read-only reason, otherwise return writable:false with a generic
"directory is not writable" reason but include the original error message/code
so callers can see the root cause; update the catch block around
fs.accessSync(localMount, fs.constants.W_OK) to implement this conditional error
handling.
🪄 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: 28f1b1df-e7ba-436f-bfa5-b5118f735435

📥 Commits

Reviewing files that changed from the base of the PR and between b1320d5 and 58c035b.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.md
  • src/lib/share-command.ts
  • test/share-command-writable.test.ts

Comment thread src/lib/share-command.ts
@wscurran

wscurran commented May 8, 2026

Copy link
Copy Markdown
Contributor

✨ Thanks for submitting this PR that fixes the issue with the local mount path being on a read-only filesystem. This change involves adding a check to verify the mount directory is writable before invoking sshfs and provides a structured error message when the path is not writable.


Related open issues:

@SeseMueller

Copy link
Copy Markdown

While this PR is looking into improving the Error Reporting of the share mount command, I would also like to suggest an improvement to the case where a user tries to mount a sandbox path that doesn't exist (potentially if there is a typo). By default, in that case, the user only sees SSHFS mount failed and no information that the file or directory does not exist.

@latenighthackathon

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback @SeseMueller, will file a separate follow-up so this PR stays scoped to the writable-fs fix - stay tuned. Cheers!

latenighthackathon added a commit to latenighthackathon/NemoClaw that referenced this pull request May 12, 2026
Closes NVIDIA#3414. `nemoclaw <sandbox> share mount` exits non-zero with no
stderr when the remote sandbox path does not exist (e.g. a typo).
sshfs is silent in this case, so the CLI surfaced only the bare
"SSHFS mount failed." line and the user had no signal that the source
path was the problem. Reported by @SeseMueller in NVIDIA#3235 as follow-up
to the writable-fs error fix.

Adds a `checkSandboxPathExists` dep to `ShareCommandDeps` that runs
`openshell sandbox exec <name> -- test -e <remotePath>` and treats a
zero exit status as "path exists" (everything else is missing or
unreachable, which is the safer default for the caller). The default
impl reuses the same `OPENSHELL_PROBE_TIMEOUT_MS` budget as the
existing `getSshConfig` probe.

`assertSandboxPathExistsOrExit` is an exported helper that calls the
dep, emits a structured error when the path is missing, and exits 1.
`runShareMount` invokes it after `ensureLive` and before
`getSshConfig`, so a missing remote path fails fast with:

  Sandbox path '/sandbox/typo' does not exist in sandbox 'my-assistant'.
  Verify the path with: nemoclaw my-assistant connect, then ls /sandbox/typo
  The default is /sandbox; check for typos in any custom path you passed.

No SSH config is written, no sshfs binary is invoked, no local mount
directory is created when the pre-flight fails.

Three behavior tests in `test/share-command-remote-path.test.ts`
cover the happy path (no exit, no stderr), the missing-path exit
(verifies error contents and that the dep was called with the right
args), and the cliName branding hint (so the `nemohermes` alias
surfaces `nemohermes hermes connect` rather than `nemoclaw hermes
connect`).

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
@latenighthackathon

Copy link
Copy Markdown
Contributor Author

Follow-up filed: #3414 (issue) and #3415 (PR) - the missing-remote-path pre-flight you flagged, scoped separately so this PR stays focused on the writable-fs case. @SeseMueller, mind taking a look at #3415 when you have a moment? Cheers!

@latenighthackathon latenighthackathon force-pushed the fix/share-mount-rofs-clear-error branch from b6314b5 to 76b0441 Compare May 12, 2026 19:03
latenighthackathon added a commit to latenighthackathon/NemoClaw that referenced this pull request May 12, 2026
Closes NVIDIA#3414. `nemoclaw <sandbox> share mount` exits non-zero with no
stderr when the remote sandbox path does not exist (e.g. a typo).
sshfs is silent in this case, so the CLI surfaced only the bare
"SSHFS mount failed." line and the user had no signal that the source
path was the problem. Reported by @SeseMueller in NVIDIA#3235 as follow-up
to the writable-fs error fix.

Adds a `checkSandboxPathExists` dep to `ShareCommandDeps` that runs
`openshell sandbox exec <name> -- test -e <remotePath>` and treats a
zero exit status as "path exists" (everything else is missing or
unreachable, which is the safer default for the caller). The default
impl reuses the same `OPENSHELL_PROBE_TIMEOUT_MS` budget as the
existing `getSshConfig` probe.

`assertSandboxPathExistsOrExit` is an exported helper that calls the
dep, emits a structured error when the path is missing, and exits 1.
`runShareMount` invokes it after `ensureLive` and before
`getSshConfig`, so a missing remote path fails fast with:

  Sandbox path '/sandbox/typo' does not exist in sandbox 'my-assistant'.
  Verify the path with: nemoclaw my-assistant connect, then ls /sandbox/typo
  The default is /sandbox; check for typos in any custom path you passed.

No SSH config is written, no sshfs binary is invoked, no local mount
directory is created when the pre-flight fails.

Three behavior tests in `test/share-command-remote-path.test.ts`
cover the happy path (no exit, no stderr), the missing-path exit
(verifies error contents and that the dep was called with the right
args), and the cliName branding hint (so the `nemohermes` alias
surfaces `nemohermes hermes connect` rather than `nemoclaw hermes
connect`).

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
latenighthackathon added a commit to latenighthackathon/NemoClaw that referenced this pull request May 14, 2026
Closes NVIDIA#3414. `nemoclaw <sandbox> share mount` exits non-zero with no
stderr when the remote sandbox path does not exist (e.g. a typo).
sshfs is silent in this case, so the CLI surfaced only the bare
"SSHFS mount failed." line and the user had no signal that the source
path was the problem. Reported by @SeseMueller in NVIDIA#3235 as follow-up
to the writable-fs error fix.

Adds a `checkSandboxPathExists` dep to `ShareCommandDeps` that runs
`openshell sandbox exec <name> -- test -e <remotePath>` and treats a
zero exit status as "path exists" (everything else is missing or
unreachable, which is the safer default for the caller). The default
impl reuses the same `OPENSHELL_PROBE_TIMEOUT_MS` budget as the
existing `getSshConfig` probe.

`assertSandboxPathExistsOrExit` is an exported helper that calls the
dep, emits a structured error when the path is missing, and exits 1.
`runShareMount` invokes it after `ensureLive` and before
`getSshConfig`, so a missing remote path fails fast with:

  Sandbox path '/sandbox/typo' does not exist in sandbox 'my-assistant'.
  Verify the path with: nemoclaw my-assistant connect, then ls /sandbox/typo
  The default is /sandbox; check for typos in any custom path you passed.

No SSH config is written, no sshfs binary is invoked, no local mount
directory is created when the pre-flight fails.

Three behavior tests in `test/share-command-remote-path.test.ts`
cover the happy path (no exit, no stderr), the missing-path exit
(verifies error contents and that the dep was called with the right
args), and the cliName branding hint (so the `nemohermes` alias
surfaces `nemohermes hermes connect` rather than `nemoclaw hermes
connect`).

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
@latenighthackathon latenighthackathon force-pushed the fix/share-mount-rofs-clear-error branch from a60bbdf to e004f5c Compare May 14, 2026 01:58
…-only filesystem

Closes NVIDIA#3192. `share mount` projects sandbox files onto a host directory via SSHFS,
so the local target must be on a writable filesystem; FUSE itself creates the mount
on the host side. When the chosen path is on a read-only fs, sshfs/fusermount3 used
to surface a low-level error (`fusermount3: user has no write access to mountpoint`)
without explaining what the user can change.

Add a `checkLocalMountWritable` helper that recursively creates the mount directory
and verifies the resulting path is writable, distinguishing EROFS (parent on
read-only fs), EACCES (permission denied), and other failures. `runShareMount` now
consults this helper after writing the temporary SSH config and before invoking
sshfs, so a non-writable target fails fast with a structured error: the offending
path, the underlying reason, and a suggested writable-path invocation.

Also notes the writable-mount-target requirement in the `share mount` prerequisites
in `docs/reference/commands.md` and the agent-skill mirror so users hitting the
default `~/.nemoclaw/mounts/<name>` on a read-only filesystem know to pass an
explicit local path. Adds five unit tests covering the success case, EROFS, EACCES,
an unexpected mkdir failure, and a pre-existing read-only directory.

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
…ting dir

The `accessSync` branch in `checkLocalMountWritable` collapsed every error
into "directory is not writable", which dropped the EROFS signal on a
pre-existing mount target whose filesystem is read-only - a case the
`mkdirSync` branch already differentiates. Inspect the caught error's code
and report "filesystem is read-only" for EROFS, the generic
"directory is not writable" for EACCES, and the underlying message for
anything else, mirroring the `mkdirSync` branch shape.

Two new test cases cover the EROFS and EACCES preservation paths.

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
@latenighthackathon latenighthackathon force-pushed the fix/share-mount-rofs-clear-error branch from ecd49ed to 0fa6708 Compare May 15, 2026 02:08
latenighthackathon added a commit to latenighthackathon/NemoClaw that referenced this pull request May 15, 2026
Closes NVIDIA#3414. `nemoclaw <sandbox> share mount` exits non-zero with no
stderr when the remote sandbox path does not exist (e.g. a typo).
sshfs is silent in this case, so the CLI surfaced only the bare
"SSHFS mount failed." line and the user had no signal that the source
path was the problem. Reported by @SeseMueller in NVIDIA#3235 as follow-up
to the writable-fs error fix.

Adds a `checkSandboxPathExists` dep to `ShareCommandDeps` that runs
`openshell sandbox exec <name> -- test -e <remotePath>` and treats a
zero exit status as "path exists" (everything else is missing or
unreachable, which is the safer default for the caller). The default
impl reuses the same `OPENSHELL_PROBE_TIMEOUT_MS` budget as the
existing `getSshConfig` probe.

`assertSandboxPathExistsOrExit` is an exported helper that calls the
dep, emits a structured error when the path is missing, and exits 1.
`runShareMount` invokes it after `ensureLive` and before
`getSshConfig`, so a missing remote path fails fast with:

  Sandbox path '/sandbox/typo' does not exist in sandbox 'my-assistant'.
  Verify the path with: nemoclaw my-assistant connect, then ls /sandbox/typo
  The default is /sandbox; check for typos in any custom path you passed.

No SSH config is written, no sshfs binary is invoked, no local mount
directory is created when the pre-flight fails.

Three behavior tests in `test/share-command-remote-path.test.ts`
cover the happy path (no exit, no stderr), the missing-path exit
(verifies error contents and that the dep was called with the right
args), and the cliName branding hint (so the `nemohermes` alias
surfaces `nemohermes hermes connect` rather than `nemoclaw hermes
connect`).

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
@latenighthackathon

Copy link
Copy Markdown
Contributor Author

Closing in favor of #3646, which carries the same fix as a single clean signed commit rebased onto current upstream/main (post-v0.0.44). Tested in container: 6/6 checkLocalMountWritable cases pass plus 9/9 existing share-command.test.ts. Cheers!

cv added a commit that referenced this pull request May 16, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Closes #3414. `nemoclaw <sandbox> share mount` exits non-zero with no
stderr when the remote sandbox path does not exist (e.g. a typo). sshfs
is silent in this case, so the CLI surfaced only the bare `SSHFS mount
failed.` line and the user had no signal that the source path was the
problem. Reported by @SeseMueller in
[#3235](#3235 (comment))
as a follow-up to the writable-fs error fix.

## Related Issue

Closes #3414

## Changes

- New `checkSandboxPathExists` dep on `ShareCommandDeps`
(`src/lib/share-command-deps.ts`). Default impl runs `openshell sandbox
exec <name> -- test -e <remotePath>` with the same
`OPENSHELL_PROBE_TIMEOUT_MS` budget as the existing `getSshConfig`
probe, and treats a zero exit status as "path exists" (everything else
is missing or unreachable).
- New exported helper `assertSandboxPathExistsOrExit(deps, sandboxName,
remotePath)` in `src/lib/share-command.ts`. Consults the dep, emits a
structured error when the probe returns non-zero, and exits 1. The error
is phrased as a verification failure rather than a definitive "path is
missing" claim, because the probe also returns false on transient exec
failures (sandbox just restarted, gRPC hiccup), and a wrong-cause
message wastes the user's time. Extracted so the behavior is testable
without driving the full sshfs lifecycle.
- `runShareMount` calls the helper after `ensureLive` and before
`getSshConfig`, so a non-verifiable remote path fails fast with:

```
  Could not verify sandbox path '/sandbox/typo' in sandbox 'my-assistant' (missing path or probe failure).
  Verify the path with: nemoclaw my-assistant connect, then ls /sandbox/typo
  The default is /sandbox; check for typos in any custom path you passed.
```

No SSH config is written, no sshfs binary is invoked, no local mount
directory is created when the pre-flight fails.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only

## Verification

- [x] `npx prek run --all-files` passes for the staged files (includes
the source-shape test budget gate).
- [x] Three behavior tests in `test/share-command-remote-path.test.ts`
cover the happy path (no exit, no stderr), the missing-path exit
(verifies error contents and that the dep was called with the right
args), and the `cliName` branding hint (so the `nemohermes` alias
surfaces `nemohermes hermes connect` rather than `nemoclaw hermes
connect`).
- [x] `npx vitest run test/share-command-remote-path.test.ts` - 3/3
pass.
- [x] `npx tsx scripts/find-source-shape-tests.ts` - 0 source-shape
cases (no source-text assertions).
- [x] `npm run build:cli` clean.
- [x] No secrets, API keys, or credentials committed.

---
Signed-off-by: latenighthackathon
<latenighthackathon@users.noreply.github.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added pre-flight validation for `share mount` to verify the remote
path exists in the sandbox before attempting to connect.
  
* **Bug Fixes**
* Mount operations now fail early with helpful guidance if the remote
path cannot be verified, preventing connection attempts with invalid
paths.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/3647?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: latenighthackathon <support@latenighthackathon.com>
Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
Co-authored-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
@latenighthackathon latenighthackathon deleted the fix/share-mount-rofs-clear-error branch May 18, 2026 05:11
@wscurran wscurran added area: cli Command line interface, flags, terminal UX, or output area: observability Logging, metrics, tracing, diagnostics, or debug output bug-fix PR fixes a bug or regression labels Jun 3, 2026
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: observability Logging, metrics, tracing, diagnostics, or debug output bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

nemoclaw sandbox_name share mount error when mounting into read-only filesystem

3 participants