Skip to content

fix(security): update managed image dependencies - #8862

Merged
senthilr-nv merged 7 commits into
mainfrom
codex/security-nonblocking-dependencies
Aug 12, 2026
Merged

fix(security): update managed image dependencies#8862
senthilr-nv merged 7 commits into
mainfrom
codex/security-nonblocking-dependencies

Conversation

@senthilr-nv

@senthilr-nv senthilr-nv commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Update three reviewed managed-image dependency boundaries. All managed images now install Expat 2.8.3, both OpenClaw runtime locks select Hono 4.12.34, and Deep Agents Code selects langgraph-checkpoint-sqlite 3.1.1.

Changes

  • Download the architecture-specific Debian libexpat1=2.8.3-1 packages from an immutable snapshot, verify their SHA-256 values, and assert the installed dpkg and Python Expat identities in all three managed images.
  • Override Hono to exact version 4.12.34 in the OpenClaw and mcporter production graphs, refresh the locks and integrity bindings, and document the compatibility boundary and removal condition.
  • Add a hash-locked langgraph-checkpoint-sqlite==3.1.1 constraint to Deep Agents Code, refresh its lock, and assert the installed version before publishing the image.
  • Refresh the owning dependency-review records and security-package contract tests.

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: Reviewed the exact Debian, npm, and Python artifact identities, checksums or integrity values, advisory ranges, declared compatibility ranges, and removal conditions. The independent documentation review passed on the final commit.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: agents/langchain-deepagents-code/dependency-review.md, agents/openclaw/dependency-review.md, docs/security/openclaw-2026.7.1-dependency-review.md, and docs/security/sandbox-base-2026-07-25-dependency-review.md
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • 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
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: 101 focused package and image-contract tests passed before refresh; 80 focused audit-transition tests passed after refresh; normal hooks and git diff --check passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Additional validation: the dependency-input Base Images run succeeded for OpenClaw, Hermes, and Deep Agents Code on amd64 and arm64. npm run docs completed with zero errors and the two existing hidden Fern warnings.


Signed-off-by: Senthil Ravichandran senthilr@nvidia.com

Summary by CodeRabbit

  • Security Updates

    • Updated the Expat security package to version 2.8.3-1 across managed images and runtime checks.
    • Pinned Hono to version 4.12.34 to address known advisories.
    • Refreshed dependency audits, lockfile integrity checks, and security inventories.
  • Dependency Updates

    • Added SQLite checkpoint support for LangGraph with version 3.1.1.
    • Updated dependency validation and package inventories for more reliable builds and runtime verification.

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv senthilr-nv self-assigned this Aug 12, 2026
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: c78d54a8-0714-4db0-8c7e-cf8bbf9b28b2

📥 Commits

Reviewing files that changed from the base of the PR and between 59a9f2a and bee8964.

📒 Files selected for processing (1)
  • src/lib/onboard/dockerfile-remote-dashboard-bind-contract.ts

📝 Walkthrough

Walkthrough

The changes update managed-image Expat pins to 2.8.3-1, pin OpenClaw and mcporter Hono to 4.12.34, refresh lockfile digests and security reviews, add langgraph-checkpoint-sqlite==3.1.1, and update a Dockerfile contract digest.

Changes

Security and dependency pin refresh

Layer / File(s) Summary
Expat package baseline and validation
Dockerfile*, agents/*/Dockerfile*, docs/security/sandbox-base-2026-07-25-dependency-review.md, src/lib/sandbox-base-image/security-inventory.ts, test/helpers/*, test/*security*
Builds, inventories, runtime checks, security reviews, and fixtures now target libexpat1=2.8.3-1.
OpenClaw Hono pin and lock verification
agents/openclaw/*, Dockerfile*, ci/reviewed-npm-audit.json, docs/security/openclaw-2026.7.1-dependency-review.md, test/*openclaw*, test/mcporter-supply-chain.test.ts
OpenClaw and mcporter override Hono to 4.12.34. Lock digests, advisory reviews, audits, and dependency graph assertions were updated.
LangChain SQLite checkpoint pin
agents/langchain-deepagents-code/*, test/langchain-deepagents-code-image.test.ts
The image pins and verifies langgraph-checkpoint-sqlite==3.1.1 in requirements, build checks, dependency reviews, and tests.
Dockerfile bind contract
src/lib/onboard/dockerfile-remote-dashboard-bind-contract.ts
The canonical post-generator instruction allowlist now uses the updated SHA-256 digest.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested labels: chore

Suggested reviewers: cv, prekshivyas

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the pull request's primary security dependency updates across managed images.
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.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/security-nonblocking-dependencies

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

@github-actions

Copy link
Copy Markdown
Contributor

@github-code-quality

github-code-quality Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit bee8964 in the codex/security-nonbl... branch remains at 96%, unchanged from commit 52171fd in the main branch.


Updated August 12, 2026 16:40 UTC

Comment thread test/openclaw-locked-install.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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@agents/openclaw/dependency-review.md`:
- Line 26: Update the removal condition in the dependency review guidance to
require a new review and synchronized updates to invalidState, lockfile digests,
and tests before accepting any later Hono version; keep the exact-version gate
at 4.12.34 and preserve the mcporter test’s overridden: true expectation.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0ff219ab-b288-4a8a-847b-da7a0c284f9f

📥 Commits

Reviewing files that changed from the base of the PR and between 5aaf22b and 8907252.

⛔ Files ignored due to path filters (3)
  • agents/langchain-deepagents-code/requirements.lock is excluded by !**/*.lock
  • agents/openclaw/mcporter-runtime/package-lock.json is excluded by !**/package-lock.json
  • agents/openclaw/openclaw-runtime/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (23)
  • Dockerfile
  • Dockerfile.base
  • agents/hermes/Dockerfile
  • agents/hermes/Dockerfile.base
  • agents/langchain-deepagents-code/Dockerfile
  • agents/langchain-deepagents-code/Dockerfile.base
  • agents/langchain-deepagents-code/dependency-review.md
  • agents/langchain-deepagents-code/requirements.in
  • agents/openclaw/dependency-review.md
  • agents/openclaw/mcporter-runtime/package.json
  • agents/openclaw/openclaw-runtime/package.json
  • ci/reviewed-npm-audit.json
  • docs/security/openclaw-2026.7.1-dependency-review.md
  • docs/security/sandbox-base-2026-07-25-dependency-review.md
  • src/lib/sandbox-base-image/security-inventory.ts
  • test/helpers/base-apt-security-functions.ts
  • test/helpers/onboard-script-mocks.cjs
  • test/helpers/python-parser-security-fixture.ts
  • test/langchain-deepagents-code-image.test.ts
  • test/mcporter-supply-chain.test.ts
  • test/openclaw-dependency-review.test.ts
  • test/openclaw-locked-install.test.ts
  • test/sandbox-base-security-packages.test.ts

Comment thread agents/openclaw/dependency-review.md Outdated
Comment thread test/openclaw-locked-install.test.ts Fixed
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Failed

Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • define — hash-locked security constraint at agents/langchain-deepagents-code/dependency-review.md:19: Define this term at first use or use an established phrase that states the exact version and hash constraint.
  • established — exact override at docs/security/openclaw-2026.7.1-dependency-review.md:143: Retain the established term and identify the selected version and declared range.
  • established — source-of-truth boundary at agents/openclaw/dependency-review.md:26: Retain the established term and name the authoritative dependency artifacts.

E2E guidance

Advisory only. A maintainer can dispatch the default E2E suite for the commit under review.

Recommended E2E: None

Manual-only E2E: cloud-inference, cloud-onboard, full-e2e, hermes-e2e, hermes-inference-switch, managed-image-multiarch-startup, security-posture, onboard-repair, onboard-resume, ubuntu-repo-cloud-langchain-deepagents-code
The manual PR workflow does not run these selectors for the commit under review. Run them from reviewed code on main.

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv

Copy link
Copy Markdown
Collaborator Author

Addressed the review findings in 34d861a: removed the unused lock digest constant and aligned the Hono override removal condition with the exact-version security gate. Focused tests pass (37/37), documentation validation passes, and the exact-head Base Images run succeeded for all three images on amd64 and arm64: https://github.com/NVIDIA/NemoClaw/actions/runs/31570611861

@senthilr-nv

Copy link
Copy Markdown
Collaborator Author

The updated exact head 34d861a2d now has a complete green Base Images run for OpenClaw, Hermes, and Deep Agents Code on amd64 and arm64: https://github.com/NVIDIA/NemoClaw/actions/runs/31572071431. Once the current PR workflow finishes, the stale Deep Agents image-resolution failure can be rerun against these published exact-head images.

@copy-pr-bot

copy-pr-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv

Copy link
Copy Markdown
Collaborator Author

Refreshed onto current main at a5faa6afc. The trusted Hono lock transition is now complete: only the replacement OpenClaw and mcporter lock digests remain authorized. All 80 focused audit-transition tests, normal hooks, and git diff --check pass; GitHub verifies both refreshed commits. Exact-head Base Images validation: https://github.com/NVIDIA/NemoClaw/actions/runs/31607467553. The initial final-image jobs selected the previous Expat 2.8.2 base; I will rerun them after this matching Expat 2.8.3 base finishes.

@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions area: packaging Packages, images, registries, installers, or distribution area: security Security controls, permissions, secrets, or hardening bug-fix PR fixes a bug or regression integration: dcode LangChain Deep Code integration behavior labels Aug 12, 2026
@senthilr-nv
senthilr-nv requested review from cv and prekshivyas August 12, 2026 14:53
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv
senthilr-nv merged commit 250d4ab into main Aug 12, 2026
61 of 67 checks passed
@senthilr-nv
senthilr-nv deleted the codex/security-nonblocking-dependencies branch August 12, 2026 16:47
prekshivyas pushed a commit to HOYALIM/NemoClaw that referenced this pull request Aug 13, 2026
<!-- markdownlint-disable MD041 -->

Update three reviewed managed-image dependency boundaries. All managed
images now install Expat 2.8.3, both OpenClaw runtime locks select Hono
4.12.34, and Deep Agents Code selects `langgraph-checkpoint-sqlite`
3.1.1.

- Download the architecture-specific Debian `libexpat1=2.8.3-1` packages
from an immutable snapshot, verify their SHA-256 values, and assert the
installed dpkg and Python Expat identities in all three managed images.
- Override Hono to exact version 4.12.34 in the OpenClaw and mcporter
production graphs, refresh the locks and integrity bindings, and
document the compatibility boundary and removal condition.
- Add a hash-locked `langgraph-checkpoint-sqlite==3.1.1` constraint to
Deep Agents Code, refresh its lock, and assert the installed version
before publishing the image.
- Refresh the owning dependency-review records and security-package
contract tests.

- [ ] 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)

- [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: Reviewed the exact
Debian, npm, and Python artifact identities, checksums or integrity
values, advisory ranges, declared compatibility ranges, and removal
conditions. The independent documentation review passed on the final
commit.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `agents/langchain-deepagents-code/dependency-review.md`,
`agents/openclaw/dependency-review.md`,
`docs/security/openclaw-2026.7.1-dependency-review.md`, and
`docs/security/sandbox-base-2026-07-25-dependency-review.md`
- Agent: Codex Desktop
<!-- docs-review-head-sha: a5faa6a -->
<!-- docs-review-agents-blob-sha: c4923a3 -->

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

- [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 — command/result or justification: 101
focused package and image-contract tests passed before refresh; 80
focused audit-transition tests passed after refresh; normal hooks and
`git diff --check` 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)
- [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)

Additional validation: the dependency-input Base Images run succeeded
for OpenClaw, Hermes, and Deep Agents Code on amd64 and arm64. `npm run
docs` completed with zero errors and the two existing hidden Fern
warnings.

---
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>

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

* **Security Updates**
* Updated the Expat security package to version 2.8.3-1 across managed
images and runtime checks.
  * Pinned Hono to version 4.12.34 to address known advisories.
* Refreshed dependency audits, lockfile integrity checks, and security
inventories.

* **Dependency Updates**
  * Added SQLite checkpoint support for LangGraph with version 3.1.1.
* Updated dependency validation and package inventories for more
reliable builds and runtime verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 250d4ab)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions area: packaging Packages, images, registries, installers, or distribution area: security Security controls, permissions, secrets, or hardening bug-fix PR fixes a bug or regression integration: dcode LangChain Deep Code integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants