fix(hermes): install root Node dependencies in base image#2872
Conversation
Follow up on the dependency-bootstrap gap identified in NousResearch's PR #2834 by installing Hermes root Node dependencies from the upstream lockfile. This keeps the install deterministic with npm ci and removes transient Camoufox download artifacts from /tmp before the Docker layer is committed. Co-authored-by: Ben Barclay <ben@nousresearch.com> Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a clarifying build comment to the Hermes Dockerfile and inserts an explicit ChangesHermes Dockerfile build
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Review rate limit: 9/10 reviews remaining, refill in 6 minutes. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
agents/hermes/Dockerfile.base (1)
147-148: Run Hermes E2E workflows for this base-image dependency bootstrap change.Since this touches
agents/hermes/**install/bootstrap behavior, I recommend runninghermes-e2eandrebuild-hermes-e2ebefore merge to validate onboarding, health probes, and upgrade path end-to-end.As per coding guidelines, "
agents/hermes/**: This directory contains the Hermes agent. Changes affect multi-agent onboarding, health probes, and inference routing." and the recommended selective run isgh workflow run nightly-e2e.yaml --ref <branch> -f jobs=hermes-e2e,rebuild-hermes-e2e.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents/hermes/Dockerfile.base` around lines 147 - 148, This change touches agents/hermes/Dockerfile.base (the npm ci and cleanup lines shown), which can affect Hermes onboarding and runtime; before merging, run the Hermes end-to-end workflows to validate onboarding, health probes, and upgrade path by triggering the nightly-e2e.yaml workflow with only the hermes-e2e and rebuild-hermes-e2e jobs (for example: run nightly-e2e.yaml --ref <branch> -f jobs=hermes-e2e,rebuild-hermes-e2e) and address any failures observed in the Hermes agent bootstrap or probes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@agents/hermes/Dockerfile.base`:
- Around line 147-148: This change touches agents/hermes/Dockerfile.base (the
npm ci and cleanup lines shown), which can affect Hermes onboarding and runtime;
before merging, run the Hermes end-to-end workflows to validate onboarding,
health probes, and upgrade path by triggering the nightly-e2e.yaml workflow with
only the hermes-e2e and rebuild-hermes-e2e jobs (for example: run
nightly-e2e.yaml --ref <branch> -f jobs=hermes-e2e,rebuild-hermes-e2e) and
address any failures observed in the Hermes agent bootstrap or probes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 162ff5c0-039a-430c-84c3-fcd83d363670
📒 Files selected for processing (1)
agents/hermes/Dockerfile.base
Summary
Follows up on NousResearch's dependency-bootstrap proposal in #2834 and the maintainer-side #2846 by carrying the remaining root Node dependency install into the Hermes base image. The existing
uv syncstep covers the supported Python integration extras; this adds deterministicnpm cifrom the Hermes root lockfile so browser tooling such asagent-browseris available in the extracted Hermes tree.Credit
Thanks to Ben Barclay and the NousResearch team for the original PR #2834. They identified the Hermes dependency-bootstrap gap and proposed the direction this follow-up carries into the current NemoClaw base-image flow.
Related Issue
Follow-up to #2834 and #2846.
Changes
npm ci --prefer-offline --no-audit --no-fundafter the existinguv syncstep./tmp/camoufox-*installer downloads in the same Docker layer so large temporary archives do not persist into the image.Type of Change
Verification
npx prek run --all-filespassesnpm testpassesmake docsbuilds without warnings (doc changes only)Additional validation:
git diff --checkdocker build --progress=plain --output=type=cacheonly -f agents/hermes/Dockerfile.base .uv syncstepnpm cistep/usr/local/bin/hermes --versionreportsHermes Agent v0.11.0 (2026.4.23)Signed-off-by: Aaron Erickson aerickson@nvidia.com
Summary by CodeRabbit