Repository navigation
[TLT-5991][Bugfix] NVBug 6682592: resolve the NemoClaw sandbox container by label - #221
Merged
helenzhou0523 merged 2 commits intoAug 31, 2026
Merged
Conversation
…ner by label
setup-tao-nemoclaw.sh and uninstall-tao-nemoclaw.sh located the sandbox
container by matching an anchored name prefix, 'openshell-<sandbox>-'.
That was correct when the integration was written: OpenShell's docker
driver named sandbox containers 'openshell-<name>-<id>'.
OpenShell v0.0.88 introduced the workspace resource model and changed
container_name_for_sandbox to 'openshell-<workspace>--<name>-<id>'. The
anchored prefix cannot match the new form, so on any host whose gateway
has been redeployed onto v0.0.88 or later:
- setup aborts in step 0, ahead of every branch, so even
--restart-server cannot run; and
- uninstall silently skips all sandbox-side cleanup and reports
success, leaving the skills, the openclaw.json entry and the egress
policy behind.
The name is an internal convention; the label is the supported lookup.
OpenShell has stamped openshell.ai/sandbox-name on every sandbox
container since well before this integration existed (present in v0.0.71
through main), so filtering on it is exact and works on both sides of the
rename. A lookup miss now prints the sandbox containers docker did
return, so the next mismatch diagnoses itself instead of pointing the
operator back at onboarding.
Validated on a NemoClaw host (openshell 0.0.71, real Docker) against
containers carrying the exact names and labels the driver emits:
- post-v0.0.88 name: old pattern finds nothing, new lookup resolves it
- with an 'openshell-<sb>-local' neighbour present, the old pattern
resolves the WRONG container -- a latent mis-resolution the reported
abort was masking
- pre-v0.0.88 name still resolves through the same lookup
- no prefix bleed ('taotest' does not match 'taotesting')
- both scripts run end to end past step 0; setup reaches the
credentials check and uninstall reaches the confirmation prompt
Ref: NVIDIA/OpenShell#2243 (5952a5a2, first released in v0.0.88)
Signed-off-by: Bingjie Zhou <bingjiez@nvidia.com>
|
For security reasons, CI does not run automatically on NVIDIA's runners — it must be triggered per commit.
Tip Should this fix also ship in a release? Add a Important Before merging: every file needs a license header and every commit must be DCO signed-off — see the 📖 Contribution guide for details. |
Contributor
Author
|
/build |
…moClaw's and moves The version matrix read as though OpenShell 0.0.85 were pinned on our side. It is not: the pin lives in NemoClaw's nemoclaw-blueprint/blueprint.yaml as min == max, and it moved 0.0.72 -> 0.0.85 -> 0.0.99 -> 0.0.101 -> 0.0.106 between 2026-07-03 and 2026-08-20. The 0.0.85 -> 0.0.99 bump on 2026-08-07 (NemoClaw #8523) jumped straight over the v0.0.88 container rename that broke container resolution, so a reader checking this table would have concluded we were insulated when we were not. Record the pin history, state plainly that the table is what was verified rather than what is enforced, and generalise the lesson: do not re-derive OpenShell's internal conventions. Signed-off-by: Bingjie Zhou <bingjiez@nvidia.com>
helenzhou0523
deleted the
bugfix/nemoclaw-resolve-sandbox-container-by-label
branch
August 31, 2026 23:46
🍒 Cherry-pick summary
|
tao-cherry-pick-bot Bot
pushed a commit
that referenced
this pull request
Aug 31, 2026
…ner by label (#221) * [TLT-5991][Bugfix] NVBug 6682592: resolve the NemoClaw sandbox container by label setup-tao-nemoclaw.sh and uninstall-tao-nemoclaw.sh located the sandbox container by matching an anchored name prefix, 'openshell-<sandbox>-'. That was correct when the integration was written: OpenShell's docker driver named sandbox containers 'openshell-<name>-<id>'. OpenShell v0.0.88 introduced the workspace resource model and changed container_name_for_sandbox to 'openshell-<workspace>--<name>-<id>'. The anchored prefix cannot match the new form, so on any host whose gateway has been redeployed onto v0.0.88 or later: - setup aborts in step 0, ahead of every branch, so even --restart-server cannot run; and - uninstall silently skips all sandbox-side cleanup and reports success, leaving the skills, the openclaw.json entry and the egress policy behind. The name is an internal convention; the label is the supported lookup. OpenShell has stamped openshell.ai/sandbox-name on every sandbox container since well before this integration existed (present in v0.0.71 through main), so filtering on it is exact and works on both sides of the rename. A lookup miss now prints the sandbox containers docker did return, so the next mismatch diagnoses itself instead of pointing the operator back at onboarding. Validated on a NemoClaw host (openshell 0.0.71, real Docker) against containers carrying the exact names and labels the driver emits: - post-v0.0.88 name: old pattern finds nothing, new lookup resolves it - with an 'openshell-<sb>-local' neighbour present, the old pattern resolves the WRONG container -- a latent mis-resolution the reported abort was masking - pre-v0.0.88 name still resolves through the same lookup - no prefix bleed ('taotest' does not match 'taotesting') - both scripts run end to end past step 0; setup reaches the credentials check and uninstall reaches the confirmation prompt Ref: NVIDIA/OpenShell#2243 (5952a5a2, first released in v0.0.88) Signed-off-by: Bingjie Zhou <bingjiez@nvidia.com> * [TLT-5991][Bugfix] NVBug 6682592: record that the OpenShell pin is NemoClaw's and moves The version matrix read as though OpenShell 0.0.85 were pinned on our side. It is not: the pin lives in NemoClaw's nemoclaw-blueprint/blueprint.yaml as min == max, and it moved 0.0.72 -> 0.0.85 -> 0.0.99 -> 0.0.101 -> 0.0.106 between 2026-07-03 and 2026-08-20. The 0.0.85 -> 0.0.99 bump on 2026-08-07 (NemoClaw #8523) jumped straight over the v0.0.88 container rename that broke container resolution, so a reader checking this table would have concluded we were insulated when we were not. Record the pin history, state plainly that the table is what was verified rather than what is enforced, and generalise the lesson: do not re-derive OpenShell's internal conventions. Signed-off-by: Bingjie Zhou <bingjiez@nvidia.com> --------- Signed-off-by: Bingjie Zhou <bingjiez@nvidia.com> (cherry picked from commit bad500f)
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 free
to 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.
Problem
setup-tao-nemoclaw.shaborts at step 0 on a healthy, onboarded sandbox:Both scripts located the sandbox container by matching an anchored name prefix,
openshell-<sandbox>-. That was correct when this integration was written(2026-07-09): OpenShell's docker driver named sandbox containers
openshell-<name>-<id>.NVIDIA/OpenShell#2243 (
5952a5a2)introduced the workspace resource model and changed
container_name_for_sandbox:It first shipped in OpenShell v0.0.88 (v0.0.87 still emits the old form). The
anchored prefix cannot match
openshell-<workspace>--<name>-<id>, so on any hostwhose gateway has been redeployed onto v0.0.88+:
narrow
--restart-serverpath cannot run. Nothing downstream is reachable:no MCP server, no skills in the sandbox, no
openclaw.jsonentry, no egresspolicy, so the agent never gets
tao_ls/tao_run.it warns and skips, so it silently leaves the skills, the
openclaw.jsonentry and the egress policy in place while reporting success.
Fix
Resolve by label, not by name. OpenShell stamps
openshell.ai/sandbox-nameonevery sandbox container and has since well before this integration existed —
present in v0.0.71 through
main— so it is exact, version-portable across therename, and not an internal convention we have to keep chasing.
A lookup miss now prints the sandbox containers
docker psdid return, so thenext mismatch diagnoses itself instead of sending the operator back to re-check
onboarding.
openshell.ai/managed-byis deliberately not part of the filter: the dockerdriver only began applying it after v0.0.71, so requiring it would break the
older gateways this change is meant to keep working.
Validation
Run on a NemoClaw host (
openshell 0.0.71, real Docker) against containerscarrying the exact names and labels the driver emits on each side of the rename:
openshell-<sb>-localneighbour, old patterntaotestvstaotesting)Both scripts also run end to end past step 0 on that host:
setup then proceeds to the credentials check and uninstall to the confirmation
prompt — both unrelated to this change and expected on a bare host. With an
unknown sandbox:
Notes
ed5913e0, which reported the samedefect against a different sandbox on a different host. Consistent with the
root cause: hosts break one at a time, as each gateway gets redeployed onto
a v0.0.88+ cluster image.