fix(onboard): announce and recover declared agent forward_ports - #5389
Conversation
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughRecovery now re-establishes every non-primary manifest-declared agent forward port during gateway-related sandbox recovery. Onboard output prints all non-primary declared ports (labeling API ports specially) with per-port forwarding URLs and ChangesAgent Forward Port Recovery and Announcement
Sequence Diagram(s)sequenceDiagram
participant checkAndRecoverSandboxProcesses
participant ensureDeclaredAgentForwardPortsHealthy
participant forwardHealthProbe
participant OpenShell
participant result
checkAndRecoverSandboxProcesses->>ensureDeclaredAgentForwardPortsHealthy: inspect active agent forward_ports
ensureDeclaredAgentForwardPortsHealthy->>forwardHealthProbe: probe each non-primary port
alt port missing or unhealthy
ensureDeclaredAgentForwardPortsHealthy->>OpenShell: forward start for port
OpenShell-->>ensureDeclaredAgentForwardPortsHealthy: forward started
end
ensureDeclaredAgentForwardPortsHealthy-->>checkAndRecoverSandboxProcesses: return true/false/null
checkAndRecoverSandboxProcesses->>result: include declaredForwardsRecovered in forwardRecovered
sequenceDiagram
participant printDashboardUi
participant printAdditionalForwardPorts
participant buildControlUiUrls
participant output
printDashboardUi->>printAdditionalForwardPorts: validate agent.forward_ports
printAdditionalForwardPorts->>buildControlUiUrls: generate per-port control UI URLs
buildControlUiUrls-->>printAdditionalForwardPorts: dashboard link(s)
alt port == agent.healthProbe.port
printAdditionalForwardPorts->>output: print "OpenAI-compatible API" block with URLs (/v1)
else
printAdditionalForwardPorts->>output: print "additional port" block with URLs
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes 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 |
PR Review AdvisorFindings: 0 needs attention, 1 worth checking, 0 nice ideas Review findings🛠️ Needs attention
🔎 Worth checking
🌱 Nice ideas
Consider writing more tests for
This is an automated advisory review. A human maintainer must make the final merge decision. |
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/actions/sandbox/process-recovery.ts`:
- Around line 434-476: The loop in ensureDeclaredAgentForwardPortsHealthy
currently only skips primaryPort but must also skip the optional Hermes web
dashboard port so it isn't redundantly managed; retrieve the Hermes dashboard
port using the same helper/logic used elsewhere for Hermes (the code path that
ensures Hermes' dashboard port, referenced by
ensureHermesDashboardPortForwardIfEnabled) for the given sandboxName (or call
the existing helper that returns that port) and add a check in the for loop to
continue when candidate === hermesDashboardPort; keep the other validations and
return behavior unchanged (use agentRuntime.getSessionAgent,
isSandboxPortForwardHealthy, and ensureSandboxPortForwardForPort as before).
🪄 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: a1496e13-5b2d-4780-aec5-0d0471e68f51
📒 Files selected for processing (4)
src/lib/actions/sandbox/process-recovery.tssrc/lib/agent/onboard.test.tssrc/lib/agent/onboard.tstest/process-recovery.test.ts
E2E Advisor RecommendationRequired E2E: Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
Vitest E2E Scenario RecommendationRequired Vitest E2E scenarios: None Full Vitest E2E advisor summaryVitest E2E Scenario AdvisorBase: Required Vitest E2E scenarios
Optional Vitest E2E scenarios
Relevant changed files
|
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
|
🌿 Preview your docs: https://nvidia-preview-pr-5389.docs.buildwithfern.com/nemoclaw |
…overage Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
## Summary Refreshes release-prep documentation for NemoClaw v0.0.65. Adds the v0.0.65 release-notes section and refreshes generated `nemoclaw-user-*` skills from the Fern MDX source docs. ## Changes - Added the v0.0.65 release notes to `docs/about/release-notes.mdx` with links to the deeper docs pages for lifecycle, troubleshooting, inference, CLI commands, messaging, credentials, network policy, Hermes, and sub-agents. - Regenerated the `nemoclaw-user-*` skills with `scripts/docs-to-skills.py` so release-prep skill output matches the merged source docs. - Used the v0.0.65 announcement discussion as release context: #5472. ## Source Summary - #2492 -> `docs/about/release-notes.mdx`: Documents deadline-based gateway wait reliability in the v0.0.65 recovery summary. - #4958 -> `docs/about/release-notes.mdx`: Documents re-execed OpenClaw gateway health check recovery in the sandbox recovery summary. - #5163 -> `docs/about/release-notes.mdx`: Documents safer uninstall TTY confirmation behavior in the day-two CLI summary. - #5178 -> `docs/about/release-notes.mdx`: Documents fail-closed config restore merge behavior in the rebuild and restore summary. - #5179 -> `docs/about/release-notes.mdx`: Documents WeChat QR token redaction in the messaging summary. - #5182 -> `docs/about/release-notes.mdx`: Documents sustained gateway serving checks in the recovery summary. - #5194 -> `docs/about/release-notes.mdx`: Documents model-router teardown during uninstall in the day-two CLI summary. - #5195 -> `docs/about/release-notes.mdx`: Documents Shields auto-restore lock reconfirmation in the rebuild and restore summary. - #5198 -> `docs/about/release-notes.mdx`: Documents Docker Desktop WSL CDI injection failure handling in the onboarding diagnostics summary. - #5201 -> `docs/about/release-notes.mdx`: Documents sandbox download/upload wrappers and sessions export in the day-two CLI summary. - #5205 -> `docs/about/release-notes.mdx`: Documents reporter-owned model metadata preservation in the rebuild and restore summary. - #5214 -> `docs/about/release-notes.mdx`: Documents managed vLLM model preflight before side effects in the inference setup summary. - #5215 -> `docs/about/release-notes.mdx`: Documents managed vLLM extra serve arguments in the inference setup summary. - #5216 -> `docs/about/release-notes.mdx`: Documents silent OpenClaw runtime fallback surfacing in the onboarding diagnostics summary. - #5225 -> `docs/about/release-notes.mdx`: Documents persisted sandbox gateway lookup in the gateway recovery summary. - #5238 -> `docs/about/release-notes.mdx`: Documents sub-agent gateway dial-back through the sandbox interface in the Hermes and sub-agent summary. - #5248 -> `docs/about/release-notes.mdx`: Documents Discord per-account proxy resolution in the messaging summary. - #5264 -> `docs/about/release-notes.mdx`: Documents reserved Hermes port `8642` handling in the Hermes compatibility summary. - #5267 -> `docs/about/release-notes.mdx`: Documents the narrower Hermes baseline policy in the Hermes compatibility summary. - #5321 -> `docs/about/release-notes.mdx`: Documents restored gateway guard chains in the gateway recovery summary. - #5328 -> `docs/about/release-notes.mdx`: Documents compact persisted messaging plans in the messaging summary. - #5338 -> `docs/about/release-notes.mdx`: Documents manifest channel migration in the messaging summary. - #5352 -> `docs/about/release-notes.mdx`: Documents persisted agent preservation through registry recovery in the rebuild and restore summary. - #5371 -> `.agents/skills/nemoclaw-user-reference/references/commands.md`: Refreshes generated skill output for custom build cache and layer-ordering source docs. - #5379 -> `docs/about/release-notes.mdx`: Documents dashboard port allocation across multiple NemoClaw gateways in the recovery summary. - #5382 -> `docs/about/release-notes.mdx`: Documents recovery when an active gateway has no sandbox spec in the recovery summary. - #5389 -> `.agents/skills/nemoclaw-user-reference/references/troubleshooting.md`: Refreshes generated skill output for declared agent `forward_ports` recovery source docs. - #5400 -> `docs/about/release-notes.mdx`: Documents bounded compatible endpoint probes in the inference setup summary. - #5410 -> `docs/about/release-notes.mdx`: Documents provider credential hash removal from sandbox registry entries in the messaging summary. - #5418 -> `docs/about/release-notes.mdx`: Documents summarized inference validation failures in the onboarding diagnostics summary. - #5457 -> `docs/about/release-notes.mdx`: Documents context-window recomputation after runtime model switches in the inference setup summary. - #5463 -> `docs/about/release-notes.mdx`: Documents cleanup of hard-coded messaging channel stragglers in the messaging summary. ## Skipped - #5366 matched `docs/.docs-skip` entries through skipped experimental paths, so this PR does not add new release-note text for that commit. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) ## Verification - [x] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes - [ ] Targeted tests pass for changed behavior - [ ] Full `npm test` passes (broad runtime changes only) - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `npm run docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) Verification notes: - `npm run docs` passed after rerunning outside the sandbox. Fern reported 0 errors and 1 hidden warning. - The first sandboxed `npm run docs` attempt failed before validation because `tsx` could not create its local IPC pipe under sandbox restrictions. - `npm run build:cli` passed before push to refresh the local `dist/` artifacts used by the CLI typecheck hook. - `npm test` was not run because this is a docs-only release refresh. --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Released NemoClaw v0.0.65 with improved gateway/sandbox recovery, safer day-two workflows, and enhanced Hermes compatibility. * Added managed vLLM extra-arguments configuration via `NEMOCLAW_VLLM_EXTRA_ARGS_JSON`. * Added Hermes troubleshooting guidance for port forwarding and health checks. * **Documentation** * Updated NVIDIA Endpoints/NIM setup and examples to use `NVIDIA_INFERENCE_API_KEY`. * Refined NVIDIA network policy and Model Router API base configuration. * Expanded CLI/environment variable documentation (including sub-agent gateway connectivity) and plugin build performance tips. * **Tests** * Expanded Vitest-backed E2E release validation coverage. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- patch-walker:action=sha256:4664592e4dabe18250a1e41ea73d7121d7ef19dd4cbc6c01bfe297c519a75974 --> <!-- patch-walker:manifest=sha256:95728f38d033eae61d4905337245c21043f166f5ef57eaac4908f89e2cc24d7f --> <!-- patch-walker:dependency=LangChain Deep Agents Code --> <!-- patch-walker:target=0.1.55 --> <!-- markdownlint-disable MD041 --> ## Summary Updates LangChain Deep Agents Code from 0.1.34 to 0.1.55 using the sealed NemoPin migration evidence. The implementation and requested-review fixes are complete; the PR is ready for maintainer re-review. <!-- 1-3 plain sentences: what changes and why. Describe before-and-after behavior when it applies. Follow the NemoClaw Writing Guide: https://github.com/NVIDIA/NemoClaw/blob/main/WRITING.md. Do not add unrelated prose cleanup. --> ## Related Issue No issue closure is claimed. <!-- Fixes #NNN or Closes #NNN. Remove this section if none. --> ## Changes\n\n- Keeps the dependency migration scoped to LangChain Deep Agents Code and its onboarding, validation, documentation, and managed-image checks.\n- Migrates the exact base `5bb69ed66947fbd2fab6133748866567eb520692` across 21 adjacent release ranges.\n- Changed paths: `.github/workflows/managed-images.yaml`, `agents/langchain-deepagents-code/Dockerfile`, `agents/langchain-deepagents-code/Dockerfile.base`, `agents/langchain-deepagents-code/dcode-wrapper.sh`, `agents/langchain-deepagents-code/dependency-review.md`, `agents/langchain-deepagents-code/manifest.yaml`, `agents/langchain-deepagents-code/patch-managed-deepagents-code.py`, `agents/langchain-deepagents-code/profile-plugin/pyproject.toml`, `agents/langchain-deepagents-code/profile-plugin/src/nemoclaw_deepagents_profile/__init__.py`, `agents/langchain-deepagents-code/progressive_tool_disclosure.py`, `agents/langchain-deepagents-code/requirements.in`, `agents/langchain-deepagents-code/requirements.lock`, `agents/langchain-deepagents-code/start.sh`, `agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py`, `agents/langchain-deepagents-code/validate-observability.py`, `agents/langchain-deepagents-code/validate-progressive-tool-disclosure.py`, `docs/deployment/set-up-mcp-bridge.mdx`, `docs/get-started/quickstart-langchain-deepagents-code.mdx`, `src/lib/actions/sandbox/rebuild-flow-helpers.test.ts`, `src/lib/agent/base-image.test.ts`, `src/lib/agent/deep-agents-code-base-image.test.ts`, `src/lib/agent/onboard-terminal-fixtures.test.ts`, `src/lib/agent/onboard-terminal-fixtures.ts`, `src/lib/agent/onboard-terminal.test.ts`, `src/lib/inference/onboard-probes.test.ts`, `src/lib/inference/onboard-probes.ts`, `src/lib/inference/openai-validation-session.ts`, `src/lib/onboard.ts`, `src/lib/onboard/created-sandbox-finalization.test.ts`, `src/lib/onboard/created-sandbox-finalization.ts`, `src/lib/onboard/dcode-selection-drift.test.ts`, `src/lib/onboard/dcode-selection-drift.ts`, `src/lib/onboard/inference-selection-validation.test.ts`, `src/lib/onboard/machine/handlers/sandbox-checkpoint-crash-recovery.test.ts`, `src/lib/onboard/machine/handlers/sandbox.ts`, `src/lib/onboard/sandbox-lifecycle.test.ts`, `src/lib/onboard/sandbox-lifecycle.ts`, `src/lib/sandbox-base-image-agent-resolution.test.ts`, `src/lib/sandbox-base-image-release-resolution.test.ts`, `src/lib/sandbox-base-image/resolution-key.test.ts`, `test/Dockerfile.dcode-profile-missing-dependencies`, `test/cli/connect-terminal-agent.test.ts`, `test/deepagents-code-tui-startup-check.test.ts`, `test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh`, `test/e2e/e2e-cloud-experimental/checks/04-deepagents-code-fresh-reonboard.sh`, `test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh`, `test/e2e/e2e-cloud-experimental/checks/12-deepagents-code-thread-auto-approval.sh`, `test/e2e/lib/select-authorized-chat-model.mts`, `test/e2e/live/mcp-bridge-servers.ts`, `test/e2e/support/authorized-chat-model-selection.test.ts`, `test/fixtures/deepagents-progressive-disclosure-harness.py`, `test/fixtures/langchain-deepagents-code/server.py`, `test/helpers/langchain-deepagents-code-patch-fixture.ts`, `test/helpers/managed-image-buildless-e2e.ts`, `test/issue-5667-hosted-inference-model-namespace.test.ts`, `test/langchain-deepagents-code-direct-module-patch.test.ts`, `test/langchain-deepagents-code-image.test.ts`, `test/langchain-deepagents-code-nemotron-profile-plugin.test.ts`, `test/langchain-deepagents-code-progressive-tool-disclosure.test.ts`, `test/managed-image-publication-workflow.test.ts`, `test/managed-image-staging-qa-workflow.test.ts`, `test/mcp-bridge-servers.test.ts`, `test/onboard-mcp-observability-redirect.test.ts`, `test/onboard-prepared-build-context.test.ts`, `test/onboard-terminal-dashboard.test.ts`\n\n### Release ranges | Range | Commits | State | Concerns | |---|---|---|---| | 0.1.34 → 0.1.35 | `bd9bafaad3f5` → `09daab5772ff` | published | 1 | | 0.1.35 → 0.1.36 | `09daab5772ff` → `2f56309d821d` | published | 1 | | 0.1.36 → 0.1.37 | `2f56309d821d` → `def6369aed1a` | published | 2 | | 0.1.37 → 0.1.38 | `def6369aed1a` → `4338671aa1d9` | published | 4 | | 0.1.38 → 0.1.39 | `4338671aa1d9` → `8eb909a59b82` | published | 1 | | 0.1.39 → 0.1.40 | `8eb909a59b82` → `019489edb9c0` | published | 6 | | 0.1.40 → 0.1.41 | `019489edb9c0` → `d46a2cb033b8` | published | 4 | | 0.1.41 → 0.1.42 | `d46a2cb033b8` → `18679a1a88a3` | published | 3 | | 0.1.42 → 0.1.43 | `18679a1a88a3` → `e14e0adcbe78` | published | 2 | | 0.1.43 → 0.1.44 | `e14e0adcbe78` → `2b9cd08f0492` | published | 5 | | 0.1.44 → 0.1.45 | `2b9cd08f0492` → `7794b61a6e76` | published | 4 | | 0.1.45 → 0.1.46 | `7794b61a6e76` → `efa86c51fedd` | published | 1 | | 0.1.46 → 0.1.47 | `efa86c51fedd` → `8aa29ddc2833` | published | 3 | | 0.1.47 → 0.1.48 | `8aa29ddc2833` → `803b8329db7d` | published | 3 | | 0.1.48 → 0.1.49 | `803b8329db7d` → `44910bc2ef3f` | published | 0 | | 0.1.49 → 0.1.50 | `44910bc2ef3f` → `63adb9645687` | published | 2 | | 0.1.50 → 0.1.51 | `63adb9645687` → `d2b663fca277` | published | 0 | | 0.1.51 → 0.1.52 | `d2b663fca277` → `b428644d31dd` | published | 3 | | 0.1.52 → 0.1.53 | `b428644d31dd` → `0bd15dc0e1c5` | published | 2 | | 0.1.53 → 0.1.54 | `0bd15dc0e1c5` → `81258067f4c7` | published | 0 | | 0.1.54 → 0.1.55 | `81258067f4c7` → `80fe3d3cbcd2` | published | 9 | ### Concern dispositions | Concern | Surface | Planned disposition | Failure prevented | Remaining gate | |---|---|---|---|---| | `langchain-deep-agents-code-0.1.34..0.1.35-lifecycle-state-1` | lifecycle state | test | 0.1.55 reports lifecycle state: ### Features - Added a `/context` usage report for inspecting context consumption ([#5407](langchain-ai/deepagents#5407... | none | | `langchain-deep-agents-code-0.1.35..0.1.36-lifecycle-state-1` | lifecycle state | test | 0.1.54 reports lifecycle state: ### Features - Added Meta `muse-spark-1.2` to the model switcher ([#5389](langchain-ai/deepagents#5389)). - Improved di... | none | | `langchain-deep-agents-code-0.1.36..0.1.37-lifecycle-state-1` | lifecycle state | test | 0.1.53 reports lifecycle state: ### Features - Added pricing coverage with Baseten built-in overrides and local fallback overrides when `genai-prices` is missing data ([#5312](h... | none | | `langchain-deep-agents-code-0.1.36..0.1.37-runtime-topology-2` | runtime topology | test | 0.1.53 reports runtime topology: ### Features - Added pricing coverage with Baseten built-in overrides and local fallback overrides when `genai-prices` is missing data ([#5312](... | none | | `langchain-deep-agents-code-0.1.37..0.1.38-compatibility-change-1` | compatibility change | test | 0.1.52 reports compatibility change: ### Features - Hooks v2 is now generally available, with support for loading hooks from installed plugins. ([#5307](https://github.com/langc... | none | | `langchain-deep-agents-code-0.1.37..0.1.38-configuration-2` | configuration | test | 0.1.52 reports configuration: ### Features - Hooks v2 is now generally available, with support for loading hooks from installed plugins. ([#5307](https://github.com/langchain-ai... | none | | `langchain-deep-agents-code-0.1.37..0.1.38-execution-control-3` | execution control | guard | 0.1.52 reports execution control: ### Features - Hooks v2 is now generally available, with support for loading hooks from installed plugins. ([#5307](https://github.com/langchai... | none | | `langchain-deep-agents-code-0.1.37..0.1.38-lifecycle-state-4` | lifecycle state | test | 0.1.52 reports lifecycle state: ### Features - Hooks v2 is now generally available, with support for loading hooks from installed plugins. ([#5307](https://github.com/langchain-... | none | | `langchain-deep-agents-code-0.1.38..0.1.39-configuration-1` | configuration | test | 0.1.51 reports configuration: ### Features - The status bar and usage view now show the running session cost. ([#5036](langchain-ai/deepagents#5036)) -... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-compatibility-change-1` | compatibility change | test | 0.1.50 reports compatibility change: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feed... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-execution-control-2` | execution control | guard | 0.1.50 reports execution control: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedbac... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-lifecycle-state-3` | lifecycle state | test | 0.1.50 reports lifecycle state: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedback ... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-packaging-artifact-4` | packaging artifact | test | 0.1.50 reports packaging artifact: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedba... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-runtime-topology-5` | runtime topology | test | 0.1.50 reports runtime topology: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedback... | none | | `langchain-deep-agents-code-0.1.39..0.1.40-security-identity-6` | security identity | guard | 0.1.50 reports security identity: ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedbac... | none | | `langchain-deep-agents-code-0.1.40..0.1.41-compatibility-change-1` | compatibility change | test | 0.1.49 reports compatibility change: ### Features - Added recognition for LangSmith Gateway credentials. ([#5042](langchain-ai/deepagents#5042)) - Adde... | none | | `langchain-deep-agents-code-0.1.40..0.1.41-execution-control-2` | execution control | guard | 0.1.49 reports execution control: ### Features - Added recognition for LangSmith Gateway credentials. ([#5042](langchain-ai/deepagents#5042)) - Added s... | none | | `langchain-deep-agents-code-0.1.40..0.1.41-lifecycle-state-3` | lifecycle state | test | 0.1.49 reports lifecycle state: ### Features - Added recognition for LangSmith Gateway credentials. ([#5042](langchain-ai/deepagents#5042)) - Added sla... | none | | `langchain-deep-agents-code-0.1.40..0.1.41-runtime-topology-4` | runtime topology | test | 0.1.49 reports runtime topology: ### Features - Added recognition for LangSmith Gateway credentials. ([#5042](langchain-ai/deepagents#5042)) - Added sl... | none | | `langchain-deep-agents-code-0.1.41..0.1.42-compatibility-change-1` | compatibility change | test | 0.1.48 reports compatibility change: ### Features - Added Fireworks `kimi-k3`, GLM-5.2-Fast, and Kimi-K3 to model selection and recommended models. ([#5082](https://github.com/l... | none | | `langchain-deep-agents-code-0.1.41..0.1.42-execution-control-2` | execution control | guard | 0.1.48 reports execution control: ### Features - Added Fireworks `kimi-k3`, GLM-5.2-Fast, and Kimi-K3 to model selection and recommended models. ([#5082](https://github.com/lang... | none | | `langchain-deep-agents-code-0.1.41..0.1.42-lifecycle-state-3` | lifecycle state | test | 0.1.48 reports lifecycle state: ### Features - Added Fireworks `kimi-k3`, GLM-5.2-Fast, and Kimi-K3 to model selection and recommended models. ([#5082](https://github.com/langch... | none | | `langchain-deep-agents-code-0.1.42..0.1.43-compatibility-change-1` | compatibility change | test | 0.1.47 reports compatibility change: ### Features - Added `yolo` mode to the `Shift+Tab` approval cycle ([#5035](langchain-ai/deepagents#5035)). - Show... | none | | `langchain-deep-agents-code-0.1.42..0.1.43-execution-control-2` | execution control | guard | 0.1.47 reports execution control: ### Features - Added `yolo` mode to the `Shift+Tab` approval cycle ([#5035](langchain-ai/deepagents#5035)). - Show th... | none | | `langchain-deep-agents-code-0.1.43..0.1.44-compatibility-change-1` | compatibility change | test | 0.1.46 reports compatibility change: ### Highlights - Auto mode is now generally available. [#4957](langchain-ai/deepagents#4957) - Added configurable ... | none | | `langchain-deep-agents-code-0.1.43..0.1.44-configuration-2` | configuration | test | 0.1.46 reports configuration: ### Highlights - Auto mode is now generally available. [#4957](langchain-ai/deepagents#4957) - Added configurable Auto go... | none | | `langchain-deep-agents-code-0.1.43..0.1.44-execution-control-3` | execution control | guard | 0.1.46 reports execution control: ### Highlights - Auto mode is now generally available. [#4957](langchain-ai/deepagents#4957) - Added configurable Aut... | none | | `langchain-deep-agents-code-0.1.43..0.1.44-protocol-schema-4` | protocol schema | test | 0.1.46 reports protocol schema: ### Highlights - Auto mode is now generally available. [#4957](langchain-ai/deepagents#4957) - Added configurable Auto ... | none | | `langchain-deep-agents-code-0.1.43..0.1.44-security-identity-5` | security identity | guard | 0.1.46 reports security identity: ### Highlights - Auto mode is now generally available. [#4957](langchain-ai/deepagents#4957) - Added configurable Aut... | none | | `langchain-deep-agents-code-0.1.44..0.1.45-compatibility-change-1` | compatibility change | test | 0.1.45 reports compatibility change: ### Features - Added the Hooks v2 execution engine and typed hooks data models ([#4880](langchain-ai/deepagents#48... | none | | `langchain-deep-agents-code-0.1.44..0.1.45-execution-control-2` | execution control | guard | 0.1.45 reports execution control: ### Features - Added the Hooks v2 execution engine and typed hooks data models ([#4880](langchain-ai/deepagents#4880)... | none | | `langchain-deep-agents-code-0.1.44..0.1.45-lifecycle-state-3` | lifecycle state | test | 0.1.45 reports lifecycle state: ### Features - Added the Hooks v2 execution engine and typed hooks data models ([#4880](langchain-ai/deepagents#4880), ... | none | | `langchain-deep-agents-code-0.1.44..0.1.45-packaging-artifact-4` | packaging artifact | test | 0.1.45 reports packaging artifact: ### Features - Added the Hooks v2 execution engine and typed hooks data models ([#4880](langchain-ai/deepagents#4880... | none | | `langchain-deep-agents-code-0.1.45..0.1.46-runtime-topology-1` | runtime topology | test | 0.1.44 reports runtime topology: ### Bug Fixes - Improved approval handling by hiding the `Auto` option when it isn't eligible and moving Auto mode path checks off the event loo... | none | | `langchain-deep-agents-code-0.1.46..0.1.47-compatibility-change-1` | compatibility change | test | 0.1.43 reports compatibility change: ### Features - Added classifier-backed Auto approval mode behind `DEEPAGENTS_CODE_EXPERIMENTAL=1` ([#4804](https://github.com/langchain-ai/d... | none | | `langchain-deep-agents-code-0.1.46..0.1.47-execution-control-2` | execution control | guard | 0.1.43 reports execution control: ### Features - Added classifier-backed Auto approval mode behind `DEEPAGENTS_CODE_EXPERIMENTAL=1` ([#4804](https://github.com/langchain-ai/deep... | none | | `langchain-deep-agents-code-0.1.46..0.1.47-lifecycle-state-3` | lifecycle state | test | 0.1.43 reports lifecycle state: ### Features - Added classifier-backed Auto approval mode behind `DEEPAGENTS_CODE_EXPERIMENTAL=1` ([#4804](https://github.com/langchain-ai/deepag... | none | | `langchain-deep-agents-code-0.1.47..0.1.48-compatibility-change-1` | compatibility change | test | 0.1.42 reports compatibility change: ### Features - Plugins are now generally available. ([#4797](langchain-ai/deepagents#4797)) - Added search to the ... | none | | `langchain-deep-agents-code-0.1.47..0.1.48-execution-control-2` | execution control | guard | 0.1.42 reports execution control: ### Features - Plugins are now generally available. ([#4797](langchain-ai/deepagents#4797)) - Added search to the plu... | none | | `langchain-deep-agents-code-0.1.47..0.1.48-lifecycle-state-3` | lifecycle state | test | 0.1.42 reports lifecycle state: ### Features - Plugins are now generally available. ([#4797](langchain-ai/deepagents#4797)) - Added search to the plugi... | none | | `langchain-deep-agents-code-0.1.49..0.1.50-compatibility-change-1` | compatibility change | test | 0.1.40 reports compatibility change: ### Features - Added plugin marketplace support ([#4554](langchain-ai/deepagents#4554)). - Added an “always allow”... | none | | `langchain-deep-agents-code-0.1.49..0.1.50-execution-control-2` | execution control | guard | 0.1.40 reports execution control: ### Features - Added plugin marketplace support ([#4554](langchain-ai/deepagents#4554)). - Added an “always allow” op... | none | | `langchain-deep-agents-code-0.1.51..0.1.52-compatibility-change-1` | compatibility change | test | 0.1.38 reports compatibility change: ### Features * Improve `/goal` criteria UX ([#4694](langchain-ai/deepagents#4694)) ([06f46ff](https://github.com/l... | none | | `langchain-deep-agents-code-0.1.51..0.1.52-configuration-2` | configuration | test | 0.1.38 reports configuration: ### Features * Improve `/goal` criteria UX ([#4694](langchain-ai/deepagents#4694)) ([06f46ff](https://github.com/langchai... | none | | `langchain-deep-agents-code-0.1.51..0.1.52-lifecycle-state-3` | lifecycle state | test | 0.1.38 reports lifecycle state: ### Features * Improve `/goal` criteria UX ([#4694](langchain-ai/deepagents#4694)) ([06f46ff](https://github.com/langch... | none | | `langchain-deep-agents-code-0.1.52..0.1.53-configuration-1` | configuration | test | 0.1.37 reports configuration: ### Features * Add Meta model provider ([#4650](langchain-ai/deepagents#4650)) ([70829c5](https://github.com/langchain-ai... | none | | `langchain-deep-agents-code-0.1.52..0.1.53-security-identity-2` | security identity | guard | 0.1.37 reports security identity: ### Features * Add Meta model provider ([#4650](langchain-ai/deepagents#4650)) ([70829c5](https://github.com/langchai... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-compatibility-change-1` | compatibility change | test | 0.1.35 reports compatibility change: ### Features * Restore interrupted prompt to input on ESC ([#4544](langchain-ai/deepagents#4544)) ([fccf037](https... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-configuration-2` | configuration | test | 0.1.35 reports configuration: ### Features * Restore interrupted prompt to input on ESC ([#4544](langchain-ai/deepagents#4544)) ([fccf037](https://gith... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-execution-control-3` | execution control | guard | 0.1.35 reports execution control: ### Features * Restore interrupted prompt to input on ESC ([#4544](langchain-ai/deepagents#4544)) ([fccf037](https://... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-lifecycle-state-4` | lifecycle state | test | 0.1.35 reports lifecycle state: ### Features * Restore interrupted prompt to input on ESC ([#4544](langchain-ai/deepagents#4544)) ([fccf037](https://gi... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-protocol-schema-5` | protocol schema | test | 0.1.35 reports protocol schema: ### Features * Restore interrupted prompt to input on ESC ([#4544](langchain-ai/deepagents#4544)) ([fccf037](https://gi... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-code-impact-configuration-1` | mapped configuration | test | The exact-ref diff reports configuration changes in .pre-commit-config.yaml, libs/acp/deepagents_acp/server.py, libs/acp/tests/test_agent.py. Mapped NemoClaw examples: src/lib/a... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-code-impact-contract-or-schema-2` | mapped contract or schema | test | The exact-ref diff reports contract or schema changes in libs/acp/deepagents_acp/_version.py, libs/acp/deepagents_acp/server.py, libs/code/deepagents_code/_ask_user_types.py. Ma... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-code-impact-security-3` | mapped security | test | The exact-ref diff reports security changes in libs/code/deepagents_code/_cli_context.py, libs/code/deepagents_code/_env_vars.py, libs/code/deepagents_code/_repository_bounds.py... | none | | `langchain-deep-agents-code-0.1.54..0.1.55-code-impact-test-4` | mapped test | test | The exact-ref diff reports test changes in libs/acp/tests/chat_model.py, libs/acp/tests/test_agent.py, libs/code/tests/integration_tests/benchmarks/test_local_context_benchmarks... | none | ### Immutable artifacts | Artifact | SHA-256 | |---|---| | deepagents_code-0.1.55-py3-none-any.whl | `3a0d3e332f132d0e…` | | deepagents_code-0.1.55.tar.gz | `91c30b62cb96d5e8…` | ### Validation receipt | Gate | Current result | |---|---| | targeted | Pass — 130 affected local tests, commit hooks, growth guardrails, and pre-push typechecks passed on the unchanged PR patch now at `78268b19e` | | full-e2e | In progress on the latest PR commit — all required checks pass; three non-required managed-image jobs are still running | <!-- List concrete changes. If this adds an abstraction, configuration, fallback, migration, or compatibility path, name its current requirement and consumer, explain why a direct change is insufficient, and identify the test that protects it. --> ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — CodeRabbit completed successfully on the unchanged PR patch and all inline review threads are resolved; human re-review remains requested. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: `docs/deployment/set-up-mcp-bridge.mdx` and `docs/get-started/quickstart-langchain-deepagents-code.mdx` accurately document the changed Deep Agents Code behavior and versions. The documented deepagents-code 0.1.55 and deepagents 0.7.5 versions match the manifest, inputs, lockfile, and profile plugin. `npm run docs` passed with 0 errors and two pre-existing Fern warnings. - Agent: Codex Desktop <!-- docs-review-head-sha: 78268b1 --> <!-- docs-review-agents-blob-sha: e30afb2 --> ## DGX Station Hardware Evidence <!-- Required only when scripts/prepare-dgx-station-host.sh changes. Maintainers must review the linked evidence before approving or merging. This is human-reviewed evidence, not authenticated hardware provenance. Exceptional bypasses use existing repository governance and must be documented on the PR. --> - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification <!-- Check each applicable item only when supported by the requested evidence. Run targeted tests once per relevant change set and rerun after later edits or hook autofixes that can affect the tested behavior. Do not rerun hook-covered checks. --> - [x] PR description includes a `Signed-off-by:` line and all 81 commits appear as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed on the unchanged PR patch now at `78268b19e` - [x] Targeted behavior tests pass for the current change set — affected local suites: 130/130; growth guardrails passed - [ ] Applicable broad gate passed — all required GitHub checks pass; non-required managed-image validation is still in progress - [x] Quality Gates section completed with required justifications - [x] No secrets, API keys, or credentials committed; gitleaks passed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- <!-- DCO sign-off is required in this PR description, and every commit must appear as Verified in GitHub. Run: git config user.name && git config user.email --> Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> <!-- patch-walker-status:start --> ## NemoPatch latest PR commit status - Status: **ready for maintainer re-review** - Latest PR commit: `78268b19e8229ffbc2a0591ad310caf96aab7fa6` - Checked: 2026-08-19T19:39:34Z - Merge: GitHub reports **MERGEABLE**; the local patch check against current `upstream/main` is clean. - Review: all 8 inline review threads are resolved and no new review finding was posted for the unchanged patch. Human approval remains required. - CI: all required checks pass. Three broader non-required managed-image jobs are still running with no deterministic failure at this check. - External advisor infrastructure: GPT-5.6 Terra and Nemotron 3 Ultra failed with `investigate omitted required analysis`; the trusted publisher reports 0 blockers, 0 warnings, 0 suggestions, and no follow-up needed. <!-- patch-walker-status:end --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Upgraded Deep Agents Code support to 0.1.55 and Deep Agents to 0.7.5. * Expanded approval controls with manual, automatic, startup, and YOLO modes. * Tool search and discovery now include registered tools across agents and subagents. * Added gateway-aware sandbox operations and authorized chat-model selection during onboarding. * **Bug Fixes** * Improved sandbox crash recovery and identity detection. * Strengthened MCP result validation and protected private inference endpoints. * **Documentation** * Updated setup and quickstart guidance for supported versions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Signed-off-by: Prekshiv <prekshiv@nvidia.com>
Summary
Hermes onboard declares
forward_ports: [18789, 8642]but the dashboard summary only printed the primary port and process recovery only re-established the primary forward. After the OpenShell gateway restarted during policy-preset apply, the secondary OpenAI-compatible API forward on port 8642 was silently dropped and never restored.Related Issue
Fixes #5206
Changes
printDashboardUinow walksagent.forward_portsand emits a labelled block per non-primary entry.checkAndRecoverSandboxProcessesnow invokes a newensureDeclaredAgentForwardPortsHealthyhelper in all three branches.Type of Change
Verification
npx prek run --all-filespassesnpm testpassesnpm run docsbuilds without warnings (doc changes only)Signed-off-by: Tinson Lai tinsonl@nvidia.com
Summary by CodeRabbit
New Features
Tests
Documentation