fix(security): update managed Python dependencies - #8203
Conversation
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 6a1930a in the TypeScript / code-coverage/cliThe overall coverage in commit 6a1930a in the Show a code coverage summary of the most impacted files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-8203.docs.buildwithfern.com/nemoclaw |
📝 WalkthroughWalkthroughThe PR refreshes Hermes and Deep Agents Code security dependencies, lockfile metadata, audit records, image version checks, and messaging integration expectations. It updates ChangesSecurity dependency refresh
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate. 3 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 2 optional E2E recommendations
This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (3)
test/langchain-deepagents-code-image.test.ts (1)
1046-1047: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAssert the Dockerfile pins per key instead of as one ordered substring.
This assertion requires three keys to appear contiguously, in this order, with this exact spacing, inside the Python dict literal on
agents/langchain-deepagents-code/Dockerfile.baseline 320. Reordering the keys or reformatting the line breaks the test without changing build behavior. The property under test is that each pin is asserted by the image build, not that the keys sit next to each other.♻️ Assert each pin independently
- expect(readAgentFile("Dockerfile.base")).toContain( - "'aiohttp': '3.14.3', 'cryptography': '50.0.0', 'deepagents-code': '0.1.34'", + const dockerfileBase = readAgentFile("Dockerfile.base"); + for (const [name, expectedVersion] of [ + ["aiohttp", "3.14.3"], + ["cryptography", "50.0.0"], + ["deepagents-code", "0.1.34"], + ] as const) { + expect(dockerfileBase).toContain(`'${name}': '${expectedVersion}'`); + }🤖 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/langchain-deepagents-code-image.test.ts` around lines 1046 - 1047, Update the Dockerfile.base assertion in the relevant test to verify the aiohttp, cryptography, and deepagents-code pins independently rather than as one ordered contiguous substring. Keep each expected version tied to its specific key while allowing key reordering or formatting changes.Source: Path instructions
agents/hermes/security-dependencies.patch (1)
87-88: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winKeep the advisory reference on the
webextra pin.The
mcp,dev, andcomputer-useextras each keep an explicitGHSA-82w8-qh3p-5jfqreference on the samestarlette==1.3.1pin. Thewebextra now records only "the latest reviewed request parsing and URL fixes". That wording does not state a security floor, so a future reader cannot tell whether the pin is a security constraint or a preference. FastAPI pulls Starlette transitively, which is the reason the original comment gave for pinning it in every Starlette-backed extra.♻️ Restore the advisory reference and the transitive-resolution rationale
-# starlette==1.3.1 includes the latest reviewed request parsing and URL fixes. +# starlette==1.3.1 pinned for GHSA-82w8-qh3p-5jfq — fastapi pulls Starlette +# transitively, so pin the patched floor here too. See the mcp extra above. web = ["fastapi==0.133.1", "uvicorn[standard]==0.41.0", "starlette==1.3.1", "python-multipart==0.0.27"]🤖 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 `@agents/hermes/security-dependencies.patch` around lines 87 - 88, Update the comment on the web extra pin to include the explicit GHSA-82w8-qh3p-5jfq advisory reference and the transitive-resolution rationale, matching the pattern established in the mcp, dev, and computer-use extras. The comment should clarify that this starlette==1.3.1 pin is a security constraint due to FastAPI's transitive pull of Starlette, not merely a preference for the latest reviewed fixes.test/hermes-dependency-review.test.ts (1)
154-156: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winVersion-bump guards in both test files are positive-only, so a leftover superseded pin still passes. Each site asserts only that the new version string is present. Neither asserts that the replaced version string is gone. The pins appear in several places per artifact —
pyproject.tomlextras,uv.lockpackage entries andrequires-distmetadata, the lock file, and the Dockerfile assertion dict — so a partial edit is a realistic failure mode that these tests would not catch. The shared fix is to add absence assertions for the superseded versions alongside each presence assertion.
test/hermes-dependency-review.test.ts#L154-L156: addexpect(securityDependenciesPatch).not.toContain(...)for"aiohttp==3.14.1", the supersededcryptographypin, and"alibabacloud-dingtalk==2.2.42"; add the matchingexpect(dockerfileBase).not.toContain(...)checks for the L165-166 pins.test/langchain-deepagents-code-image.test.ts#L1040-L1045: addexpect(requirementsLock).not.toContain(...)foraiohttp==3.14.1and the supersededcryptographypin, so a stale or incompletely recompiledrequirements.lockfails the test.Confirm the superseded
cryptographyversion before you use it; see the related comment ondocs/security/hermes-0.19.0-dependency-review.mdline 175, which records48.0.1while the patch replaces46.0.7.As per path instructions: "Migration tests must prove the superseded path is unreachable or removed, not merely prove that the new path also works."
🤖 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/hermes-dependency-review.test.ts` around lines 154 - 156, The version-bump tests use only positive assertions (checking new versions exist) without confirming old versions are absent, so partial edits would pass. At test/hermes-dependency-review.test.ts lines 154-156, add expect(securityDependenciesPatch).not.toContain(...) assertions to confirm the absence of the superseded versions aiohttp==3.14.1, cryptography==46.0.7, and alibabacloud-dingtalk==2.2.42 alongside the existing presence checks; also add matching expect(dockerfileBase).not.toContain(...) assertions for the pins referenced at lines 165-166. At test/langchain-deepagents-code-image.test.ts lines 1040-1045, add expect(requirementsLock).not.toContain(...) assertions to confirm absence of aiohttp==3.14.1 and the superseded cryptography==46.0.7 version. This ensures all occurrences of replaced versions are updated, not just some of them.Source: Path instructions
🤖 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 `@agents/hermes/security-dependencies.patch`:
- Around line 16-18: Update the dependency audit record for tornado==6.5.7 to
document that it is the lowest version fixing all three cited advisories, with
the first two requiring 6.5.6 and GHSA-pw6j-qg29-8w7f requiring 6.5.7. Also
record why the change includes the additional Tornado, Starlette, Pillow, and
MCP scope.
- Around line 274-293: The dependency audit record should explicitly document
the downgrade of alibabacloud-tea-openapi from 0.4.4 to 0.3.16, including its
sdist-only distribution and incomplete PyPI dependency metadata, and similarly
address alibabacloud-tea-xml 0.0.3. Update the relevant section of the Hermes
dependency review so it records whether these conditions were audited and deemed
expected and acceptable.
In `@docs/security/hermes-0.19.0-dependency-review.md`:
- Around line 164-165: Correct the selected third-party package count in the
dependency review text from 94 to 88. Keep the existing version-transition and
downstream security-selection details unchanged, and ensure the description
reflects that the listed pins do not add packages to the selected closure.
---
Nitpick comments:
In `@agents/hermes/security-dependencies.patch`:
- Around line 87-88: Update the comment on the web extra pin to include the
explicit GHSA-82w8-qh3p-5jfq advisory reference and the transitive-resolution
rationale, matching the pattern established in the mcp, dev, and computer-use
extras. The comment should clarify that this starlette==1.3.1 pin is a security
constraint due to FastAPI's transitive pull of Starlette, not merely a
preference for the latest reviewed fixes.
In `@test/hermes-dependency-review.test.ts`:
- Around line 154-156: The version-bump tests use only positive assertions
(checking new versions exist) without confirming old versions are absent, so
partial edits would pass. At test/hermes-dependency-review.test.ts lines
154-156, add expect(securityDependenciesPatch).not.toContain(...) assertions to
confirm the absence of the superseded versions aiohttp==3.14.1,
cryptography==46.0.7, and alibabacloud-dingtalk==2.2.42 alongside the existing
presence checks; also add matching expect(dockerfileBase).not.toContain(...)
assertions for the pins referenced at lines 165-166. At
test/langchain-deepagents-code-image.test.ts lines 1040-1045, add
expect(requirementsLock).not.toContain(...) assertions to confirm absence of
aiohttp==3.14.1 and the superseded cryptography==46.0.7 version. This ensures
all occurrences of replaced versions are updated, not just some of them.
In `@test/langchain-deepagents-code-image.test.ts`:
- Around line 1046-1047: Update the Dockerfile.base assertion in the relevant
test to verify the aiohttp, cryptography, and deepagents-code pins independently
rather than as one ordered contiguous substring. Keep each expected version tied
to its specific key while allowing key reordering or formatting changes.
🪄 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: d29e526c-2edc-47d8-9483-2cce49bf6350
⛔ Files ignored due to path filters (1)
agents/langchain-deepagents-code/requirements.lockis excluded by!**/*.lock
📒 Files selected for processing (14)
agents/hermes/Dockerfile.baseagents/hermes/security-dependencies.patchagents/langchain-deepagents-code/Dockerfile.baseagents/langchain-deepagents-code/dependency-review.mdagents/langchain-deepagents-code/requirements.indocs/security/hermes-0.19.0-dependency-review.mdscripts/check-messaging-plan-image-boundary.mtssrc/lib/messaging/channels/metadata.test.tssrc/lib/messaging/channels/teams/manifest.tssrc/lib/messaging/compiler/manifest-compiler.test.tstest/hermes-dependency-review.test.tstest/langchain-deepagents-code-image.test.tstest/messaging-build-applier.test.tstest/messaging-plan-image-boundary.test.ts
|
Exact-head follow-up for bb62198: the aiohttp 3.14.3 and cryptography 50.0.0 pins match the first patched versions for GHSA-cq5v-8q36-5273 and GHSA-g6cj-pr64-35w5, the Deep Agents lock SHA-256 matches its review record, and the image contracts assert both installed versions. The DingTalk/MSAL graph changes are documented as lock-only optional extras outside the managed Hermes extras. No new credential, authorization, policy, or network-control code is introduced in this diff. The required markdown-links failure is base drift: this head is five commits behind current main and the check is evaluating two contributor-update-hermes skill paths that main has since removed. Please refresh the branch before final review. Protected image build/E2E and automated review remain pending, so this is not an approval or merge-ready declaration. |
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
|
Post-merge regression on current main f504948: PR #8203 correctly changed the Hermes Teams authority to aiohttp==3.14.3, but test/managed-image-capability-union.test.ts still expects 3.14.1 at lines 52 and 152. Reproduction: npx vitest run --project integration test/managed-image-capability-union.test.ts yields exactly 2 failures and 3 passes; changing only those two expectations to 3.14.3 yields 5/5 passes. This inherited failure is now red on refreshed release PRs #8188 and #8200. Please land a focused follow-up updating the two stale test expectations; no production or dependency change is needed. |
<!-- markdownlint-disable MD041 --> ## Summary Recent main changes left managed-image validation and platform-watch fixtures out of sync with their production contracts. This change restores those gates without weakening package identity, provenance, or forward ownership checks. ## Changes - Align the Hermes managed-image capability checks with the reviewed `aiohttp==3.14.3` update from #8203. - Validate neutral OpenClaw plugin packages from the installed project directories because OpenClaw 2026.7.1 does not persist `plugins.installs` metadata. - Validate Google Chat with the rest of the installed OpenClaw capability union. - Match the BuildKit SLSA base-dependency URI emitted for digest-pinned images while retaining the separate digest check. - Mark the Ubuntu container checkout as a Git safe directory and verify `HEAD` before generating build identity. - Make the VM-driver snapshot fixture report the all-interface forward binding required on WSL. - Leave the macOS Homebrew failure to existing PR #7739, which has the focused product fix. ## Type of Change - [x] 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 - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: This repair changes CI validation and platform test fixtures. It does not change a supported user command, configuration, workflow, or default. - [x] 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: Pending review of managed-image provenance and package-identity validation. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `blocked` - Evidence: No documentation paths changed. This host has no independent documentation-writer subagent, so the required final review is pending. - Agent: Pi coding agent <!-- docs-review-head-sha: 6cd1da3 --> <!-- docs-review-agents-blob-sha: 3dd7c24 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 6 integration files / 60 tests passed; WSL-bound snapshot fixture passed 5/5; review follow-ups passed 33 and 15 focused tests; repository checks, ShellCheck, and normal hooks passed; the repaired verifier accepted the failed main Deep Agents attestation. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: GitHub CI will run the broad gate; the redundant local broad run was stopped after focused validation passed. - [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) - [ ] 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: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved managed image validation for Google Chat and plugin installation consistency. - Updated Hermes image checks to use the latest approved `aiohttp` version. - Improved dashboard traffic forwarding behavior in WSL environments. - Corrected Docker dependency evidence generation for platform-specific image references. - **Reliability** - Added safeguards to ensure builds use the intended source revision. - Expanded automated checks for image publication, plugin configuration, and workflow integrity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- markdownlint-disable MD041 --> ## Summary Prepares the canonical v0.0.102 release documentation from the current release-labeled scope. The change adds a dated changelog for all 38 user-facing shipping PRs and corrects the OpenClaw agent command reference for the behavior delivered by #8191. ## Changes - Add `docs/changelog/2026-08-04.mdx` with the v0.0.102 release summary, detailed behavior changes, support boundaries, security evidence links, and links to durable documentation. - Update `docs/reference/commands.mdx` to describe non-JSON OpenClaw output capture, its combined limit, marker handling, stream suppression, recovery guidance, and exit behavior. - [#8167](#8167) -> `docs/changelog/2026-08-04.mdx`: Records authenticated attachment of operator-managed llama.cpp servers. - [#8129](#8129) -> `docs/changelog/2026-08-04.mdx`: Records the Experimental managed vLLM profile for two DGX Spark systems. - [#7983](#7983) -> `docs/changelog/2026-08-04.mdx`: Records qualification of the May 2026 GB300WS factory image. - [#8207](#8207) -> `docs/changelog/2026-08-04.mdx`: Records the qualified DGX Station driver transaction. - [#8208](#8208) -> `docs/changelog/2026-08-04.mdx`: Records mode-bound Express resume state. - [#8158](#8158) -> `docs/changelog/2026-08-04.mdx`: Records recovery of host-global dual-Station runtime ownership. - [#8145](#8145) -> `docs/changelog/2026-08-04.mdx`: Records Windows-host Ollama validation from Docker Desktop's network context. - [#8190](#8190) -> `docs/changelog/2026-08-04.mdx`: Records HTTP model pulls when WSL has no local Ollama executable. - [#8195](#8195) -> `docs/changelog/2026-08-04.mdx`: Records reuse of a healthy installer-managed CLI. - [#8053](#8053) -> `docs/changelog/2026-08-04.mdx`: Records early rejection of incompatible OpenShell gateway versions. - [#8098](#8098) -> `docs/changelog/2026-08-04.mdx`: Records the bounded package-service-to-standalone gateway recovery transition. - [#8216](#8216) -> `docs/changelog/2026-08-04.mdx`: Records the final dashboard port selected during multi-sandbox onboarding. - [#8146](#8146) -> `docs/changelog/2026-08-04.mdx`: Records managed startup-state restoration for stopped sandboxes. - [#8092](#8092) -> `docs/changelog/2026-08-04.mdx`: Records gateway watchdog recovery for classified not-serving states. - [#8182](#8182) -> `docs/changelog/2026-08-04.mdx`: Records consistent managed-recovery wait configuration. - [#8040](#8040) -> `docs/changelog/2026-08-04.mdx`: Records Docker sandbox rollback authority through late validation. - [#8130](#8130) -> `docs/changelog/2026-08-04.mdx`: Records bounded Shields deadline recovery and durable containment. - [#8086](#8086) -> `docs/changelog/2026-08-04.mdx`: Records repair of narrowly validated permission-only configuration drift. - [#8122](#8122) -> `docs/changelog/2026-08-04.mdx`: Records prompt failure and guidance for corrupt transition locks. - [#8124](#8124) -> `docs/changelog/2026-08-04.mdx`: Records policy restoration flags, previews, and target revalidation. - [#7886](#7886) -> `docs/changelog/2026-08-04.mdx`: Records explicit destruction after pre-delete Shields hardening failures while preserving recovery authority. - [#7901](#7901) -> `docs/changelog/2026-08-04.mdx`: Records multi-port uninstall behavior and shared-resource preservation. - [#7984](#7984) -> `docs/changelog/2026-08-04.mdx`: Records one classified transient remote MCP startup retry. - [#7954](#7954) -> `docs/changelog/2026-08-04.mdx`: Records bounded hosted-inference probe replies. - [#7574](#7574) -> `docs/changelog/2026-08-04.mdx`: Records preservation of validated reasoning capabilities through onboarding. - [#8089](#8089) -> `docs/changelog/2026-08-04.mdx`: Records proxy routing for Hermes WhatsApp pairing and media traffic. - [#7682](#7682) -> `docs/changelog/2026-08-04.mdx`: Records native Hermes session deletion and identifier validation. - [#8150](#8150) -> `docs/changelog/2026-08-04.mdx`: Records corporate CA trust for LangChain Deep Agents Code image builds. - [#8156](#8156) -> `docs/changelog/2026-08-04.mdx`: Records reviewed managed runtime dependency remediation. - [#8180](#8180) -> `docs/changelog/2026-08-04.mdx`: Records reviewed MCP discovery runtime dependency updates. - [#8196](#8196) -> `docs/changelog/2026-08-04.mdx`: Records private npm dependency remediation across managed images. - [#8203](#8203) -> `docs/changelog/2026-08-04.mdx`: Records reviewed Hermes and LangChain Deep Agents Code Python dependency updates. - [#8125](#8125) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for invalid enumerated CLI values. - [#8193](#8193) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for unresolved sandbox base images. - [#8118](#8118) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for changed gateway authority. - [#8191](#8191) -> `docs/changelog/2026-08-04.mdx`, `docs/reference/commands.mdx`: Records output capture, marker handling, recovery guidance, and exit behavior for non-JSON OpenClaw agent commands. - [#8187](#8187) -> `docs/changelog/2026-08-04.mdx`: Records the aligned interactive-installation start across supported agents. - [#8153](#8153) -> `docs/changelog/2026-08-04.mdx`: Records current product capabilities and support boundaries. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] 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: - [x] Tests not applicable — justification: This documentation-only release preparation does not change executable behavior. Existing changelog and published-route tests pass. - [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: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: Independently reviewed `docs/changelog/2026-08-04.mdx` and `docs/reference/commands.mdx` at commit `b89913780`. All 38 user-facing v0.0.102 PRs are represented, #8191 behavior matches the implementation, and the writing rules, documentation style, controlled terminology, route structure, and skip policy pass review. Targeted tests pass 36/36 and the documentation build completes with 0 errors. - Agent: Codex Desktop independent documentation writer <!-- docs-review-head-sha: b899137 --> <!-- docs-review-agents-blob-sha: 3dd7c24 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable - Station profile/scenario: Not applicable - Result: Not applicable - Supporting evidence: Not applicable ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` 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/changelog-docs.test.ts test/check-docs-published-routes.test.ts` passed 36/36. - [x] Applicable broad gate passed — not applicable to documentation-only changes; `npm run docs` completed successfully with 0 errors. - [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 existing Fern warnings. - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [x] New doc pages include SPDX header and frontmatter (new pages only) — the native dated changelog uses the required parser-safe MDX SPDX comment and intentionally has no frontmatter. --- Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added release notes for v0.0.102, covering authentication, hardware setup, WSL, installer recovery, sandbox resilience, policy management, inference reliability, CLI improvements, and unified quickstarts. - Updated command documentation to explain how non-JSON agent output is collected, replayed, and reported. - **Bug Fixes** - Improved command-output recovery guidance when output exceeds limits or contains unsupported fallback markers. - Preserved accurate command exit-status reporting after output processing. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Summary
Update the managed Hermes and Deep Agents Code images to
aiohttp3.14.3 andcryptography50.0.0. These versions contain the fixes for GHSA-cq5v-8q36-5273 and GHSA-g6cj-pr64-35w5 while preserving each image's reviewed dependency and runtime contracts.Changes
aiohttp3.14.3 andcryptography50.0.0, including the compatible optional dependency graph selected by the upstream lock.aiohttp3.14.3 andcryptography50.0.0.Type of Change
Quality Gates
Documentation Writer Review
docs-updateddocs/security/hermes-0.19.0-dependency-review.md;agents/langchain-deepagents-code/dependency-review.md; dependency comments and corresponding contract testsDGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailablenpx vitest run --project integration test/hermes-dependency-review.test.ts test/langchain-deepagents-code-image.test.ts(25 passed); focused messaging contract tests (104 passed); clean Hermes patch application anduv lock --check; exact-package smoke importsnpm run docsbuilds without warnings (doc changes only) — passed with 0 errors and 2 existing Fern warningsSecurity and dependency-migration review receipt
6a1930a50594e3dce52d76deb07b448cf503ee84ad26164962eddce3e335fae651b7fb0ee6b95718dbae1b91e8fee8f090418196b78ac2be9a66b82d9296586a69303efbd376beabThe migration crosses four adjacent release ranges and 534 target-side commits: aiohttp
3.14.1→3.14.2(34 commits) and3.14.2→3.14.3(4); cryptography48.0.1→49.0.0(198 target-side commits plus one release-branch-only metadata commit) and49.0.0→50.0.0(298).The review confirmed that aiohttp 3.14.3 fixes the malformed chunked-response parser exposure and strengthens cross-origin sensitive-header removal, while cryptography 50.0.0 fixes the PKCS#7 oracle exposure. Cryptography 49 platform-wheel removals, deprecated aliases, ChaCha20 behavior, and stricter X.509 validation do not affect the managed Linux amd64/arm64 Python 3.13 images or the audited AES/AESGCM call sites. Hermes optional Alibaba and MSAL changes are outside the managed
anthropic messaging web pty mcpextras.The Deep Agents lock SHA-256 is
2e9d59768ea20953c184b52220334e969356ac1a684ff334f0f3767c9f859229; all 119 aiohttp and 46 cryptography hashes match PyPI. Hermes updates its source constraints and frozen uv lock together. The aiohttp producer run29962259677, attempt 12, succeeded for commit5e392ce0456f5235a4ee6ad46f0e806df2f15873. Cryptography wheel run30637286238and publish run30638316464succeeded for commitdcb7050b807b00392fa9fe2eac7cb362fcf355cc. PyPI exposes no registry attestation for aiohttp; the artifact hashes and successful producer evidence provide the available binding.GitHub aggregate checks, security scans, focused tests, and amd64/arm64 managed-image builds passed.
E2E / PR Gateand its coordination check must complete successfully before merge. This receipt is valid only while the reviewed PR commit and effective diff remain unchanged.Signed-off-by: Senthil Ravichandran senthilr@nvidia.com
Summary by CodeRabbit
Security
aiohttp 3.14.3andcryptography 50.0.0.Documentation
Tests