fix(onboard): route portable gateway reachability probe - #8732
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
📝 WalkthroughWalkthroughThe change moves portable profile APIs into a dedicated module and re-exports them through the platform module. Reachability probes use ChangesPortable profile gateway routing
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ReachabilityProbe
participant PortableProfile
participant DockerRouteConstruction
participant PodmanGateway
ReachabilityProbe->>PortableProfile: Check portable profile
PortableProfile-->>ReachabilityProbe: Return profile status
ReachabilityProbe->>DockerRouteConstruction: Pass 169.254.1.2 when portable
DockerRouteConstruction->>PodmanGateway: Map host.openshell.internal to 169.254.1.2
PodmanGateway-->>ReachabilityProbe: Return TCP reachability
ReachabilityProbe-->>ReachabilityProbe: Retry or print Podman recovery guidance
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 036f2c0 in the TypeScript / code-coverage/cliThe overall coverage in commit 036f2c0 in the Show a code coverage summary of the most impacted files.
Updated |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
3 terminology differences from the second opinionAdvisory only. These are normalized differences from the primary terminology receipt.
2 additional E2E selections from the second opinionAdvisory only. The primary lane did not select these E2E jobs or targets.
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. 3 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite against this exact revision. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
|
🌿 Preview your docs: https://nvidia-preview-pr-8732.docs.buildwithfern.com/nemoclaw |
There was a problem hiding this comment.
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/onboard/gateway-sandbox-reachability.ts`:
- Around line 470-481: Update the reachability result handling before the
generic docker_daemon_unreachable branch so an active portable profile routes
that failure through the Podman recovery guidance, including the service and
socket commands. Use the existing portable-profile context or add an explicit
marker to SandboxBridgeReachabilityResult, and add a regression test covering
portable docker_daemon_unreachable results.
🪄 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: c1155d08-0612-421d-ad37-a1e4727004c5
📒 Files selected for processing (4)
docs/reference/commands.mdxdocs/reference/troubleshooting.mdxsrc/lib/onboard/gateway-sandbox-reachability.test.tssrc/lib/onboard/gateway-sandbox-reachability.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- src/lib/onboard/gateway-sandbox-reachability.test.ts
Summary
Portable-profile gateway reachability probes now map
host.openshell.internalto the OpenShell Podman host gateway instead of the inspected Podman network gateway. Onboarding uses route-specific recovery guidance and preserves the portable profile in the rerun command.E2E root cause: portable profile / sandbox bridge reachability / probe maps
host.openshell.internalto the Podman network gateway instead of the OpenShell host gatewaySource run: https://github.com/NVIDIA/NemoClaw/actions/runs/31382319323 (run 31382319323, attempt 1)
Failed jobs: portable-launch (93435056045, https://github.com/NVIDIA/NemoClaw/actions/runs/31382319323/job/93435056045)
Signature: sandbox containers cannot reach
host.openshell.internal:8080through10.89.0.1; the portable contract uses169.254.1.2Scope: one root cause
Changes
docs/reference/commands.mdxanddocs/reference/troubleshooting.mdx.Type of Change
Quality Gates
Documentation Writer Review
docs-updateddocs/reference/commands.mdxanddocs/reference/troubleshooting.mdxagainst the implementation, tests, writing rules, and all generated agent variants. The pages distinguish portable Podman recovery from Docker UFW remediation and describe the user-scoped service and socket effects.DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.shdid not change.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailablenpx vitest run --project cli src/lib/onboard/gateway-sandbox-reachability.test.ts src/lib/onboard/gateway-sandbox-reachability-severity.test.ts— 53 tests passed;npm run checks:repository— passed with 0 source dependency cycles.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only) —npm run docspassed with 0 errors and 2 existing warnings.Signed-off-by: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit
New Features
Bug Fixes
Documentation