Skip to content

fix(dcode): consume released Nemotron Ultra profile#6416

Merged
apurvvkumaria merged 18 commits into
mainfrom
fix/dcode-nemotron-ultra-harness
Jul 8, 2026
Merged

fix(dcode): consume released Nemotron Ultra profile#6416
apurvvkumaria merged 18 commits into
mainfrom
fix/dcode-nemotron-ultra-harness

Conversation

@ericksoa

@ericksoa ericksoa commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Consume the official Nemotron 3 Ultra profile from deepagents-code[nvidia]==0.1.34, which pins deepagents==0.7.0a6. This keeps the managed model IDs and public behavior unchanged while preserving the optional first-run name prompt and suppressed dependency/model pickers from #6410 and #6418.

Changes

  • Pin deepagents-code[nvidia]==0.1.34 and deepagents==0.7.0a6; regenerate the hash-locked dependency set with only langchain-google-genai moving from 4.2.6 to 4.2.7.
  • Remove the temporary profile source and license wiring, then retain an atomic, idempotent, fail-closed alias bridge for openai:nvidia/nemotron-3-ultra-550b-a55b and openai:nvidia/nvidia/nemotron-3-ultra.
  • Bind removal of that bridge to its exact DCode/Deep Agents version-and-hash gate in dependency-review.md; this PR intentionally does not create a separate follow-up issue.
  • Port the managed DCode hardening patch to the 0.1.34 package layout and direct-return MCP loader while preserving JSON diagnostics and the fix(dcode): allow first-run name prompt while suppressing model picker #6418 launch overrides.
  • Preserve current main's backend-neutral Relay observability middleware and validation while composing it with the released DCode layout and Ultra profile.
  • Validate the official wheels, all 12 native middleware entries, unrelated-model isolation, complete graph compilation, and equivalent single-dispatch behavior for parser-repaired and native execute calls.
  • Update the DCode documentation and cloud acceptance checks for the released versions, native profile, TUI startup behavior, and direct/login-shell inference.

Type of Change

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

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: cv's deterministic TUI contract is implemented and passed exact-head server acceptance; cv also waived a separate bridge-removal issue and accepted the trusted-apt warning as nonblocking; those two reviewed surfaces are byte-unchanged by the final main merge
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Verification

  • PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable — normal hooks and npm run check:diff passed
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — the merged 141-package official-wheel stack passed Ultra, graph/dispatch, progressive-disclosure, and Relay validators in normal and optimized Python; profile patch 12/12, direct module 34 passed/1 Linux-only skip, progressive disclosure 17/17, image 75/75, observability 4/4, TUI 19/19, and focused E2E-support suites passed; repository checks, typecheck, docs, test-size, and pip-audit passed
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — all exact-head Linux CI and ubuntu-repo-cloud-langchain-deepagents-code passed for 439ffb41271a7d73d7299991a381f45fa94454f8; server checks passed Ultra 1/1, inference 10/10, TUI 4/4, and OTLP observability/containment 11/11
  • Quality Gates section completed with required justifications or waivers — 41 applicable exact-head checks passed; cv recorded the two advisor dispositions linked above
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only) — passed with 0 errors and 2 existing repository warnings
  • Doc pages follow the style guide (doc changes only); npm run docs:sync-agent-variants passed
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Aaron Erickson aerickson@nvidia.com

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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
📝 Walkthrough

Walkthrough

Adds Nemotron Ultra patch and validation scripts, wires them into the image build and e2e checks, and updates Deep Agents Code to 0.1.34 with matching package paths, fixtures, docs, and version expectations.

Changes

Nemotron 3 Ultra profile backport

Layer / File(s) Summary
Patch and validate scripts
agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py
Adds the Nemotron Ultra patcher and validator scripts, including version checks, bootstrap patching, profile validation, and dispatch-parity checks.
Build wiring and docs
agents/langchain-deepagents-code/Dockerfile, agents/langchain-deepagents-code/dependency-review.md, agents/langchain-deepagents-code/manifest.yaml, agents/langchain-deepagents-code/requirements.in, agents/langchain-deepagents-code/validate-progressive-tool-disclosure.py, docs/get-started/quickstart-langchain-deepagents-code.mdx, docs/deployment/set-up-mcp-bridge.mdx, test/e2e/live/cloud-experimental-check-list.ts, .github/workflows/e2e.yaml, test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts, tools/e2e/workflow-boundary.mts
Copies and runs the new scripts in the image build, refreshes dependency-review metadata and pins, documents the managed profile behavior and onboarding requirements, and adds the host-dependency workflow step.
E2E contract checks
test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh, test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh, test/e2e/support/platform-parity-cloud-experimental.test.ts, test/deepagents-code-tui-startup-check.test.ts
Adds the sandbox profile contract check, updates the TUI readiness flow, and extends parity and readiness assertions for the new script.
Image and patcher tests
test/langchain-deepagents-code-image.test.ts, test/langchain-deepagents-code-nemotron-profile-patch.test.ts
Updates Dockerfile contract coverage and adds fixture-based positive-path, idempotency, and fail-closed tests for the patcher/validator pair.

Deep Agents Code 0.1.34 upgrade

Layer / File(s) Summary
Managed patch script and loader
agents/langchain-deepagents-code/patch-managed-deepagents-code.py, test/fixtures/langchain-deepagents-code/mcp_tools.py
Updates the managed patcher’s version gate, module path mapping, and embedded MCP config loader behavior.
Fixture helpers and module-layout tests
test/helpers/darwin-fcntl-seal-fixture.ts, test/langchain-deepagents-code-direct-module-patch.test.ts, test/langchain-deepagents-code-progressive-tool-disclosure.test.ts
Refactors the test fixtures for the new client and tui package layout, adds shared Darwin fcntl seal helpers, and updates MCP JSON error assertions.
Version propagation across onboarding and runtime checks
agents/langchain-deepagents-code/dcode-wrapper.sh, src/lib/actions/sandbox/rebuild-flow-helpers.test.ts, src/lib/agent/defs.test.ts, src/lib/agent/onboard-terminal-fixtures.ts, src/lib/agent/onboard-terminal-fixtures.test.ts, src/lib/agent/onboard-terminal.test.ts, test/cli/connect-terminal-agent.test.ts, test/issue-5667-hosted-inference-model-namespace.test.ts
Updates expected deepagents-code and dcode version strings across onboarding flows, terminal fixtures, CLI tests, and related comments.
Startup readiness and onboarding
test/deepagents-code-tui-startup-check.test.ts, test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh
Aligns the startup/readiness harness with Select Agent readiness, onboarding detection, and optional name-prompt handling.

Estimated code review effort: 4 (Complex) | ~60 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main change: consuming the released Nemotron Ultra profile for DCode.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/dcode-nemotron-ultra-harness

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

@github-code-quality

github-code-quality Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the branch is 96%. Coverage data for the branch is not yet available.

Show a code coverage summary of the most covered files.
File 439ffb4 +/-
nemoclaw/src/se...cret-scanner.ts 100%
nemoclaw/src/commands/slash.ts 100%
nemoclaw/src/li...bprocess-env.ts 100%
nemoclaw/src/bl...eprint/state.ts 98%
nemoclaw/src/onboard/config.ts 98%
nemoclaw/src/bl...int/snapshot.ts 97%
nemoclaw/src/bl...print/runner.ts 95%
nemoclaw/src/co...ration-state.ts 94%
nemoclaw/src/bl...ate-networks.ts 94%
nemoclaw/src/index.ts 94%

TypeScript / code-coverage/cli

The overall coverage in the branch is 76%. Coverage data for the branch is not yet available.

Show a code coverage summary of the most covered files.
File 439ffb4 +/-
src/lib/onboard/preflight.ts 82%
src/lib/state/o...oard-session.ts 82%
src/lib/actions...all/run-plan.ts 81%
src/lib/actions...licy-channel.ts 79%
src/lib/actions...box/snapshot.ts 79%
src/lib/state/sandbox.ts 75%
src/lib/onboard...er-gpu-patch.ts 69%
src/lib/policy/index.ts 65%
src/lib/shields/index.ts 61%
src/lib/onboard.ts 28%

Updated July 08, 2026 00:43 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Comment thread agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py Fixed
Comment thread agents/langchain-deepagents-code/nemotron-ultra-harness-profile.py Fixed
Comment thread agents/langchain-deepagents-code/nemotron-ultra-harness-profile.py Fixed
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: ubuntu-repo-cloud-langchain-deepagents-code, mcp-bridge, cloud-onboard
Optional E2E: cloud-onboard, docs-validation

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • ubuntu-repo-cloud-langchain-deepagents-code (high): Required because the PR changes the Deep Agents Code managed image, dependency lock, manifest version, wrapper, managed patching, Nemotron hosted-inference profile aliasing, and live DCode checks. This registry target onboards a real DCode sandbox, validates smoke/inference/terminal-agent/deepagents-code-policy suites, runs the new cloud-experimental checks, and exercises the DCode invalid-credential rebuild lifecycle.
  • mcp-bridge (high): Required because the DCode managed runtime patch changes MCP config loading and server launch integration while the PR also updates MCP bridge docs and fixtures. The existing MCP bridge live job covers authenticated MCP add/status/restart/credential-rotation/rebuild/remove, credential non-leakage, adapter DNS rebinding denial, and real Deep Agents Code MCP tool calls.
  • cloud-onboard (high): Changed onboard, trace timing, scorecard, or E2E workflow code can affect cloud onboard wall-clock behavior and should refresh the trusted cloud-onboard trace timing signal.

Optional E2E

  • cloud-onboard (high): Optional confidence check because new shared cloud-experimental shell checks are added under the directory that the generic cloud-onboard job enumerates. The primary runtime risk is covered by the typed DCode target, but this verifies the public hosted-onboard OpenClaw path still handles the added DCode-specific skip guards cleanly.
  • docs-validation (low): Optional because deployment and quickstart docs changed. This is not runtime-blocking for the image/dependency change, but it can catch stale commands or generated agent-variant documentation issues.

New E2E recommendations

  • Deep Agents Code MCP bridge (medium): Existing coverage is the full mcp-bridge matrix across OpenClaw, Hermes, and Deep Agents Code. A PR like this only needs the Deep Agents Code adapter path, but there is no existing dedicated DCode-only MCP bridge job to reduce cost while still covering credential/network-policy boundaries.
    • Suggested test: Add a selectable Deep Agents Code MCP bridge live job or target that runs only the langchain-deepagents-code scenario from test/e2e/live/mcp-bridge.test.ts.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Recommendation

Required E2E targets: e2e-all
Optional E2E targets: None

Dispatch required E2E targets:

  • gh workflow run e2e.yaml --ref <pr-head-ref>

Workflow run

Full E2E target advisor summary

E2E Target Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E targets

  • e2e-all: The PR changes the canonical E2E target workflow machinery in .github/workflows/e2e.yaml, including host dependency setup for a live matrix target. It also changes target-relevant Deep Agents Code image/manifest/runtime assets and E2E cloud-experimental checks/support. Per policy, shared E2E target workflow machinery changes require the full E2E target fan-out.
    • Dispatch: gh workflow run e2e.yaml --ref <pr-head-ref>

Optional E2E targets

  • None.

Relevant changed files

  • .github/workflows/e2e.yaml
  • agents/langchain-deepagents-code/Dockerfile
  • 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/patch-nemotron-ultra-profile.py
  • agents/langchain-deepagents-code/requirements.in
  • agents/langchain-deepagents-code/requirements.lock
  • agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py
  • agents/langchain-deepagents-code/validate-progressive-tool-disclosure.py
  • test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh
  • test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh
  • test/e2e/live/cloud-experimental-check-list.ts
  • test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts
  • test/e2e/support/platform-parity-cloud-experimental.test.ts
  • tools/e2e/workflow-boundary.mts

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Changes requested

Merge posture: Do not merge yet
Primary next action: Resolve or justify PRA-1: Source-of-truth review needed: DCode TUI host dependency install in `.github/workflows/e2e.yaml`.
Open items: 0 required · 2 warnings · 0 suggestions · 3 test follow-ups
Since last review: 0 prior items resolved · 1 still applies · 0 new items found

Action checklist

  • PRA-1 Resolve or justify: Source-of-truth review needed: DCode TUI host dependency install in `.github/workflows/e2e.yaml`
  • PRA-2 Resolve or justify: Trusted workflow installs mutable apt content as root without an enforced pin/rationale boundary in .github/workflows/e2e.yaml:344
  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
  • PRA-T3 Add or justify test follow-up: DCode TUI host dependency install in `.github/workflows/e2e.yaml`

Findings index

ID Severity Category Location Required action
PRA-1 Resolve/justify architecture Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
PRA-2 Resolve/justify security .github/workflows/e2e.yaml:344 Either pin the `expect` package version used by the hosted runner, or add a structured approved trusted-apt rationale marker that `validateE2eWorkflowBoundary` enforces for this host-dependency step. Keep the existing target scoping and exact package allowlist checks.
Review findings by urgency: 0 required fixes, 2 items to resolve/justify, 0 in-scope improvements

⚠️ Resolve or justify before merge

Investigate these in the current review; either fix them, explain why they are not applicable, or document the accepted risk.

PRA-1 Resolve/justify — Source-of-truth review needed: DCode TUI host dependency install in `.github/workflows/e2e.yaml`

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: Current workflow-boundary tests pin target scoping, order, retry fragments, and package allowlist, but do not pin or enforce the mutable apt trust decision.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: The workflow has source-of-truth comments, but `validateInlineHostDependencyInstall` accepts the unpinned `expect` install and the only changed test mutates the package list. This is covered by the security finding.

PRA-2 Resolve/justify — Trusted workflow installs mutable apt content as root without an enforced pin/rationale boundary

  • Location: .github/workflows/e2e.yaml:344
  • Category: security
  • Problem: The live E2E job installs the DCode TUI host dependency with `sudo apt-get update` followed by `sudo apt-get install -y --no-install-recommends expect`. The step is scoped to the typed DCode target and `tools/e2e/workflow-boundary.mts` enforces inline YAML, retry fragments, order, condition, and the exact package allowlist, but it still accepts the unpinned package line and does not enforce either an `expect=<version>` pin or an approved mutable-apt rationale marker. The current comments document the workaround, but the validator/test suite does not make that source-of-truth decision durable.
  • Impact: A compromised, unexpectedly changed, or repository-inconsistent Ubuntu apt package can execute maintainer scripts as root on the trusted GitHub-hosted runner before the PR-controlled check runs. This is CI-runner risk rather than a direct production sandbox escape, but it expands a security-sensitive trusted-code boundary and can silently regress because the boundary tests only reject package-list drift.
  • Recommended action: Either pin the `expect` package version used by the hosted runner, or add a structured approved trusted-apt rationale marker that `validateE2eWorkflowBoundary` enforces for this host-dependency step. Keep the existing target scoping and exact package allowlist checks.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read `.github/workflows/e2e.yaml` around `Install Deep Agents Code TUI host dependencies`, then read `tools/e2e/workflow-boundary.mts` in `validateInlineHostDependencyInstall`; confirm the install line uses `expect=<version>` or the validator requires an explicit approved trusted-apt rationale marker instead of accepting only `sudo apt-get install -y --no-install-recommends expect`.
  • Missing regression test: Extend `test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts` with a fixture mutation where the DCode TUI host-dependency step installs unpinned `expect` and lacks the approved trusted-apt rationale marker, and assert `validateE2eWorkflowBoundary` rejects it; include a positive fixture for the chosen pin/rationale form and keep the existing package-list drift case.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read `.github/workflows/e2e.yaml` around `Install Deep Agents Code TUI host dependencies`, then read `tools/e2e/workflow-boundary.mts` in `validateInlineHostDependencyInstall`; confirm the install line uses `expect=<version>` or the validator requires an explicit approved trusted-apt rationale marker instead of accepting only `sudo apt-get install -y --no-install-recommends expect`.
  • Evidence: `.github/workflows/e2e.yaml` adds the root apt install step. `tools/e2e/workflow-boundary.mts` `validateInlineHostDependencyInstall` builds `expectedInstall` as `sudo apt-get install -y --no-install-recommends ${expectedPackages.join(" ")}` and the live validator passes `['expect']`. `test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts` only mutates the package list by appending `curl`.

💡 In-scope improvements

These are lower-risk, not throwaway. Prefer fixing them in this PR when they are local to changed code; defer only with rationale or a linked follow-up.

  • None.
Test follow-ups to resolve or justify

If these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.

  • PRA-T1 Runtime validation — Workflow boundary rejects the DCode TUI host-dependency step when `expect` is unpinned and the approved trusted-apt rationale marker is absent. The PR changes runtime/sandbox/infrastructure surfaces: workflow host setup, Docker image layering, third-party site-packages mutation, DCode managed inference profile selection, MCP loader patching, and TUI behavior. The diff adds substantial targeted unit, direct-module, image-contract, build-time validator, and E2E shell coverage; the remaining gap is specifically enforcing the trusted apt pin/rationale decision.
  • PRA-T2 Runtime validation — Workflow boundary accepts only the chosen safe form for the DCode TUI host-dependency step: either `expect=<version>` or the exact approved trusted-apt rationale marker, while still rejecting package-list drift. The PR changes runtime/sandbox/infrastructure surfaces: workflow host setup, Docker image layering, third-party site-packages mutation, DCode managed inference profile selection, MCP loader patching, and TUI behavior. The diff adds substantial targeted unit, direct-module, image-contract, build-time validator, and E2E shell coverage; the remaining gap is specifically enforcing the trusted apt pin/rationale decision.
  • PRA-T3 DCode TUI host dependency install in `.github/workflows/e2e.yaml` — Current workflow-boundary tests pin target scoping, order, retry fragments, and package allowlist, but do not pin or enforce the mutable apt trust decision.. The workflow has source-of-truth comments, but `validateInlineHostDependencyInstall` accepts the unpinned `expect` install and the only changed test mutates the package list. This is covered by the security finding.
Since last review details

Current findings, using the urgency labels above:

PRA-1 Resolve/justify — Source-of-truth review needed: DCode TUI host dependency install in `.github/workflows/e2e.yaml`

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: Current workflow-boundary tests pin target scoping, order, retry fragments, and package allowlist, but do not pin or enforce the mutable apt trust decision.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: The workflow has source-of-truth comments, but `validateInlineHostDependencyInstall` accepts the unpinned `expect` install and the only changed test mutates the package list. This is covered by the security finding.

PRA-2 Resolve/justify — Trusted workflow installs mutable apt content as root without an enforced pin/rationale boundary

  • Location: .github/workflows/e2e.yaml:344
  • Category: security
  • Problem: The live E2E job installs the DCode TUI host dependency with `sudo apt-get update` followed by `sudo apt-get install -y --no-install-recommends expect`. The step is scoped to the typed DCode target and `tools/e2e/workflow-boundary.mts` enforces inline YAML, retry fragments, order, condition, and the exact package allowlist, but it still accepts the unpinned package line and does not enforce either an `expect=<version>` pin or an approved mutable-apt rationale marker. The current comments document the workaround, but the validator/test suite does not make that source-of-truth decision durable.
  • Impact: A compromised, unexpectedly changed, or repository-inconsistent Ubuntu apt package can execute maintainer scripts as root on the trusted GitHub-hosted runner before the PR-controlled check runs. This is CI-runner risk rather than a direct production sandbox escape, but it expands a security-sensitive trusted-code boundary and can silently regress because the boundary tests only reject package-list drift.
  • Recommended action: Either pin the `expect` package version used by the hosted runner, or add a structured approved trusted-apt rationale marker that `validateE2eWorkflowBoundary` enforces for this host-dependency step. Keep the existing target scoping and exact package allowlist checks.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read `.github/workflows/e2e.yaml` around `Install Deep Agents Code TUI host dependencies`, then read `tools/e2e/workflow-boundary.mts` in `validateInlineHostDependencyInstall`; confirm the install line uses `expect=<version>` or the validator requires an explicit approved trusted-apt rationale marker instead of accepting only `sudo apt-get install -y --no-install-recommends expect`.
  • Missing regression test: Extend `test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts` with a fixture mutation where the DCode TUI host-dependency step installs unpinned `expect` and lacks the approved trusted-apt rationale marker, and assert `validateE2eWorkflowBoundary` rejects it; include a positive fixture for the chosen pin/rationale form and keep the existing package-list drift case.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read `.github/workflows/e2e.yaml` around `Install Deep Agents Code TUI host dependencies`, then read `tools/e2e/workflow-boundary.mts` in `validateInlineHostDependencyInstall`; confirm the install line uses `expect=<version>` or the validator requires an explicit approved trusted-apt rationale marker instead of accepting only `sudo apt-get install -y --no-install-recommends expect`.
  • Evidence: `.github/workflows/e2e.yaml` adds the root apt install step. `tools/e2e/workflow-boundary.mts` `validateInlineHostDependencyInstall` builds `expectedInstall` as `sudo apt-get install -y --no-install-recommends ${expectedPackages.join(" ")}` and the live validator passes `['expect']`. `test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts` only mutates the package list by appending `curl`.

Workflow run details

This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor (Nemotron Ultra) — Changes requested

Merge posture: Do not merge yet
Primary next action: Fix PRA-2: Missing GitHub tracking issue or explicit maintainer-override for Nemotron alias bridge removal accountability; then add or justify PRA-T1.
Open items: 1 required · 5 warnings · 5 suggestions · 8 test follow-ups
Since last review: 2 prior items resolved · 4 still apply · 4 new items found

Action checklist

  • PRA-2 Fix: Missing GitHub tracking issue or explicit maintainer-override for Nemotron alias bridge removal accountability in agents/langchain-deepagents-code/dependency-review.md:75
  • PRA-1 Resolve or justify: Source-of-truth review needed: dependency-review.md (process accountability + pre-release risk + LICENSE claim)
  • PRA-3 Resolve or justify: Pre-release dependency deepagents==0.7.0a6 carries elevated supply-chain risk without scheduled audit in agents/langchain-deepagents-code/requirements.in:1
  • PRA-4 Resolve or justify: Alias bridge removal relies solely on version/hash drift detection with no automated re-evaluation trigger in agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py:70
  • PRA-5 Resolve or justify: LICENSE.langchain-deepagents absence claim overstates test coverage in agents/langchain-deepagents-code/dependency-review.md:35
  • PRA-8 Resolve or justify: E2E workflow installs 'expect' package via apt on GitHub-hosted runners — supply-chain dependency on runner image mutability in .github/workflows/e2e.yaml:275
  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
  • PRA-T3 Add or justify test follow-up: Runtime validation
  • PRA-T4 Add or justify test follow-up: Runtime validation
  • PRA-T5 Add or justify test follow-up: Runtime validation
  • PRA-T6 Add or justify test follow-up: Patcher unit test fixtures diverge from real upstream bootstrap; consider integration test with real wheel
  • PRA-T7 Add or justify test follow-up: Acceptance clause
  • PRA-T8 Add or justify test follow-up: dependency-review.md (process accountability + pre-release risk + LICENSE claim)
  • PRA-6 In-scope improvement: Build-time site-packages mutation pattern documented as deliberate design choice in agents/langchain-deepagents-code/Dockerfile:50
  • PRA-7 In-scope improvement: Patcher unit test fixtures diverge from real upstream bootstrap; consider integration test with real wheel in test/langchain-deepagents-code-nemotron-profile-patch.test.ts:1
  • PRA-9 In-scope improvement: Validation script uses assert-like require() but could benefit from explicit test isolation in agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py:1
  • PRA-10 In-scope improvement: New E2E check validates Nemotron Ultra profile contract without network calls — good focused test pattern in test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh:1
  • PRA-11 In-scope improvement: Managed runtime patch updated for 0.1.34 with TUI path changes — verify widget module moves are complete in agents/langchain-deepagents-code/patch-managed-deepagents-code.py:1

Findings index

ID Severity Category Location Required action
PRA-1 Resolve/justify architecture Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
PRA-2 Required acceptance agents/langchain-deepagents-code/dependency-review.md:75 Add either: (a) a GitHub issue reference (e.g., https://github.com/NVIDIA/NemoClaw/issues/XXXX\) documenting the alias bridge removal target, OR (b) an explicit maintainer-override statement in the file with maintainer GitHub handle, date, and explicit acceptance of the dependency-review gate as sufficient accountability.
PRA-3 Resolve/justify security agents/langchain-deepagents-code/requirements.in:1 Add a scheduled dependency audit workflow (e.g., weekly pip-audit on the lockfile via GitHub Actions) or document a manual re-audit cadence before each DCode version bump. Update dependency-review.md with the next planned review date.
PRA-4 Resolve/justify correctness agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py:70 Add a version-check in the patcher's require_version() that warns when upstream deepagents version exceeds a threshold where native alias support may exist (e.g., >=0.7.0), or implement a scheduled CI job that checks upstream release notes for alias support. Alternatively, explicitly document in dependency-review.md that the version/hash gate is the sole removal trigger and accept the risk of delayed removal.
PRA-5 Resolve/justify security agents/langchain-deepagents-code/dependency-review.md:35 Either add a test that inspects the built image layers for LICENSE.langchain-deepagents (e.g., using `docker run --rm <image> find / -name 'LICENSE.langchain-deepagents'`), or verify the deepagents-code 0.1.34 wheel does not include this file and update the claim to 'the wheel does not include this file' rather than 'image regression tests enforce absence.'
PRA-6 Improvement security agents/langchain-deepagents-code/Dockerfile:50 No action needed. The comment at lines 43-48 adequately documents the intentional build-time mutation pattern.
PRA-7 Improvement tests test/langchain-deepagents-code-nemotron-profile-patch.test.ts:1 Add an integration test (can run in a separate CI job or as a periodic check) that runs the actual patcher against the real deepagents 0.7.0a6 wheel in a container, validating the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
PRA-8 Resolve/justify security .github/workflows/e2e.yaml:275 The current mitigation (workflow-boundary test pinning exact package, retry logic, source-of-truth comment) is reasonable for this narrow case. Consider documenting a removal condition more precisely: 'remove when GitHub-hosted runners provide expect by default or the TUI check no longer requires a PTY driver.'
PRA-9 Improvement correctness agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py:1 Consider splitting into sub-validations with distinct exit codes or structured JSON output for CI visibility. Not blocking — current fail-closed behavior is correct for image build.
PRA-10 Improvement correctness test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh:1 No action needed. This is a model for focused E2E checks that preserve real shell/system boundaries.
PRA-11 Improvement correctness agents/langchain-deepagents-code/patch-managed-deepagents-code.py:1 Verify the path changes are complete by checking the patcher's paths dict matches the actual 0.1.34 package structure. The fail-closed AST validation provides strong assurance.

🚨 Required before merge

Address these before merging unless a maintainer explicitly overrides the advisor with rationale.

PRA-2 Required — Missing GitHub tracking issue or explicit maintainer-override for Nemotron alias bridge removal accountability

  • Location: agents/langchain-deepagents-code/dependency-review.md:75
  • Category: acceptance
  • Problem: The dependency-review.md references a PR review comment (https://github.com/NVIDIA/NemoClaw/pull/6416#pullrequestreview-4649633900\) as the 'admin-maintainer override' for removal accountability. The previous review required either a GitHub issue reference OR an explicit maintainer-override statement WITH maintainer identity and date. The current text lacks maintainer identity and date, making the accountability claim unverifiable.
  • Impact: Technical debt (the alias bridge workaround) may persist beyond its usefulness without trackable accountability. No automated reminder ensures re-evaluation when upstream adds native alias support.
  • Required action: Add either: (a) a GitHub issue reference (e.g., https://github.com/NVIDIA/NemoClaw/issues/XXXX\) documenting the alias bridge removal target, OR (b) an explicit maintainer-override statement in the file with maintainer GitHub handle, date, and explicit acceptance of the dependency-review gate as sufficient accountability.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Read agents/langchain-deepagents-code/dependency-review.md lines 70-80 — confirm a tracking issue URL or explicit maintainer-override statement with identity and date exists.
  • Missing regression test: Not applicable — process accountability gap. Add issue reference or maintainer-override statement to dependency-review.md as evidence.
  • Done when: The required change is committed and verification passes: Read agents/langchain-deepagents-code/dependency-review.md lines 70-80 — confirm a tracking issue URL or explicit maintainer-override statement with identity and date exists.
  • Evidence: dependency-review.md: 'No standalone removal issue is used for this bridge. The dependency review itself is the gate.' References PR review comment fix(dcode): consume released Nemotron Ultra profile #6416 (review)
Review findings by urgency: 1 required fix, 5 items to resolve/justify, 5 in-scope improvements

⚠️ Resolve or justify before merge

Investigate these in the current review; either fix them, explain why they are not applicable, or document the accepted risk.

PRA-1 Resolve/justify — Source-of-truth review needed: dependency-review.md (process accountability + pre-release risk + LICENSE claim)

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: pip-audit clean (2026-07-07); hash-pinned lockfile; Dockerfile string check for LICENSE.langchain-deepagents (test/langchain-deepagents-code-image.test.ts:367) — but no built image layer inspection
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: dependency-review.md lines 35 (LICENSE claim), 75 (maintainer override via PR comment only); requirements.in pins deepagents==0.7.0a6; test/langchain-deepagents-code-image.test.ts:367 only checks Dockerfile string

PRA-3 Resolve/justify — Pre-release dependency deepagents==0.7.0a6 carries elevated supply-chain risk without scheduled audit

  • Location: agents/langchain-deepagents-code/requirements.in:1
  • Category: security
  • Problem: The pinned dependency deepagents==0.7.0a6 is a pre-release (alpha 6) version. The dependency audit (pip-audit) reports no known vulnerabilities and the lockfile is hash-pinned. However, there is no scheduled audit workflow (e.g., weekly pip-audit on the lockfile) or documented manual re-audit cadence to catch new CVEs in the pinned alpha version.
  • Impact: If a CVE is discovered in deepagents 0.7.0a6, the project may not detect it until the next manual audit or version bump.
  • Recommended action: Add a scheduled dependency audit workflow (e.g., weekly pip-audit on the lockfile via GitHub Actions) or document a manual re-audit cadence before each DCode version bump. Update dependency-review.md with the next planned review date.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read agents/langchain-deepagents-code/dependency-review.md — confirm the pre-release risk acceptance is documented with audit date (2026-07-07) and hash locks. Check for scheduled audit workflow in .github/workflows/.
  • Missing regression test: Scheduled dependency audit workflow (not yet present) or documented manual re-audit before each DCode version bump.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read agents/langchain-deepagents-code/dependency-review.md — confirm the pre-release risk acceptance is documented with audit date (2026-07-07) and hash locks. Check for scheduled audit workflow in .github/workflows/.
  • Evidence: requirements.in pins deepagents-code[nvidia]==0.1.34 which transitively pins deepagents==0.7.0a6. dependency-review.md acknowledges: 'prerelease risk is limited to its exact deepagents==0.7.0a6 SDK pin.'

PRA-4 Resolve/justify — Alias bridge removal relies solely on version/hash drift detection with no automated re-evaluation trigger

  • Location: agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py:70
  • Category: correctness
  • Problem: The build-time monkey-patch pattern uses version/hash gates as the executable lifecycle tracker: 'any dependency change stops the image build with an explicit instruction to check for native managed-alias support.' However, there is no automated reminder, scheduled check, or CI gate that triggers re-evaluation when upstream Deep Agents adds native managed-alias support. The dependency-review gate only activates on version/hash changes.
  • Impact: If upstream adds native alias support in a patch version that doesn't change the deepagents version pin (unlikely but possible), or if the version bump occurs without the maintainer noticing the alias support, the bridge persists unnecessarily, increasing attack surface and maintenance burden.
  • Recommended action: Add a version-check in the patcher's require_version() that warns when upstream deepagents version exceeds a threshold where native alias support may exist (e.g., >=0.7.0), or implement a scheduled CI job that checks upstream release notes for alias support. Alternatively, explicitly document in dependency-review.md that the version/hash gate is the sole removal trigger and accept the risk of delayed removal.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read patch-nemotron-ultra-profile.py require_version() error message and dependency-review.md lifecycle tracker paragraph — confirm the drift detection mechanism and its limitations.
  • Missing regression test: Integration test that simulates upstream version bump with native alias support and verifies build fails with actionable guidance.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read patch-nemotron-ultra-profile.py require_version() error message and dependency-review.md lifecycle tracker paragraph — confirm the drift detection mechanism and its limitations.
  • Evidence: patch-nemotron-ultra-profile.py:70-78 require_version() error message includes 'dependency drift requires reviewing whether upstream now recognizes both managed aliases and removing this bridge when it does'. dependency-review.md: 'The exact version and source-hash gates are also the executable lifecycle tracker for the alias bridge'.

PRA-5 Resolve/justify — LICENSE.langchain-deepagents absence claim overstates test coverage

  • Location: agents/langchain-deepagents-code/dependency-review.md:35
  • Category: security
  • Problem: The dependency-review.md claims 'the image regression tests enforce that absence' regarding LICENSE.langchain-deepagents. However, the only test (test/langchain-deepagents-code-image.test.ts:367) checks that the Dockerfile doesn't contain the string 'LICENSE.langchain-deepagents'. It does not inspect the built image layers to verify the file is actually absent from the filesystem.
  • Impact: If the deepagents-code 0.1.34 wheel includes this license file in a location that gets copied to the image, the claim of enforced absence is false. The test would pass while the file exists in the image.
  • Recommended action: Either add a test that inspects the built image layers for LICENSE.langchain-deepagents (e.g., using `docker run --rm <image> find / -name 'LICENSE.langchain-deepagents'`), or verify the deepagents-code 0.1.34 wheel does not include this file and update the claim to 'the wheel does not include this file' rather than 'image regression tests enforce absence.'
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read test/langchain-deepagents-code-image.test.ts line 367 — confirm it only checks Dockerfile string absence. Check if any test actually inspects built image layers.
  • Missing regression test: Test that inspects built image layers for LICENSE.langchain-deepagents absence, or verification that the wheel doesn't include it.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read test/langchain-deepagents-code-image.test.ts line 367 — confirm it only checks Dockerfile string absence. Check if any test actually inspects built image layers.
  • Evidence: dependency-review.md line 35: 'the image regression tests enforce that absence'. test/langchain-deepagents-code-image.test.ts:367: expect(dockerfile).not.toContain('LICENSE.langchain-deepagents')

PRA-8 Resolve/justify — E2E workflow installs 'expect' package via apt on GitHub-hosted runners — supply-chain dependency on runner image mutability

  • Location: .github/workflows/e2e.yaml:275
  • Category: security
  • Problem: The workflow adds a step to install 'expect' (for TUI PTY testing) via `sudo apt-get install -y --no-install-recommends expect` on GitHub-hosted ubuntu-latest runners. This introduces a dependency on the runner's package mirror and base image state. The workflow-boundary test (test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts) pins the exact package allowlist, but the installation still executes on every run.
  • Impact: If the Ubuntu package mirror is compromised or the runner base image changes, the installed package could differ. The source-of-truth review comment in the workflow acknowledges this as a workaround because 'GitHub-hosted jobs cannot use a repository-owned host image, and caching privileged dpkg state between clean runners is not supported.'
  • Recommended action: The current mitigation (workflow-boundary test pinning exact package, retry logic, source-of-truth comment) is reasonable for this narrow case. Consider documenting a removal condition more precisely: 'remove when GitHub-hosted runners provide expect by default or the TUI check no longer requires a PTY driver.'
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read .github/workflows/e2e.yaml lines 268-285 — confirm the source-of-truth review comment documents invalidState, sourceBoundary, whyNotSourceFix, regressionTest, and removalCondition. Read test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts — confirm it validates the exact package allowlist.
  • Missing regression test: The workflow-boundary test already validates the exact package allowlist and step structure.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read .github/workflows/e2e.yaml lines 268-285 — confirm the source-of-truth review comment documents invalidState, sourceBoundary, whyNotSourceFix, regressionTest, and removalCondition. Read test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts — confirm it validates the exact package allowlist.
  • Evidence: .github/workflows/e2e.yaml lines 268-285 source-of-truth comment; test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts validates exact 'expect' package allowlist.

💡 In-scope improvements

These are lower-risk, not throwaway. Prefer fixing them in this PR when they are local to changed code; defer only with rationale or a linked follow-up.

PRA-6 Improvement — Build-time site-packages mutation pattern documented as deliberate design choice

  • Location: agents/langchain-deepagents-code/Dockerfile:50
  • Category: security
  • Problem: The Dockerfile now includes a comment explaining the atomic site-packages mutation for the Nemotron bridge and managed runtime patching. This addresses the previous improvement request.
  • Impact: Positive — the deliberate design choice is now documented in the Dockerfile for future maintainers.
  • Suggested action: No action needed. The comment at lines 43-48 adequately documents the intentional build-time mutation pattern.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/Dockerfile lines 43-48 — confirm the comment explains the atomic site-packages mutation is intentional for the alias bridge and managed runtime patching.
  • Missing regression test: None — documentation improvement satisfied.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Dockerfile lines 43-48: '# The Nemotron bridge registers managed aliases for the released SDK profile; the managed-runtime patch independently hardens Deep Agents Code entrypoints and installs the reviewed Relay observability boundary. # Both are exact-version, fail-closed build steps validated in one layer so no reusable image layer can contain only one of the required managed patches.'

PRA-7 Improvement — Patcher unit test fixtures diverge from real upstream bootstrap; consider integration test with real wheel

  • Location: test/langchain-deepagents-code-nemotron-profile-patch.test.ts:1
  • Category: tests
  • Problem: The new test file test/langchain-deepagents-code-nemotron-profile-patch.test.ts comprehensively tests the patcher against synthetic fixtures that replicate the 0.7.0a6 bootstrap anchors. However, it does not run the actual patcher against the real deepagents 0.7.0a6 wheel in a container to validate the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
  • Impact: If the fixture anchors diverge from the real upstream source (e.g., whitespace, comment changes), the unit tests pass but the real patcher could fail at build time or produce incorrect patches.
  • Suggested action: Add an integration test (can run in a separate CI job or as a periodic check) that runs the actual patcher against the real deepagents 0.7.0a6 wheel in a container, validating the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/langchain-deepagents-code-nemotron-profile-patch.test.ts — confirm it uses BUILTIN_SOURCE fixture and doesn't test against the real wheel.
  • Missing regression test: Integration test running patch-nemotron-ultra-profile.py against real deepagents 0.7.0a6 wheel in container, verifying patched bootstrap SHA-256.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: test/langchain-deepagents-code-nemotron-profile-patch.test.ts uses BUILTIN_SOURCE fixture constant; no test invokes patcher against real installed wheel.

PRA-9 Improvement — Validation script uses assert-like require() but could benefit from explicit test isolation

  • Location: agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py:1
  • Category: correctness
  • Problem: The validate-nemotron-ultra-profile.py script uses a custom require() function that raises RuntimeError. It's run during Docker image build and validates the complete profile, middleware stack, parser behavior, and dispatch parity. The script is comprehensive but runs as a single monolithic validation.
  • Impact: If any validation fails, the entire image build fails without granular visibility into which contract failed. This is acceptable for a build-time gate but could be improved with structured test output.
  • Suggested action: Consider splitting into sub-validations with distinct exit codes or structured JSON output for CI visibility. Not blocking — current fail-closed behavior is correct for image build.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py — observe the single require() pattern and monolithic main().
  • Missing regression test: None — current validation is sufficient as a build gate.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: validate-nemotron-ultra-profile.py uses single require(condition, message) function raising RuntimeError; main() runs all validations sequentially.

PRA-10 Improvement — New E2E check validates Nemotron Ultra profile contract without network calls — good focused test pattern

  • Location: test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh:1
  • Category: correctness
  • Problem: The new check script 03-deepagents-code-nemotron-ultra-profile.sh is a focused shell script that validates the profile contract by running a Python script inside the sandbox. It verifies versions, native profile hash, middleware stack, tool overrides, and that unrelated models don't receive Ultra guidance. It makes no network calls and completes quickly.
  • Impact: Positive — this is a well-scoped, fast, deterministic E2E check that validates the critical profile wiring without inference dependencies.
  • Suggested action: No action needed. This is a model for focused E2E checks that preserve real shell/system boundaries.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh — confirm it validates the contract without network calls and prints a structured OK marker.
  • Missing regression test: None — the check itself is the regression test.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: 03-deepagents-code-nemotron-ultra-profile.sh runs python3 -I with embedded script validating profile contract; no curl/network calls; prints NEMOCLAW_NEMOTRON_ULTRA_PROFILE_OK marker.

PRA-11 Improvement — Managed runtime patch updated for 0.1.34 with TUI path changes — verify widget module moves are complete

  • Location: agents/langchain-deepagents-code/patch-managed-deepagents-code.py:1
  • Category: correctness
  • Problem: The patch-managed-deepagents-code.py updates paths from `widgets/` to `tui/widgets/` and `server.py` to `client/launch/server.py` and `non_interactive.py` to `client/non_interactive.py`, reflecting upstream 0.1.34 reorganization. The patcher validates required methods via AST and fails closed on drift.
  • Impact: If any upstream module was missed in the path migration, the patcher would fail at build time (fail-closed). The test test/langchain-deepagents-code-direct-module-patch.test.ts validates the patcher against fixtures.
  • Suggested action: Verify the path changes are complete by checking the patcher's paths dict matches the actual 0.1.34 package structure. The fail-closed AST validation provides strong assurance.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/patch-managed-deepagents-code.py lines 380-410 (paths dict) and confirm the module paths match the 0.1.34 structure. Run the direct-module-patch test to verify.
  • Missing regression test: The direct-module-patch test already validates the patcher against fixtures with the new paths.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: patch-managed-deepagents-code.py paths dict includes 'auth_ui': 'tui/widgets/auth.py', 'server': 'client/launch/server.py', 'non_interactive': 'client/non_interactive.py'; test/langchain-deepagents-code-direct-module-patch.test.ts validates all patched modules.
Test follow-ups to resolve or justify

If these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.

  • PRA-T1 Runtime validation — patch-nemotron-ultra-profile against real deepagents 0.7.0a6 wheel in container verifying patched bootstrap SHA-256. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e.yaml, agents/langchain-deepagents-code/Dockerfile, 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/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/requirements.in. Unit and fixture tests are comprehensive for patcher/validator logic, but integration against real wheels, built image inspection, scheduled audits, and full rebuild lifecycle are not covered.
  • PRA-T2 Runtime validation — built image layer inspection for LICENSE.langchain-deepagents absence. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e.yaml, agents/langchain-deepagents-code/Dockerfile, 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/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/requirements.in. Unit and fixture tests are comprehensive for patcher/validator logic, but integration against real wheels, built image inspection, scheduled audits, and full rebuild lifecycle are not covered.
  • PRA-T3 Runtime validation — scheduled pip-audit on requirements.lock. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e.yaml, agents/langchain-deepagents-code/Dockerfile, 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/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/requirements.in. Unit and fixture tests are comprehensive for patcher/validator logic, but integration against real wheels, built image inspection, scheduled audits, and full rebuild lifecycle are not covered.
  • PRA-T4 Runtime validation — version-threshold warning in require_version() (>=0.7.0) for native alias support detection. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e.yaml, agents/langchain-deepagents-code/Dockerfile, 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/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/requirements.in. Unit and fixture tests are comprehensive for patcher/validator logic, but integration against real wheels, built image inspection, scheduled audits, and full rebuild lifecycle are not covered.
  • PRA-T5 Runtime validation — E2E: nemoclaw onboard → rebuild → validate Nemotron profile persists. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e.yaml, agents/langchain-deepagents-code/Dockerfile, 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/patch-nemotron-ultra-profile.py, agents/langchain-deepagents-code/requirements.in. Unit and fixture tests are comprehensive for patcher/validator logic, but integration against real wheels, built image inspection, scheduled audits, and full rebuild lifecycle are not covered.
  • PRA-T6 Patcher unit test fixtures diverge from real upstream bootstrap; consider integration test with real wheel — Add an integration test (can run in a separate CI job or as a periodic check) that runs the actual patcher against the real deepagents 0.7.0a6 wheel in a container, validating the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
  • PRA-T7 Acceptance clause — Bind bridge removal to exact DCode/Deep Agents version-and-hash gate in dependency-review.md; no separate follow-up issue — add test evidence or identify existing coverage. dependency-review.md: 'exact version and source-hash gates are also the executable lifecycle tracker... no standalone removal issue is used' — but missing explicit maintainer-override with identity/date (PRA-1 blocker)
  • PRA-T8 dependency-review.md (process accountability + pre-release risk + LICENSE claim) — pip-audit clean (2026-07-07); hash-pinned lockfile; Dockerfile string check for LICENSE.langchain-deepagents (test/langchain-deepagents-code-image.test.ts:367) — but no built image layer inspection. dependency-review.md lines 35 (LICENSE claim), 75 (maintainer override via PR comment only); requirements.in pins deepagents==0.7.0a6; test/langchain-deepagents-code-image.test.ts:367 only checks Dockerfile string
Since last review details

Current findings, using the urgency labels above:

PRA-1 Resolve/justify — Source-of-truth review needed: dependency-review.md (process accountability + pre-release risk + LICENSE claim)

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: pip-audit clean (2026-07-07); hash-pinned lockfile; Dockerfile string check for LICENSE.langchain-deepagents (test/langchain-deepagents-code-image.test.ts:367) — but no built image layer inspection
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: dependency-review.md lines 35 (LICENSE claim), 75 (maintainer override via PR comment only); requirements.in pins deepagents==0.7.0a6; test/langchain-deepagents-code-image.test.ts:367 only checks Dockerfile string

PRA-2 Required — Missing GitHub tracking issue or explicit maintainer-override for Nemotron alias bridge removal accountability

  • Location: agents/langchain-deepagents-code/dependency-review.md:75
  • Category: acceptance
  • Problem: The dependency-review.md references a PR review comment (https://github.com/NVIDIA/NemoClaw/pull/6416#pullrequestreview-4649633900\) as the 'admin-maintainer override' for removal accountability. The previous review required either a GitHub issue reference OR an explicit maintainer-override statement WITH maintainer identity and date. The current text lacks maintainer identity and date, making the accountability claim unverifiable.
  • Impact: Technical debt (the alias bridge workaround) may persist beyond its usefulness without trackable accountability. No automated reminder ensures re-evaluation when upstream adds native alias support.
  • Required action: Add either: (a) a GitHub issue reference (e.g., https://github.com/NVIDIA/NemoClaw/issues/XXXX\) documenting the alias bridge removal target, OR (b) an explicit maintainer-override statement in the file with maintainer GitHub handle, date, and explicit acceptance of the dependency-review gate as sufficient accountability.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Read agents/langchain-deepagents-code/dependency-review.md lines 70-80 — confirm a tracking issue URL or explicit maintainer-override statement with identity and date exists.
  • Missing regression test: Not applicable — process accountability gap. Add issue reference or maintainer-override statement to dependency-review.md as evidence.
  • Done when: The required change is committed and verification passes: Read agents/langchain-deepagents-code/dependency-review.md lines 70-80 — confirm a tracking issue URL or explicit maintainer-override statement with identity and date exists.
  • Evidence: dependency-review.md: 'No standalone removal issue is used for this bridge. The dependency review itself is the gate.' References PR review comment fix(dcode): consume released Nemotron Ultra profile #6416 (review)

PRA-3 Resolve/justify — Pre-release dependency deepagents==0.7.0a6 carries elevated supply-chain risk without scheduled audit

  • Location: agents/langchain-deepagents-code/requirements.in:1
  • Category: security
  • Problem: The pinned dependency deepagents==0.7.0a6 is a pre-release (alpha 6) version. The dependency audit (pip-audit) reports no known vulnerabilities and the lockfile is hash-pinned. However, there is no scheduled audit workflow (e.g., weekly pip-audit on the lockfile) or documented manual re-audit cadence to catch new CVEs in the pinned alpha version.
  • Impact: If a CVE is discovered in deepagents 0.7.0a6, the project may not detect it until the next manual audit or version bump.
  • Recommended action: Add a scheduled dependency audit workflow (e.g., weekly pip-audit on the lockfile via GitHub Actions) or document a manual re-audit cadence before each DCode version bump. Update dependency-review.md with the next planned review date.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read agents/langchain-deepagents-code/dependency-review.md — confirm the pre-release risk acceptance is documented with audit date (2026-07-07) and hash locks. Check for scheduled audit workflow in .github/workflows/.
  • Missing regression test: Scheduled dependency audit workflow (not yet present) or documented manual re-audit before each DCode version bump.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read agents/langchain-deepagents-code/dependency-review.md — confirm the pre-release risk acceptance is documented with audit date (2026-07-07) and hash locks. Check for scheduled audit workflow in .github/workflows/.
  • Evidence: requirements.in pins deepagents-code[nvidia]==0.1.34 which transitively pins deepagents==0.7.0a6. dependency-review.md acknowledges: 'prerelease risk is limited to its exact deepagents==0.7.0a6 SDK pin.'

PRA-4 Resolve/justify — Alias bridge removal relies solely on version/hash drift detection with no automated re-evaluation trigger

  • Location: agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py:70
  • Category: correctness
  • Problem: The build-time monkey-patch pattern uses version/hash gates as the executable lifecycle tracker: 'any dependency change stops the image build with an explicit instruction to check for native managed-alias support.' However, there is no automated reminder, scheduled check, or CI gate that triggers re-evaluation when upstream Deep Agents adds native managed-alias support. The dependency-review gate only activates on version/hash changes.
  • Impact: If upstream adds native alias support in a patch version that doesn't change the deepagents version pin (unlikely but possible), or if the version bump occurs without the maintainer noticing the alias support, the bridge persists unnecessarily, increasing attack surface and maintenance burden.
  • Recommended action: Add a version-check in the patcher's require_version() that warns when upstream deepagents version exceeds a threshold where native alias support may exist (e.g., >=0.7.0), or implement a scheduled CI job that checks upstream release notes for alias support. Alternatively, explicitly document in dependency-review.md that the version/hash gate is the sole removal trigger and accept the risk of delayed removal.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read patch-nemotron-ultra-profile.py require_version() error message and dependency-review.md lifecycle tracker paragraph — confirm the drift detection mechanism and its limitations.
  • Missing regression test: Integration test that simulates upstream version bump with native alias support and verifies build fails with actionable guidance.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read patch-nemotron-ultra-profile.py require_version() error message and dependency-review.md lifecycle tracker paragraph — confirm the drift detection mechanism and its limitations.
  • Evidence: patch-nemotron-ultra-profile.py:70-78 require_version() error message includes 'dependency drift requires reviewing whether upstream now recognizes both managed aliases and removing this bridge when it does'. dependency-review.md: 'The exact version and source-hash gates are also the executable lifecycle tracker for the alias bridge'.

PRA-5 Resolve/justify — LICENSE.langchain-deepagents absence claim overstates test coverage

  • Location: agents/langchain-deepagents-code/dependency-review.md:35
  • Category: security
  • Problem: The dependency-review.md claims 'the image regression tests enforce that absence' regarding LICENSE.langchain-deepagents. However, the only test (test/langchain-deepagents-code-image.test.ts:367) checks that the Dockerfile doesn't contain the string 'LICENSE.langchain-deepagents'. It does not inspect the built image layers to verify the file is actually absent from the filesystem.
  • Impact: If the deepagents-code 0.1.34 wheel includes this license file in a location that gets copied to the image, the claim of enforced absence is false. The test would pass while the file exists in the image.
  • Recommended action: Either add a test that inspects the built image layers for LICENSE.langchain-deepagents (e.g., using `docker run --rm <image> find / -name 'LICENSE.langchain-deepagents'`), or verify the deepagents-code 0.1.34 wheel does not include this file and update the claim to 'the wheel does not include this file' rather than 'image regression tests enforce absence.'
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read test/langchain-deepagents-code-image.test.ts line 367 — confirm it only checks Dockerfile string absence. Check if any test actually inspects built image layers.
  • Missing regression test: Test that inspects built image layers for LICENSE.langchain-deepagents absence, or verification that the wheel doesn't include it.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read test/langchain-deepagents-code-image.test.ts line 367 — confirm it only checks Dockerfile string absence. Check if any test actually inspects built image layers.
  • Evidence: dependency-review.md line 35: 'the image regression tests enforce that absence'. test/langchain-deepagents-code-image.test.ts:367: expect(dockerfile).not.toContain('LICENSE.langchain-deepagents')

PRA-6 Improvement — Build-time site-packages mutation pattern documented as deliberate design choice

  • Location: agents/langchain-deepagents-code/Dockerfile:50
  • Category: security
  • Problem: The Dockerfile now includes a comment explaining the atomic site-packages mutation for the Nemotron bridge and managed runtime patching. This addresses the previous improvement request.
  • Impact: Positive — the deliberate design choice is now documented in the Dockerfile for future maintainers.
  • Suggested action: No action needed. The comment at lines 43-48 adequately documents the intentional build-time mutation pattern.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/Dockerfile lines 43-48 — confirm the comment explains the atomic site-packages mutation is intentional for the alias bridge and managed runtime patching.
  • Missing regression test: None — documentation improvement satisfied.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Dockerfile lines 43-48: '# The Nemotron bridge registers managed aliases for the released SDK profile; the managed-runtime patch independently hardens Deep Agents Code entrypoints and installs the reviewed Relay observability boundary. # Both are exact-version, fail-closed build steps validated in one layer so no reusable image layer can contain only one of the required managed patches.'

PRA-7 Improvement — Patcher unit test fixtures diverge from real upstream bootstrap; consider integration test with real wheel

  • Location: test/langchain-deepagents-code-nemotron-profile-patch.test.ts:1
  • Category: tests
  • Problem: The new test file test/langchain-deepagents-code-nemotron-profile-patch.test.ts comprehensively tests the patcher against synthetic fixtures that replicate the 0.7.0a6 bootstrap anchors. However, it does not run the actual patcher against the real deepagents 0.7.0a6 wheel in a container to validate the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
  • Impact: If the fixture anchors diverge from the real upstream source (e.g., whitespace, comment changes), the unit tests pass but the real patcher could fail at build time or produce incorrect patches.
  • Suggested action: Add an integration test (can run in a separate CI job or as a periodic check) that runs the actual patcher against the real deepagents 0.7.0a6 wheel in a container, validating the patched bootstrap hash matches EXPECTED_PATCHED_BOOTSTRAP_SHA256.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/langchain-deepagents-code-nemotron-profile-patch.test.ts — confirm it uses BUILTIN_SOURCE fixture and doesn't test against the real wheel.
  • Missing regression test: Integration test running patch-nemotron-ultra-profile.py against real deepagents 0.7.0a6 wheel in container, verifying patched bootstrap SHA-256.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: test/langchain-deepagents-code-nemotron-profile-patch.test.ts uses BUILTIN_SOURCE fixture constant; no test invokes patcher against real installed wheel.

PRA-8 Resolve/justify — E2E workflow installs 'expect' package via apt on GitHub-hosted runners — supply-chain dependency on runner image mutability

  • Location: .github/workflows/e2e.yaml:275
  • Category: security
  • Problem: The workflow adds a step to install 'expect' (for TUI PTY testing) via `sudo apt-get install -y --no-install-recommends expect` on GitHub-hosted ubuntu-latest runners. This introduces a dependency on the runner's package mirror and base image state. The workflow-boundary test (test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts) pins the exact package allowlist, but the installation still executes on every run.
  • Impact: If the Ubuntu package mirror is compromised or the runner base image changes, the installed package could differ. The source-of-truth review comment in the workflow acknowledges this as a workaround because 'GitHub-hosted jobs cannot use a repository-owned host image, and caching privileged dpkg state between clean runners is not supported.'
  • Recommended action: The current mitigation (workflow-boundary test pinning exact package, retry logic, source-of-truth comment) is reasonable for this narrow case. Consider documenting a removal condition more precisely: 'remove when GitHub-hosted runners provide expect by default or the TUI check no longer requires a PTY driver.'
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read .github/workflows/e2e.yaml lines 268-285 — confirm the source-of-truth review comment documents invalidState, sourceBoundary, whyNotSourceFix, regressionTest, and removalCondition. Read test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts — confirm it validates the exact package allowlist.
  • Missing regression test: The workflow-boundary test already validates the exact package allowlist and step structure.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read .github/workflows/e2e.yaml lines 268-285 — confirm the source-of-truth review comment documents invalidState, sourceBoundary, whyNotSourceFix, regressionTest, and removalCondition. Read test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts — confirm it validates the exact package allowlist.
  • Evidence: .github/workflows/e2e.yaml lines 268-285 source-of-truth comment; test/e2e/support/e2e-host-dependency-workflow-boundary.test.ts validates exact 'expect' package allowlist.

PRA-9 Improvement — Validation script uses assert-like require() but could benefit from explicit test isolation

  • Location: agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py:1
  • Category: correctness
  • Problem: The validate-nemotron-ultra-profile.py script uses a custom require() function that raises RuntimeError. It's run during Docker image build and validates the complete profile, middleware stack, parser behavior, and dispatch parity. The script is comprehensive but runs as a single monolithic validation.
  • Impact: If any validation fails, the entire image build fails without granular visibility into which contract failed. This is acceptable for a build-time gate but could be improved with structured test output.
  • Suggested action: Consider splitting into sub-validations with distinct exit codes or structured JSON output for CI visibility. Not blocking — current fail-closed behavior is correct for image build.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py — observe the single require() pattern and monolithic main().
  • Missing regression test: None — current validation is sufficient as a build gate.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: validate-nemotron-ultra-profile.py uses single require(condition, message) function raising RuntimeError; main() runs all validations sequentially.

PRA-10 Improvement — New E2E check validates Nemotron Ultra profile contract without network calls — good focused test pattern

  • Location: test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh:1
  • Category: correctness
  • Problem: The new check script 03-deepagents-code-nemotron-ultra-profile.sh is a focused shell script that validates the profile contract by running a Python script inside the sandbox. It verifies versions, native profile hash, middleware stack, tool overrides, and that unrelated models don't receive Ultra guidance. It makes no network calls and completes quickly.
  • Impact: Positive — this is a well-scoped, fast, deterministic E2E check that validates the critical profile wiring without inference dependencies.
  • Suggested action: No action needed. This is a model for focused E2E checks that preserve real shell/system boundaries.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh — confirm it validates the contract without network calls and prints a structured OK marker.
  • Missing regression test: None — the check itself is the regression test.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: 03-deepagents-code-nemotron-ultra-profile.sh runs python3 -I with embedded script validating profile contract; no curl/network calls; prints NEMOCLAW_NEMOTRON_ULTRA_PROFILE_OK marker.

PRA-11 Improvement — Managed runtime patch updated for 0.1.34 with TUI path changes — verify widget module moves are complete

  • Location: agents/langchain-deepagents-code/patch-managed-deepagents-code.py:1
  • Category: correctness
  • Problem: The patch-managed-deepagents-code.py updates paths from `widgets/` to `tui/widgets/` and `server.py` to `client/launch/server.py` and `non_interactive.py` to `client/non_interactive.py`, reflecting upstream 0.1.34 reorganization. The patcher validates required methods via AST and fails closed on drift.
  • Impact: If any upstream module was missed in the path migration, the patcher would fail at build time (fail-closed). The test test/langchain-deepagents-code-direct-module-patch.test.ts validates the patcher against fixtures.
  • Suggested action: Verify the path changes are complete by checking the patcher's paths dict matches the actual 0.1.34 package structure. The fail-closed AST validation provides strong assurance.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read agents/langchain-deepagents-code/patch-managed-deepagents-code.py lines 380-410 (paths dict) and confirm the module paths match the 0.1.34 structure. Run the direct-module-patch test to verify.
  • Missing regression test: The direct-module-patch test already validates the patcher against fixtures with the new paths.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: patch-managed-deepagents-code.py paths dict includes 'auth_ui': 'tui/widgets/auth.py', 'server': 'client/launch/server.py', 'non_interactive': 'client/non_interactive.py'; test/langchain-deepagents-code-direct-module-patch.test.ts validates all patched modules.

Workflow run details

This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ⚠️ Run cancelled — no signal

Run: 28891754571
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 0 passed, 0 failed, 1 cancelled, 0 skipped

Job Result
live ⚠️ cancelled

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ⚠️ Run cancelled — no signal

Run: 28892066223
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 0 passed, 0 failed, 1 cancelled, 0 skipped

Job Result
live ⚠️ cancelled

Comment thread test/langchain-deepagents-code-nemotron-profile-patch.test.ts Fixed
Comment thread test/langchain-deepagents-code-nemotron-profile-patch.test.ts Fixed

@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.

🧹 Nitpick comments (2)
agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py (1)

52-57: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Use direct attribute access instead of getattr with a constant name.

Ruff (B009) flags this: getattr(profile, "extra_middleware") is equivalent to and no safer than profile.extra_middleware.

🧹 Suggested fix
 def middleware_names(profile: object) -> tuple[str, ...]:
-    middleware = getattr(profile, "extra_middleware")
+    middleware = profile.extra_middleware
     if callable(middleware):
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py around
lines 52 - 57, The middleware_names helper is using getattr with a constant
attribute name, which Ruff flags as unnecessary. Update middleware_names to
access extra_middleware directly on the profile object instead of calling
getattr, while keeping the existing callable handling and tuple conversion logic
unchanged.


</details>

<!-- cr-comment:v1:367ce7f6ddd94b10915a06b8 -->

_Source: Linters/SAST tools_

</blockquote></details>
<details>
<summary>test/e2e/support/platform-parity-cloud-experimental.test.ts (1)</summary><blockquote>

`153-168`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _⚡ Quick win_

**Source-text assertions on shell/Python literals rather than observable behavior.**

This test asserts on exact substrings of the embedded Python source (import lines, model-ID literals, variable names) instead of exercising the script's actual contract. It will break on harmless refactors of the check script (renames, reformatting, reordering) without any real regression, and it doesn't prove the profile contract holds at runtime — that verification only happens when the E2E check actually runs in a sandbox.

Consider narrowing this to a lighter registration/ordering check (as in the `137-137` assertion) and letting the live E2E check own verification of the profile contract's actual behavior, rather than re-asserting its internals as text.





Based on path instructions for `**/*.test.{ts,js,mts,mjs,cts,cjs}`: "Prefer observable outcomes through the public boundary over source-text, private-shape, or mock-call assertions."

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @test/e2e/support/platform-parity-cloud-experimental.test.ts around lines 153

  • 168, The test in platform-parity-cloud-experimental.test.ts is asserting on
    embedded shell/Python source text instead of observable behavior, making it
    brittle to harmless refactors. Update the profile check around
    DEEPAGENTS_CLOUD_EXPERIMENTAL_CHECKS[0] / profileCheck to only verify
    registration or ordering at this boundary, and remove the exact substring checks
    for imports, model IDs, variable names, and middleware internals; let the actual
    E2E check script validate the runtime profile contract.

</details>

<!-- cr-comment:v1:761d44d205ca9aaddef97c14 -->

_Source: Path instructions_

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py:

  • Around line 52-57: The middleware_names helper is using getattr with a
    constant attribute name, which Ruff flags as unnecessary. Update
    middleware_names to access extra_middleware directly on the profile object
    instead of calling getattr, while keeping the existing callable handling and
    tuple conversion logic unchanged.

In @test/e2e/support/platform-parity-cloud-experimental.test.ts:

  • Around line 153-168: The test in platform-parity-cloud-experimental.test.ts is
    asserting on embedded shell/Python source text instead of observable behavior,
    making it brittle to harmless refactors. Update the profile check around
    DEEPAGENTS_CLOUD_EXPERIMENTAL_CHECKS[0] / profileCheck to only verify
    registration or ordering at this boundary, and remove the exact substring checks
    for imports, model IDs, variable names, and middleware internals; let the actual
    E2E check script validate the runtime profile contract.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Enterprise

**Run ID**: `b9c2e63c-ff77-403a-ba3e-b038d2c64950`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 5b8e437fdcb2685825b24e8ee3a8ee28850b2133 and 66c7895aa255119e7f00bafc22bfa42c25364166.

</details>

<details>
<summary>📒 Files selected for processing (12)</summary>

* `agents/langchain-deepagents-code/Dockerfile`
* `agents/langchain-deepagents-code/LICENSE.langchain-deepagents`
* `agents/langchain-deepagents-code/dependency-review.md`
* `agents/langchain-deepagents-code/nemotron-ultra-harness-profile.py`
* `agents/langchain-deepagents-code/patch-nemotron-ultra-profile.py`
* `agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py`
* `docs/get-started/quickstart-langchain-deepagents-code.mdx`
* `test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh`
* `test/e2e/live/cloud-experimental-check-list.ts`
* `test/e2e/support/platform-parity-cloud-experimental.test.ts`
* `test/langchain-deepagents-code-image.test.ts`
* `test/langchain-deepagents-code-nemotron-profile-patch.test.ts`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions github-actions Bot mentioned this pull request Jul 7, 2026
21 tasks
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28892803126
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28893172137
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa ericksoa added integration: dcode LangChain Deep Code integration behavior bug-fix PR fixes a bug or regression area: inference Inference routing, serving, model selection, or outputs area: packaging Packages, images, registries, installers, or distribution area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery area: security Security controls, permissions, secrets, or hardening security dependencies Pull requests that update a dependency file v0.0.76 Release target labels Jul 7, 2026

@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

🧹 Nitpick comments (1)
test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh (1)

216-220: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

else path sends /help after a fixed after 1000 with no readiness gate.

The pending path deliberately waits for the name prompt before typing (per the comment at Lines 179-181, to avoid sending keystrokes while first paint is in flight). The complete path instead sends /help after a fixed 1s. There's no name field to corrupt here, so worst case is /help typed before the prompt has input focus, which surfaces later as a readiness timeout (exit 20) — a potential flake rather than a correctness bug. If the TUI exposes any stable "prompt ready" line on the complete path, gating on it (with a bounded timeout fallback) would be more robust than a fixed sleep.

🤖 Prompt for 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.

In `@test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh`
around lines 216 - 220, The complete-path flow in
10-deepagents-code-tui-startup.sh is using a fixed sleep before sending /help,
which can race with TUI readiness and cause flaky timeouts. Update the else
branch around the existing after/send sequence to wait for a stable “prompt
ready” signal from the TUI before typing, using the same style of readiness
gating already used in the pending path, and keep a bounded fallback timeout so
the test still fails deterministically if the prompt never appears.
🤖 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 `@test/deepagents-code-tui-startup-check.test.ts`:
- Around line 217-237: The onboarding-predicate test is overfitting to copied
shell logic and source-text checks instead of verifying real behavior. Replace
the inline hand-rolled `case` snippet with the actual probe logic used by
`runTuiStartupCheckHelper` or sourced from the startup check script, and drive
it through observable outcomes rather than duplicating production mappings.
Remove the direct `tuiStartupCheckSource`/`tuiExpectProgram` string assertions
and validate the behavior via `runTuiExpectStateMachine` or equivalent
public-boundary checks in `deepagents-code-tui-startup-check.test.ts`.

---

Nitpick comments:
In `@test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh`:
- Around line 216-220: The complete-path flow in
10-deepagents-code-tui-startup.sh is using a fixed sleep before sending /help,
which can race with TUI readiness and cause flaky timeouts. Update the else
branch around the existing after/send sequence to wait for a stable “prompt
ready” signal from the TUI before typing, using the same style of readiness
gating already used in the pending path, and keep a bounded fallback timeout so
the test still fails deterministically if the prompt never appears.
🪄 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: 31d5e173-7791-434c-a7f2-40edec0e9d91

📥 Commits

Reviewing files that changed from the base of the PR and between cec9547 and c51cf39.

📒 Files selected for processing (2)
  • test/deepagents-code-tui-startup-check.test.ts
  • test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh

Comment thread test/deepagents-code-tui-startup-check.test.ts
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ❌ Some jobs failed

Run: 28906215693
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
live ❌ failure

Failed jobs: live. Check run artifacts for logs.

@cv

cv commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Diagnosis from the failed typed-target artifact in run 28906215693: the Enter submission does leave the optional-name screen and reach the main composer. The sanitized capture then shows / help and opens the Select Agent modal with agent / skills choices. In pinned DCode 0.1.34, /help is not a command that renders Interactive Features:; the slash-command palette fuzzy-dispatches it to the available agent command. The harness consequently waits for output that cannot occur.

Use an exact known command as the stable readiness probe instead: submit /agent, require the Select Agent modal, then send Escape and Ctrl-C and retain the exit-marker assertion. That distinguishes a correctly focused main composer from the name field: if input is still on onboarding, /agent will be consumed as a name and the modal will never appear. The current host-dependency hardening is useful, but it does not address this repeated timeout.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@cv

cv commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Correction after checking the pinned 0.1.34 wheel: /help does exist. The failure is a reactive-autocomplete race, not an absent command. SlashCommandController retains selected_index=0; sending /help\r as one Expect burst lets Enter apply the still-painted first suggestion, /agents, which exactly explains the captured Select Agent modal.

The deterministic live probe is therefore to send the exact /agents command with paced input (or type it, wait until the agents — Browse and switch... completion row is painted, then press Enter), require Select Agent, send Escape, then Ctrl-C and assert the exit marker. The existing headless inference check already owns backend readiness.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ⚠️ Run cancelled — no signal

Run: 28906575739
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 0 passed, 0 failed, 1 cancelled, 0 skipped

Job Result
live ⚠️ cancelled

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ⚠️ Run cancelled — no signal

Run: 28906715574
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 0 passed, 0 failed, 1 cancelled, 0 skipped

Job Result
live ⚠️ cancelled

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28906853666
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ⚠️ Run cancelled — no signal

Run: 28907099945
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: (default — all supported)
Requested jobs: mcp-bridge
Summary: 0 passed, 0 failed, 1 cancelled, 0 skipped

Job Result
mcp-bridge ⚠️ cancelled

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ❌ Some jobs failed

Run: 28907098766
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: (default — all supported)
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 43 passed, 19 failed, 8 cancelled, 5 skipped

Job Result
agent-turn-latency ❌ failure
bedrock-runtime-compatible-anthropic ✅ success
brave-search ✅ success
channels-add-remove ✅ success
channels-stop-start ⚠️ cancelled
cloud-inference ❌ failure
cloud-onboard ❌ failure
common-egress-agent ❌ failure
concurrent-gateway-ports ✅ success
credential-migration ✅ success
credential-sanitization ✅ success
cron-preflight-inference-local ✅ success
device-auth-health ✅ success
diagnostics ✅ success
docs-validation ✅ success
double-onboard ✅ success
full-e2e ❌ failure
gateway-drift-preflight ✅ success
gateway-guard-recovery ✅ success
gateway-health-honest ✅ success
generate-matrix ✅ success
gpu-double-onboard ✅ success
gpu-e2e ✅ success
hermes-dashboard ❌ failure
hermes-discord ✅ success
hermes-e2e ❌ failure
hermes-gpu-startup ⏭️ skipped
hermes-inference-switch ✅ success
hermes-shields-config ❌ failure
hermes-slack ✅ success
inference-routing ✅ success
issue-2478-crash-loop-recovery ⚠️ cancelled
issue-4434-tui-unreachable-inference ✅ success
issue-4462-scope-upgrade-approval ❌ failure
jetson-nvmap-gpu ⏭️ skipped
kimi-inference-compat ✅ success
launchable-smoke ❌ failure
live ❌ failure
mcp-bridge ⚠️ cancelled
mcp-bridge-dev ⏭️ skipped
messaging-compatible-endpoint ✅ success
messaging-providers ✅ success
model-router-provider-routed-inference ✅ success
network-policy ❌ failure
ollama-auth-proxy ✅ success
onboard-negative-paths ✅ success
onboard-repair ✅ success
onboard-resume ✅ success
openclaw-discord-pairing ✅ success
openclaw-inference-switch ✅ success
openclaw-skill-cli ✅ success
openclaw-slack-pairing ✅ success
openclaw-tui-chat-correlation ❌ failure
openshell-gateway-auth-contract ⏭️ skipped
openshell-gateway-upgrade ⚠️ cancelled
openshell-version-pin ✅ success
overlayfs-autofix ✅ success
rebuild-hermes ⚠️ cancelled
rebuild-hermes-stale-base ⚠️ cancelled
rebuild-openclaw ⚠️ cancelled
sandbox-operations ❌ failure
sandbox-rebuild ✅ success
sandbox-rlimits-connect ⏭️ skipped
sandbox-survival ❌ failure
security-posture ❌ failure
sessions-agents-cli ❌ failure
shields-config ✅ success
skill-agent ✅ success
snapshot-commands ✅ success
spark-install ✅ success
state-backup-restore ❌ failure
telegram-injection ✅ success
token-rotation ⚠️ cancelled
tunnel-lifecycle ❌ failure
upgrade-stale-sandbox ✅ success

Explicit-only jobs skipped: openshell-gateway-auth-contract (default dispatch excludes the resource-heavy OpenShell auth-contract probe unless selected; validate with jobs=openshell-gateway-auth-contract or targets=openshell-gateway-auth-contract), mcp-bridge-dev (default dispatch excludes moving OpenShell dev artifacts unless explicitly selected; validate with jobs=mcp-bridge-dev or targets=mcp-bridge-dev), hermes-gpu-startup (default dispatch excludes this explicit-only job unless selected; validate with jobs=hermes-gpu-startup or targets=hermes-gpu-startup), sandbox-rlimits-connect (default dispatch excludes the destructive rlimit fork/connect probe unless selected; validate with jobs=sandbox-rlimits-connect or targets=sandbox-rlimits-connect), jetson-nvmap-gpu (default dispatch excludes Jetson until a stable Jetson runner is available; validate with jobs=jetson-nvmap-gpu or targets=jetson-nvmap-gpu).

Failed jobs: agent-turn-latency, cloud-inference, cloud-onboard, common-egress-agent, full-e2e, hermes-dashboard, hermes-e2e, hermes-shields-config, issue-4462-scope-upgrade-approval, launchable-smoke, live, network-policy, openclaw-tui-chat-correlation, sandbox-operations, sandbox-survival, security-posture, sessions-agents-cli, state-backup-restore, tunnel-lifecycle. Check run artifacts for logs.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28907500822
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@cv

cv commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Maintainer disposition for exact head 928b50626b303b2008d35f844408a1f83a43a404: the hash-locked dependency review plus the fail-closed exact-version/source-shape build gates are sufficient removal accountability for the temporary managed-alias bridge. Any dependency change stops the image build and requires this review to be revisited; when upstream recognizes both aliases, that review must remove the bridge rather than refresh its hashes. I explicitly waive a separate removal-tracking issue for this bridge.

This clears the remaining advisor-required accountability item; approval still waits on final-head CI and the required live E2E evidence.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28907835011
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

@cv

cv commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Maintainer disposition for the remaining trusted-apt warning on exact head 928b50626b303b2008d35f844408a1f83a43a404: accepted as nonblocking. expect is installed only on an ephemeral GitHub-hosted Ubuntu runner from that runner's signed Ubuntu repositories; the reviewed workflow owns the privileged step, the PR-controlled test has no sudo, and the boundary validator pins the exact one-package allowlist, target condition, ordering, and retry shape. Pinning an Ubuntu package version to a mutable hosted-runner image would make the lane brittle without improving the production sandbox boundary. No production image or runtime receives this package.

The suggested extra rationale-marker regression is therefore not required for this release; the existing workflow-boundary tests cover the security-relevant executable contract.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All selected jobs passed

Run: 28908698325
Workflow ref: fix/dcode-nemotron-ultra-harness
Requested targets: ubuntu-repo-cloud-langchain-deepagents-code
Requested jobs: (default — all default-enabled free-standing jobs; explicit-only jobs openshell-gateway-auth-contract, mcp-bridge-dev, hermes-gpu-startup, sandbox-rlimits-connect, and jetson-nvmap-gpu are skipped unless selected)
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
live ✅ success

@apurvvkumaria
apurvvkumaria merged commit c1c2138 into main Jul 8, 2026
200 of 203 checks passed
@apurvvkumaria
apurvvkumaria deleted the fix/dcode-nemotron-ultra-harness branch July 8, 2026 00:45
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Blocker resolution summary:

  • The merge conflict with main was resolved in PR head 439ffb4. I audited the seven conflict resolutions; they preserve the DCode 0.1.34/Nemotron alias work together with the incoming Relay observability changes, with no residual conflict markers.
  • The requested TUI readiness fix landed in c51cf39 and e1852d8: the harness derives the real onboarding state, sends paced /agents, requires the exact Select Agent modal, closes it, and verifies a clean exit. Maintained TUI coverage passes 19/19 locally.
  • The exact-head ubuntu-repo-cloud-langchain-deepagents-code run passed, all regular PR checks are green, and cv approved the final head.
  • The pre-merge full fan-out's mcp-bridge failure began in the unchanged Hermes cleanup path and prevented DCode from running because the stale Hermes route remained. The scheduled mcp-bridge job then passed on the PR's actual squash-merge commit c1c2138, confirming that failure was transient rather than a merged DCode regression.

Local conflict-sensitive verification also passed (161 tests passed, 1 platform-only skip), along with npm run check:diff, CLI/plugin builds, and the docs build. No additional documentation changes were needed.

apurvvkumaria added a commit that referenced this pull request Jul 8, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Prepares the user-facing documentation for NemoClaw v0.0.76 and closes
the release-prep documentation gate. It adds the release highlights,
documents the arm64 Local NIM warning and expanded image cleanup
behavior, and fixes agent-specific command headings in generated guides.

## Changes

- Add the v0.0.76 release-notes section and move the shared-gateway
route containment entry out of the v0.0.74 history where it was
incorrectly placed.
- Document the advisory Linux arm64 Local NIM manifest warning in the
canonical platform matrix and local-inference guidance.
- Document that `gc` scans both gateway-built and locally prebuilt
sandbox image repositories.
- Keep OpenClaw and Hermes session headings out of the generated Deep
Agents command guide.
- Add a focused variant regression test for the agent-specific session
headings.

### Source summary

| Merged sources | Documentation coverage |
| --- | --- |
| [#6414](#6414),
[#6418](#6418),
[#6416](#6416),
[#6344](#6344) | v0.0.76 release
notes and the Deep Agents quickstart/inference routes |
| [#6340](#6340) | v0.0.76
release notes and existing Deep Agents observability guidance |
| [#6338](#6338),
[#6378](#6378),
[#6297](#6297) | v0.0.76 release
notes and existing inference/troubleshooting guidance |
| [#6362](#6362) | v0.0.76
release notes and existing lifecycle, command, and credential guidance |
| [#6330](#6330),
[#6307](#6307),
[#6008](#6008) | v0.0.76 release
notes and existing security, troubleshooting, and command guidance |
| [#6382](#6382) | v0.0.76
release notes and existing MCP/command guidance |
| [#6326](#6326),
[#5868](#5868),
[#5539](#5539) | v0.0.76 release
notes, platform matrix, inference options, and local-inference guidance
|
| [#6396](#6396),
[#6390](#6390),
[#6007](#6007) | v0.0.76 release
notes and existing messaging guidance |
| [#5388](#5388),
[#6249](#6249),
[#6303](#6303),
[#6306](#6306) | v0.0.76 release
notes and command/lifecycle guidance |

## 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:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/generate-platform-docs.test.ts test/agent-variant-docs.test.ts
test/sync-agent-variant-docs.test.ts` (3 files, 29 tests passed)
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) —
completed with 0 errors and 2 pre-existing Fern warnings
- [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)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


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

## Summary by CodeRabbit

* **Documentation**
* Added v0.0.76 release notes content, and removed an older conflicting
bullet from the surrounding release history.
* Expanded Local NVIDIA NIM guidance across inference/provider docs,
including an advisory for Linux arm64 DGX Spark/DGX Station hosts when a
matching `linux/arm64` image manifest is unavailable.
* Updated the command reference for correct session-section rendering
and clarified `gc` image cleanup sources.
* **Tests**
* Added coverage ensuring Deep Agents omits sessions headings while
Hermes includes them.
* **CI**
* Refreshed Local NVIDIA NIM provider notes used in the platform matrix.

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

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary

Consume the official Nemotron 3 Ultra profile from
`deepagents-code[nvidia]==0.1.34`, which pins `deepagents==0.7.0a6`.
This keeps the managed model IDs and public behavior unchanged while
preserving the optional first-run name prompt and suppressed
dependency/model pickers from NVIDIA#6410 and NVIDIA#6418.

## Changes

- Pin `deepagents-code[nvidia]==0.1.34` and `deepagents==0.7.0a6`;
regenerate the hash-locked dependency set with only
`langchain-google-genai` moving from `4.2.6` to `4.2.7`.
- Remove the temporary profile source and license wiring, then retain an
atomic, idempotent, fail-closed alias bridge for
`openai:nvidia/nemotron-3-ultra-550b-a55b` and
`openai:nvidia/nvidia/nemotron-3-ultra`.
- Bind removal of that bridge to its exact DCode/Deep Agents
version-and-hash gate in `dependency-review.md`; this PR intentionally
does not create a separate follow-up issue.
- Port the managed DCode hardening patch to the `0.1.34` package layout
and direct-return MCP loader while preserving JSON diagnostics and the
NVIDIA#6418 launch overrides.
- Validate the official wheels, all 12 native middleware entries,
unrelated-model isolation, complete graph compilation, and equivalent
single-dispatch behavior for parser-repaired and native `execute` calls.
- Update the DCode documentation and cloud acceptance checks for the
released versions, native profile, TUI startup behavior, and
direct/login-shell inference.

## 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 — reviewer/approval link/justification: [cv's deterministic TUI
contract](NVIDIA#6416 (comment))
is implemented and passed exact-head server acceptance; cv also [waived
a separate bridge-removal
issue](NVIDIA#6416 (comment))
and [accepted the trusted-apt warning as
nonblocking](NVIDIA#6416 (comment))
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable —
normal hooks and `npm run check:diff` passed
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — official-wheel hash-locked validators
passed; profile patch 12/12, direct module 34 passed/1 Linux-only skip,
progressive disclosure 13/13, image 75/75, TUI 19/19, independent DCode
image/TUI 94/94, platform parity 10/10, managed entrypoints 24/24,
workflow boundary 39/39, and updated CLI/onboarding fixtures passed;
repository checks, typecheck, test-size, and `pip-audit` passed
- [x] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — all exact-head Linux CI and
[`ubuntu-repo-cloud-langchain-deepagents-code`](https://github.com/NVIDIA/NemoClaw/actions/runs/28907835011)
passed for `928b50626b303b2008d35f844408a1f83a43a404`
- [x] Quality Gates section completed with required justifications or
waivers — 42 applicable exact-head checks passed; cv recorded the two
advisor dispositions linked above
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with 0 errors and 2 existing repository warnings
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only); `npm run docs:sync-agent-variants` passed
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Prepares the user-facing documentation for NemoClaw v0.0.76 and closes
the release-prep documentation gate. It adds the release highlights,
documents the arm64 Local NIM warning and expanded image cleanup
behavior, and fixes agent-specific command headings in generated guides.

## Changes

- Add the v0.0.76 release-notes section and move the shared-gateway
route containment entry out of the v0.0.74 history where it was
incorrectly placed.
- Document the advisory Linux arm64 Local NIM manifest warning in the
canonical platform matrix and local-inference guidance.
- Document that `gc` scans both gateway-built and locally prebuilt
sandbox image repositories.
- Keep OpenClaw and Hermes session headings out of the generated Deep
Agents command guide.
- Add a focused variant regression test for the agent-specific session
headings.

### Source summary

| Merged sources | Documentation coverage |
| --- | --- |
| [NVIDIA#6414](NVIDIA#6414),
[NVIDIA#6418](NVIDIA#6418),
[NVIDIA#6416](NVIDIA#6416),
[NVIDIA#6344](NVIDIA#6344) | v0.0.76 release
notes and the Deep Agents quickstart/inference routes |
| [NVIDIA#6340](NVIDIA#6340) | v0.0.76
release notes and existing Deep Agents observability guidance |
| [NVIDIA#6338](NVIDIA#6338),
[NVIDIA#6378](NVIDIA#6378),
[NVIDIA#6297](NVIDIA#6297) | v0.0.76 release
notes and existing inference/troubleshooting guidance |
| [NVIDIA#6362](NVIDIA#6362) | v0.0.76
release notes and existing lifecycle, command, and credential guidance |
| [NVIDIA#6330](NVIDIA#6330),
[NVIDIA#6307](NVIDIA#6307),
[NVIDIA#6008](NVIDIA#6008) | v0.0.76 release
notes and existing security, troubleshooting, and command guidance |
| [NVIDIA#6382](NVIDIA#6382) | v0.0.76
release notes and existing MCP/command guidance |
| [NVIDIA#6326](NVIDIA#6326),
[NVIDIA#5868](NVIDIA#5868),
[NVIDIA#5539](NVIDIA#5539) | v0.0.76 release
notes, platform matrix, inference options, and local-inference guidance
|
| [NVIDIA#6396](NVIDIA#6396),
[NVIDIA#6390](NVIDIA#6390),
[NVIDIA#6007](NVIDIA#6007) | v0.0.76 release
notes and existing messaging guidance |
| [NVIDIA#5388](NVIDIA#5388),
[NVIDIA#6249](NVIDIA#6249),
[NVIDIA#6303](NVIDIA#6303),
[NVIDIA#6306](NVIDIA#6306) | v0.0.76 release
notes and command/lifecycle guidance |

## 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:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/generate-platform-docs.test.ts test/agent-variant-docs.test.ts
test/sync-agent-variant-docs.test.ts` (3 files, 29 tests passed)
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) —
completed with 0 errors and 2 pre-existing Fern warnings
- [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)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


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

## Summary by CodeRabbit

* **Documentation**
* Added v0.0.76 release notes content, and removed an older conflicting
bullet from the surrounding release history.
* Expanded Local NVIDIA NIM guidance across inference/provider docs,
including an advisory for Linux arm64 DGX Spark/DGX Station hosts when a
matching `linux/arm64` image manifest is unavailable.
* Updated the command reference for correct session-section rendering
and clarified `gc` image cleanup sources.
* **Tests**
* Added coverage ensuring Deep Agents omits sessions headings while
Hermes includes them.
* **CI**
* Refreshed Local NVIDIA NIM provider notes used in the platform matrix.

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

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: inference Inference routing, serving, model selection, or outputs area: packaging Packages, images, registries, installers, or distribution area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery area: security Security controls, permissions, secrets, or hardening bug-fix PR fixes a bug or regression dependencies Pull requests that update a dependency file integration: dcode LangChain Deep Code integration behavior v0.0.76 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants