Skip to content

fix(hermes): update Hermes Agent to 0.18.2 - #7757

Closed
antoniomtz wants to merge 1 commit into
NVIDIA:mainfrom
antoniomtz:codex/hermes-0.18.2
Closed

fix(hermes): update Hermes Agent to 0.18.2#7757
antoniomtz wants to merge 1 commit into
NVIDIA:mainfrom
antoniomtz:codex/hermes-0.18.2

Conversation

@antoniomtz

@antoniomtz antoniomtz commented Jul 28, 2026

Copy link
Copy Markdown

Summary

Updates the bundled Hermes Agent from 0.18.0 to the published 0.18.2 release required by NeMo Relay. The release pin, artifact integrity values, and version-scoped compatibility checks now agree on the installed version. This is the source-side input to the established base-image publication and release-promotion flow; public installs receive 0.18.2 after that flow publishes the new image, updates the immutable final-image digest, and promotes the resulting release.

Changes

  • Pin the Hermes source archive to v2026.7.7.2 / 0.18.2, including its SHA-256 and npm registry integrity value. The 0.18.2 patch fixes tagged Docker builds upstream.
  • Retain and revalidate the existing session-preview and Langfuse compatibility workarounds against the new pinned source. The build guard still requires a fresh review before a later Hermes upgrade.
  • Add v2026.7.7.2 to the reviewed light-skin source list and update version-bound test fixtures.
  • Keep the installer unchanged: it installs a selected NemoClaw revision, while the Hermes version belongs in the published sandbox base image. Existing Hermes sandboxes require a rebuild after the release promotion.

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: The version pin and compatibility guards do not change a documented command, configuration, or user workflow.
  • 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 published v2026.7.7.2 source tag, archive SHA-256, npm integrity value, retained patch contracts, and light-skin source diff. The change adds no network, credential, or policy path.
  • 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: no-docs-needed
  • Evidence: No documentation paths changed. Reviewed the changed Hermes comments and test wording against WRITING.md; reviewed applicable documentation style in docs/CONTRIBUTING.md. No user-facing workflow changed. git diff --check passed. Validation evidence: normal pre-commit hooks including hadolint passed; CLI connect-env 9 passed; integration dependency-pin/update-script 18 passed; E2E Langfuse 3 passed; the targeted Hermes upgrade guard passed; update script check passed. The unrelated full doctor config-hash test has a local chmod EPERM limit.
  • Agent: Codex Desktop, documentation-writer review

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 check:diff passed 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: src/lib/domain/sandbox/connect-env.test.ts passed 9; test/dependency-pins-check.test.ts and test/update-hermes-agent-script.test.ts passed 18; test/e2e/support/hermes-langfuse-credential-patch.test.ts passed 3; the targeted Hermes upgrade guard passed 1; bash scripts/update-hermes-agent.sh --tag v2026.7.7.2 --check passed. The unrelated full doctor config-hash test has a local chmod EPERM limit for CI to confirm.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: Not applicable; the change updates a dependency pin and focused version-bound contracts.
  • 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)

Signed-off-by: Antonio Martinez anmartinez@nvidia.com

Summary by CodeRabbit

  • Updates

    • Updated the bundled Hermes Agent to v0.18.2.
    • Added compatibility support for the corresponding Hermes release.
    • Refreshed session preview and credential validation compatibility for the new version.
  • Bug Fixes

    • Improved build-time checks to detect mismatched Hermes versions and outdated compatibility workarounds.
  • Tests

    • Updated version and compatibility checks to validate Hermes v0.18.2.

Signed-off-by: Antonio Martinez <anmartinez@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Jul 28, 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.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Hermes is pinned to v2026.7.7.2 / semver 0.18.2. Version-dependent Dockerfile checks, manifests, patch documentation, reviewed-version tracking, and related test fixtures and assertions are updated accordingly.

Changes

Hermes release update

Layer / File(s) Summary
Release pins and version contracts
agents/hermes/Dockerfile.base, agents/hermes/manifest.yaml, agents/hermes/hermes-wrapper.py, agents/hermes/patch-*.{mts,py}
Hermes build metadata, expected semver, wrapper alignment comments, and patch documentation reference v2026.7.7.2 / 0.18.2.
Compatibility guard updates
agents/hermes/Dockerfile, test/hermes-doctor-config-hash.test.ts
Dockerfile compatibility checks and diagnostics use Hermes 0.18.2, with the doctor test updated to match.
Reviewed-version tracking and updater tests
src/lib/domain/sandbox/connect-env.{ts,test.ts}, test/update-hermes-agent-script.test.ts
The reviewed-version allowlist and updater test tag, fixtures, and assertions include the new Hermes release.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: integration: hermes, area: packaging, area: policy, bug-fix, v0.0.97

Suggested reviewers: cv, jyaunches

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 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 main change: updating the Hermes Agent to version 0.18.2.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@github-actions

github-actions Bot commented Jul 28, 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 · medium confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized E2E selections differ; severity counts match.

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-inference, cloud-onboard, full-e2e, hermes-e2e, security-posture

Workflow run details

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

@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/hermes/hermes-wrapper.py`:
- Around line 292-294: The protected sources changed, but their Dockerfile
integrity hashes are stale. Regenerate the SHA-256 values and update
NEMOCLAW_HERMES_WRAPPER_SHA256 in agents/hermes/Dockerfile for
agents/hermes/hermes-wrapper.py lines 292-294, and
NEMOCLAW_HERMES_LANGFUSE_PATCHER_SHA256 there for
agents/hermes/patch-langfuse-credentials.mts line 10; leave the source files
otherwise unchanged.
🪄 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: 75a7dabf-0b58-4c90-b8be-401332f72103

📥 Commits

Reviewing files that changed from the base of the PR and between 71a7856 and bc88e37.

📒 Files selected for processing (10)
  • agents/hermes/Dockerfile
  • agents/hermes/Dockerfile.base
  • agents/hermes/hermes-wrapper.py
  • agents/hermes/manifest.yaml
  • agents/hermes/patch-langfuse-credentials.mts
  • agents/hermes/patch-session-list-preview.py
  • src/lib/domain/sandbox/connect-env.test.ts
  • src/lib/domain/sandbox/connect-env.ts
  • test/hermes-doctor-config-hash.test.ts
  • test/update-hermes-agent-script.test.ts

Comment on lines +292 to +294
# Hermes Agent CLI in agents/hermes/Dockerfile.base (HERMES_VERSION=v2026.7.7.2,
# HERMES_SEMVER=0.18.2) and agents/hermes/manifest.yaml (expected_version
# "0.18.2"). Unknown flags deliberately fail closed by passing the original argv

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.

🔒 Security & Privacy | 🔴 Critical | ⚡ Quick win

Update all Dockerfile integrity hashes for changed protected sources.

Both edited files are covered by fail-closed SHA-256 gates, so their unchanged hashes will make the image build fail.

  • agents/hermes/hermes-wrapper.py#L292-L294: regenerate and update NEMOCLAW_HERMES_WRAPPER_SHA256 in agents/hermes/Dockerfile.
  • agents/hermes/patch-langfuse-credentials.mts#L10-L10: regenerate and update NEMOCLAW_HERMES_LANGFUSE_PATCHER_SHA256 in agents/hermes/Dockerfile.
📍 Affects 2 files
  • agents/hermes/hermes-wrapper.py#L292-L294 (this comment)
  • agents/hermes/patch-langfuse-credentials.mts#L10-L10
🤖 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/hermes-wrapper.py` around lines 292 - 294, The protected
sources changed, but their Dockerfile integrity hashes are stale. Regenerate the
SHA-256 values and update NEMOCLAW_HERMES_WRAPPER_SHA256 in
agents/hermes/Dockerfile for agents/hermes/hermes-wrapper.py lines 292-294, and
NEMOCLAW_HERMES_LANGFUSE_PATCHER_SHA256 there for
agents/hermes/patch-langfuse-credentials.mts line 10; leave the source files
otherwise unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant