fix(sandbox/recover): parse framed exec output for Hermes boundary - #5590
Conversation
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds internal helpers ChangesSandbox exec stdout frame extraction and base64 encoding
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most covered files.
Updated |
E2E Advisor RecommendationRequired E2E: Dispatch hint: Auto-dispatched E2E: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
Vitest E2E Scenario RecommendationRequired Vitest E2E scenarios: Dispatch required Vitest E2E scenarios:
Full Vitest E2E advisor summaryVitest E2E Scenario AdvisorBase: Required Vitest E2E scenarios
Optional Vitest E2E scenarios
Relevant changed files
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
PR Review Advisor — BlockedMerge posture: Do not merge until addressed Action checklist
Findings index
🚨 Required before mergeAddress these before merging unless a maintainer explicitly overrides the advisor with rationale.
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Selective E2E Results — ✅ All requested jobs passedRun: 27968703210
|
|
Source-of-truth / risk rationale for the localized parser fix:
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Selective E2E Results —
|
| Job | Result |
|---|---|
| issue-2478-crash-loop-recovery-e2e |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
Additional source-of-truth update after San's manual retest:
|
Selective E2E Results —
|
| Job | Result |
|---|---|
| issue-2478-crash-loop-recovery-e2e |
|
Maintainer decision on Rationale:
Risk bounds / why this is acceptable for the hotfix:
Removal condition: remove the Docker fallback once OpenShell provides a stable machine-readable root exec mode or otherwise reliably preserves the startup marker for this Hermes boundary command across the supported local Docker runtimes. Given that #5547's broad revert has been closed and this branch is the only validated forward fix, I recommend merging #5590 with this rationale rather than changing the behavior again pre-merge. |
Selective E2E Results — ✅ All requested jobs passedRun: 27972872415
|
Summary
Fixes the framed-output cause of San's Hermes recover/connect regression from #5530 without reverting the running-gateway secret-boundary enforcement. This intentionally retains the #5525 security contract: a running Hermes gateway still refuses when the validator reports raw secret-shaped values; the accepted healthy path is framed
SECRET_BOUNDARY_OK, not ignoring the env-file boundary. The sandbox exec path now tolerates OpenShell stdout framing such asstdout: ..., avoids multiline payloads for the Hermes validator probe, and falls back to local Docker root exec when the OpenShell exec transport does not produce the startup marker, so healthy sandboxes can readSECRET_BOUNDARY_OKinstead of failing closed as inconclusive.Related Issue
Related to #5589
Addresses #5525
Changes
openshell sandbox execoutput after the NemoClaw startup marker inprocess-recovery.ts.sh -cso OpenShell does not receive multiline exec payloads.Type of Change
Verification
Verifiedin GitHubnpx prek run --from-ref main --to-ref HEADpassesnpm testpasses (broad runtime changes only)npm run docsbuilds without warnings (doc changes only)Signed-off-by: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit
stdout:/[stdout]) and extract output only after the startup marker.nullwhen the marker is missing or extraction isn’t reliable.