Skip to content

fix(images): refresh shared curl pin - #6684

Closed
chengjiew wants to merge 5 commits into
mainfrom
fix/6679_hermes-curl-pin-diagnostics
Closed

fix(images): refresh shared curl pin#6684
chengjiew wants to merge 5 commits into
mainfrom
fix/6679_hermes-curl-pin-diagnostics

Conversation

@chengjiew

@chengjiew chengjiew commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • refresh the unavailable Debian trixie curl pin from 8.14.1-2+deb13u3 to 8.14.1-2+deb13u4 in all sandbox base images
  • add a regression contract that keeps shared curl pins aligned across OpenClaw, Hermes, and Deep Agents Code images

Reproduction

On aits-log-worker-6, a clean debian:trixie-slim reports 8.14.1-2+deb13u4 as the candidate and fails to install the old pin with Version ... was not found.

Validation

  • vitest run test/dcode-base-image-workflow.test.ts (6/6 passed)
  • extracted and built the complete apt install layer from all three production Dockerfile.base files on Linux
  • pre-commit and pre-push hooks passed

Fixes #6679

Refs #6686

Summary by CodeRabbit

  • Chores
    • Updated sandbox base container images to use the latest pinned curl Debian package revision.
  • Tests
    • Added checks to verify all published sandbox base images pin curl to the expected revision and that versions match across images.
  • Chores / Configuration
    • Updated integration test environment to reference the controlled sandbox base image for consistent onboarding fixtures.

Signed-off-by: Chengjie Wang chengjiew@nvidia.com
Signed-off-by: Julie Yaunches jyaunches@nvidia.com

Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Updates pinned Debian curl packages from deb13u3 to deb13u4, configures the integration test image reference, and adds validation that publisher sandbox Dockerfiles use the expected consistent pin.

Changes

Curl pin alignment

Layer / File(s) Summary
Update curl pins
Dockerfile.base, agents/hermes/Dockerfile.base
Both base images pin curl to 8.14.1-2+deb13u4.
Configure integration fixtures
vitest.config.ts
Sets the integration environment’s sandbox base image reference to the latest published image.
Validate publisher alignment
test/dcode-base-image-workflow.test.ts
Extracts pinned curl versions and verifies publisher sandbox images use the expected identical version.

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

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR updates the curl pin and adds a regression test, matching the Hermes build-fix objective in #6679.
Out of Scope Changes check ✅ Passed The extra Dockerfile and Vitest config changes support the shared pin update and regression coverage, so they stay in scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: refreshing the shared curl version pin across sandbox base images.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/6679_hermes-curl-pin-diagnostics

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

@github-code-quality

github-code-quality Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage remains at 96%, unchanged from the main branch.

TypeScript / code-coverage/cli

The overall coverage in the fix/6679_hermes-curl... branch remains at 78%, unchanged from the main branch.

Show a code coverage summary of the most impacted files.
File main d1d4a3b fix/6679_hermes-curl... a902ca5 +/-
src/lib/adapter...shell/client.ts 85% 83% -2%
src/lib/onboard...der-metadata.ts 100% 98% -2%
src/lib/agent/m...fest-readers.ts 96% 98% +2%
src/lib/state/m...ock-identity.ts 98% 100% +2%
src/lib/onboard...box-recovery.ts 79% 81% +2%
src/lib/state/m...lock-storage.ts 86% 88% +2%
src/lib/agent/dashboard-ui.ts 91% 94% +3%
src/lib/agent/defs.ts 80% 84% +4%

Updated July 11, 2026 17:30 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard, rebuild-openclaw, rebuild-hermes
Optional E2E: rebuild-hermes-stale-base

Dispatch hint: cloud-onboard,rebuild-openclaw,rebuild-hermes

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-onboard (high): Deterministic risk plan requires this platform-install validation for base Dockerfile changes; it verifies a clean supported host can install/onboard and reach a usable OpenClaw assistant with the pinned runtime dependencies.
  • rebuild-openclaw (high): Dockerfile.base changed. This job explicitly builds the current OpenClaw base image and exercises the real rebuild path, covering base-image buildability plus sandbox state preservation after rebuild.
  • rebuild-hermes (high): agents/hermes/Dockerfile.base changed. This job explicitly builds the current Hermes base image and validates Hermes sandbox rebuild/state preservation, covering the Hermes-specific base-image path not exercised by cloud-onboard.

Optional E2E

  • rebuild-hermes-stale-base (high): Useful adjacent confidence for Hermes base-image cache refresh behavior when published/stale base tags lag the Dockerfile.base contents, but the direct current-base coverage is provided by rebuild-hermes.

New E2E recommendations

  • base-image-publication (medium): Base-image Dockerfile changes currently rely on heavyweight onboarding/rebuild jobs for live confidence. A narrower E2E could build each changed sandbox base image and its final image with local BASE_IMAGE tags, then smoke the entrypoint without external credentials.
    • Suggested test: base-image-build-smoke

Dispatch hint

  • Workflow: E2E
  • jobs input: cloud-onboard,rebuild-openclaw,rebuild-hermes

@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 `@test/dcode-base-image-workflow.test.ts`:
- Around line 74-79: Update the test case “keeps shared apt package pins aligned
across all sandbox base images (`#6679`)” to explicitly assert that the pinned
curl version is 8.14.1-2+deb13u4, while retaining the existing Set-based
assertion that all Dockerfiles use the same version.
🪄 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: a684490d-8de2-4ecb-9f5d-6dad890f3311

📥 Commits

Reviewing files that changed from the base of the PR and between c245efa and 4a26e7e.

📒 Files selected for processing (4)
  • Dockerfile.base
  • agents/hermes/Dockerfile.base
  • agents/langchain-deepagents-code/Dockerfile.base
  • test/dcode-base-image-workflow.test.ts

Comment thread test/dcode-base-image-workflow.test.ts
@github-actions

github-actions Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor (Nemotron Ultra) — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: Add or justify PRA-T1 and any related test follow-ups.
Open items: 0 required · 0 warnings · 0 suggestions · 2 test follow-ups
Since last review: 0 prior items resolved · 0 still apply · 0 new items found

Action checklist

  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
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 — Run the `cloud-onboard` E2E job for Installer and platform changes must work on a clean supported host with the pinned runtime dependencies. Matched files: `agents/hermes/Dockerfile.base`, `agents/langchain-deepagents-code/Dockerfile.base`, `Dockerfile.base`.. Deterministic regression risks require live validation: platform-install. Static alignment test validates pin consistency at source level. Risk plan invariant 'clean host installs intended pinned dependencies' requires cloud-onboard E2E job (live build on clean host) to verify apt install succeeds and agent runs. Issue [hermes] v0.0.80 can't build a hermes sandbox due to wrong pinned dependency #6679 root cause (all pins aligned but unavailable) only detectable via runtime build.
  • PRA-T2 Runtime validation — Run cloud-onboard E2E job for platform-install family to validate clean-host install of all three sandbox base images with updated curl pin. Deterministic regression risks require live validation: platform-install. Static alignment test validates pin consistency at source level. Risk plan invariant 'clean host installs intended pinned dependencies' requires cloud-onboard E2E job (live build on clean host) to verify apt install succeeds and agent runs. Issue [hermes] v0.0.80 can't build a hermes sandbox due to wrong pinned dependency #6679 root cause (all pins aligned but unavailable) only detectable via runtime build.

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 11, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: No advisor follow-up required beyond maintainer review.
Findings: 0 required · 0 warnings · 0 optional suggestions
Since last review: 0 prior items resolved · 0 still apply · 0 new items found

Workflow run details

This is an automated review. Required findings need action before merge. Warnings and optional suggestions do not require a response or follow-up. A human maintainer makes the final merge decision.

@copy-pr-bot

copy-pr-bot Bot commented Jul 11, 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: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@jyaunches

Copy link
Copy Markdown
Contributor

Superseded by #6689, which carries the same curl pin update and regression coverage on a clean, fully verified branch and includes the integration-fixture CI fix. This PR contains an unverified published commit and cannot be repaired without rewriting published history.

@jyaunches jyaunches closed this Jul 11, 2026
@jyaunches

Copy link
Copy Markdown
Contributor

Thank you @chengjiew for identifying the shared curl pin problem, updating both base images, and adding the regression coverage. Your work directly informed the clean replacement in #6689.

For future NemoClaw PRs, could you please set up commit signing so every commit appears as Verified on GitHub before it is pushed? The repository requires verified commits in contributor-owned PRs, and published unverified history cannot be rewritten here. GitHub’s official setup guide covers the supported GPG, SSH, and S/MIME options: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

ericksoa pushed a commit that referenced this pull request Aug 1, 2026
<!-- markdownlint-disable MD041 -->
## Summary

The #6684/#6689 supersession exposed that the maintainer workflow could
select a replacement and recommend closing its source without checking
whether transferred work retained machine-readable contributor
attribution.
This change treats supersession as relationship evidence, requires exact
source-commit authorship or co-authorship before selection and closure,
and preserves the existing authorization boundaries.

## Changes

- Add canonical policy for superseded PR attribution, safe DCO handling,
and independent implementations.
- Classify replacement work as `independent`, `transferred`, or
`unclear`, and leave the winner unset when attribution evidence is
missing.
- Remove supersession as a comparator tiebreaker.
- Sequence transferred work before revalidation, merge, and source-PR
closure in the comparator verdict and review finder.
- Add a focused source-contract test for attribution, contributor
identity, ranking, and operation order.
- Keep `render-verdict.py` and `validation/backtest.md` unchanged
because this is a reviewer workflow contract, not a renderer gate.

## 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 changes maintainer-agent
policy and skill behavior, not a NemoClaw API, CLI, configuration, UI,
runtime workflow, or published documentation page.
- [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: Maintainer-directed
attribution policy change; canonical write-authorization boundaries
remain explicit, the focused contract passes, and the independent review
found no issues.
- [ ] 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: `no-docs-needed`
- Evidence: Reviewed the complete seven-file diff, including the
active/passive parser direction fix and duplicate-edge regression
coverage, after hook formatting. No `docs/` change is needed because the
change affects only maintainer-agent behavior. The final review found no
issues; the focused contract passed 18/18, and repository-managed shfmt
and ShellCheck passed.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 52fdd4a -->
<!-- docs-review-agents-blob-sha: c052d60 -->

## 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 — `npx vitest run --project integration
test/maintainer-skills-policy.test.ts`: 18/18 passed; `npx vitest run
--project integration test/skills-frontmatter.test.ts`: 29/29 passed;
repository-managed shfmt and ShellCheck: passed; `npm run
checks:repository`: passed.
- [ ] 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 to scoped
maintainer skill guidance and its source-contract test.
- [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

* **Documentation**
* Added guidance for handling superseded pull requests, including
contribution attribution, authorship preservation, DCO verification, and
maintainer authorization.
* Clarified how to distinguish independent, transferred, and unclear
work relationships.
* Updated comparison and verdict guidance to require attribution,
commit, and diff verification before selecting a replacement or closing
a pull request.

* **Bug Fixes**
* Improved recognition and direction of active and passive supersession
statements.
* Prevented duplicate supersession relationships from affecting
evaluations.

* **Tests**
* Added coverage for attribution requirements, supersession phrase
parsing, and comparator reruns.

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

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
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.

[hermes] v0.0.80 can't build a hermes sandbox due to wrong pinned dependency

2 participants