fix(images): preserve managed runtime bundle permissions - #8642
Conversation
Signed-off-by: Apurv Kumaria <akumaria@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 (3)
📝 WalkthroughWalkthroughThe Dockerfiles now validate that ChangesStartup artifact integrity
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 591550a in the TypeScript / code-coverage/cliThe overall coverage in commit 591550a in the Show a code coverage summary of the most impacted files.
Updated |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite against this exact revision. Recommended E2E: 1 optional E2E recommendation
This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
<!-- markdownlint-disable MD041 --> ## Summary PR #8642 restored the managed startup runtime file invariants, but a failed Docker assertion reported only the shell exit code. This change reports the failed invariant and bounded file metadata before preserving the same nonzero build result. ## Changes - Report the invariant name, fixed artifact path, UID, GID, file type, mode, and symlink state for each managed startup runtime assertion in the OpenClaw, Hermes, and LangChain Deep Agents Code images. - Keep the regular-file, non-symlink, `root:root`, and `0444` checks fail-closed. - Extend the shared image contract to require every guarded assertion and execute missing-file and symlink diagnostic paths for all three images. ## 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 internal image-build failure output. It does not change a command, configuration, runtime contract, or documented workflow. - [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: Codex Desktop reviewed commit `b18ad31e7` against all nine security categories. The applicable error-handling, security-testing, and system-security checks passed. The diagnostic emits only a fixed path and numeric file metadata, and every failed assertion still exits nonzero. - [ ] 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: Commit `b18ad31e7` changes only internal managed-image build diagnostics and their tests. It changes no command, configuration, default, runtime behavior, or documented workflow. The review found no terminology, structure, or changed-text findings. - Agent: Codex Desktop <!-- docs-review-head-sha: b18ad31 --> <!-- docs-review-agents-blob-sha: c4923a3 --> ## 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 — `npm exec -- vitest run --project integration test/openclaw-final-image-layout.test.ts test/hermes-final-image-layout.test.ts test/langchain-deepagents-code-image.test.ts` passed 36 tests in 3 files. `hadolint` and `npm run source-shape:check` also 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) - [ ] 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: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved managed startup validation failures with clear diagnostic messages. * Errors now report the failed check, file path, ownership, permissions, file type, and symlink status. * Missing, incorrectly linked, or improperly configured runtime files now fail with actionable details instead of silent errors. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
Restore the required root-owned, immutable
0444mode for the reviewed managed-startup runtime bundle in every managed agent image. The repair uses each final image's existing permission replay so legacy builders remain supported and promotion continues to fail closed.This repair blocks clean trusted main and therefore blocks publication of the draft-only trust-root bootstrap. It does not directly qualify #8616 or #8617.
Changes
root:rootownership and mode0444, then require the final numeric stat to be0:0:444.Type of Change
Quality Gates
0:0:444invariants for all six agent/architecture candidates before aggregate promotion. Focused image-layout and workflow contracts passed for this commit.591550ad54cc43b7b18982712b16d40902f41a29passed all nine security categories with no findings.Documentation Writer Review
no-docs-neededDGX 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 unavailable47focused image/layout/workflow tests passed; the targeted Deep Agents Code compatibility contract passed.npm run checks:repository, Dockerfile lint, reviewed-bundle verification, and the source-shape audit passed.npm run docsbuilds without warnings (doc changes only)Final resolution still requires the first automatic exact-main managed-image run after external merge to pass all six validation jobs and artifact receipts. No manual E2E run was dispatched.
Signed-off-by: Apurv Kumaria akumaria@nvidia.com
Summary by CodeRabbit