Skip to content

ci(e2e): refresh OpenClaw budget after gateway cleanup - #12840

Merged
senthilr-nv merged 4 commits into
mainfrom
fix/openclaw-12382-budget-after-12608
Oct 8, 2026
Merged

senthilr-nv merged 4 commits into
mainfrom
fix/openclaw-12382-budget-after-12608

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Outcome

Refresh the exception for #12382 so its reviewed runtime assertions can pass the independent growth check after #12608 reduced main's gateway assertions.

Reason

#12608 merged before #12718 and changed the base budget bytes. The exception adopted by #12718 therefore matches neither the new base budget nor #12382's prepared integration.

Related issues

Refs #12382, #12718, #12608.

Changes

Replace only the two budget digests for #12382 and add a scoped explanation. Preserve every other exception and all enforcement code.

Budget SHA-256
Base 53c51c4229d387633165771730f8f1a8373f84e9f3303b2144280027a56e3441
Runtime candidate 8162408384d7a6b97ef0062042c73d4bc9486f54d2dfa6c0c5732e42d1060e2a

The runtime transition retains native admin approval before survival/rebuild mutations and the plugin-install success check. It adds one unique assertion point and one generated probe condition over the reduced main budget. It adds no live scenario or matrix lane.

Verification

  • Canonical e2eAssertionBudgetGrowthViolations consumer: accepts the proposed trusted-base transition; rejects a different PR, changed base bytes, changed candidate bytes, and candidate-only policy.
  • Assertion census: the prepared runtime source fits the proposed budget.
  • All 58 growth parser tests passed after resolving the shared-policy conflict. Existing census evidence remains valid because the budgets and runtime source did not change.
  • Signed commit and normal publication hooks passed, including plugin and checked-JavaScript type checks.
  • Reviewed the complete one-file diff. No secrets, API keys, or credentials.

Review notes

The branch incorporates #12837, which repairs the inherited Ubuntu mirrorlist installation failure. The branch also incorporates #12833 and preserves its #12767 exception. The #12382 budget digests are unchanged. The policy comment now cites the maintainer acceptance recorded below; no exception value or enforcement code changed. Signed commit 71535b2 passed normal commit and publication hooks. Fresh CI and Advisor checks for this comment-only update are pending. Senthil approved the PR, confirming that the recorded acceptance resolves his earlier change request.

Maintainer Prekshi Vyas (@prekshivyas) accepted the exact replacement budget pair, including one additional unique assertion point and one generated probe condition. Independent enforcement is not waived: adoption on main remains required before #12382 can use this exception. The approval records the exact replacement pair and its bounded assertion increase.


Signed-off-by: Prekshi Vyas prekshiv@nvidia.com

Summary by CodeRabbit

  • Chores
    • Updated internal CI records with the approved exception’s refreshed verification values. This does not change end-user functionality.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 8, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@prekshivyas prekshivyas self-assigned this Oct 8, 2026
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/NemoClaw/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 433792eb-390f-45c1-b5ba-9967071e294d
📥 Commits

Reviewing files that changed from the base of the PR and between 6b5b867 and 71535b2.

📒 Files selected for processing (1)
  • ci/e2e-assertion-growth-exceptions.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • ci/e2e-assertion-growth-exceptions.json

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The PR #12382 E2E assertion-growth exception retains its pull request number. Its base and head budget digests are refreshed. The policy comment records the approval, transition details, and applicability conditions.

Changes

Assertion growth exception

Layer / File(s) Summary
Update exception policy
ci/e2e-assertion-growth-exceptions.json
The comment records the refreshed transition, budget digests, reported assertion and probe changes, and acceptance and removal conditions. The exception retains its pull request number and uses refreshed base and head budget digests.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Other

Suggested reviewers: rsliter

Merge Risk: ⚪ Minimal · up to 71535

This updates a CI assertion-budget exception and does not change runtime product behavior. Merging it poses no actionable risk. The exception still has to be adopted on main before it can be used.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the CI scope and the main change: refreshing the OpenClaw budget after gateway cleanup. It matches the updated budget digests and exception transition.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@github-code-quality

github-code-quality Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit 71535b2 in the fix/openclaw-12382-b... branch is 97%. The line coverage in commit 63002cd in the main branch is 96%.

Show a line coverage summary of the most impacted files.
File main 63002cd fix/openclaw-12382-b... 71535b2 +/-
nemoclaw/src/onboard/config.ts 98% 96% -2%
nemoclaw/src/index.ts 94% 93% -1%
nemoclaw/src/bl...print/runner.ts 95% 95% 0%
nemoclaw/src/bl...ime-identity.ts 97% 97% 0%
nemoclaw/src/bl...t-management.ts 100% 100% 0%
nemoclaw/src/co.../config-show.ts 100% 100% 0%
nemoclaw/src/commands/slash.ts 100% 100% 0%
nemoclaw/src/on...native-route.ts 0% 100% +100%

Updated October 08, 2026 18:36 UTC

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>

@rsliter rsliter left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed commit 3a31a7e against base c72fb58. No code-level blocking finding. The refreshed SHA-256 values exactly match the base budget and PR #12382 candidate budget. The canonical consumer accepts only PR #12382 with those exact base and head bytes, while wrong-PR, changed-base, changed-head, and candidate-only-policy cases all reject the exception. The focused guardrail suite passed 58/58, the PR #12382 assertion census passed, CodeRabbit found no actionable comments, the exact-head self-hosted qualification run passed, and all nine security categories pass for this policy-only change. I am holding approval because the trusted gate still reports 14 failed core-CI checks, and main has advanced to 5f765a1. The representative shard failed during APT mirrorlist setup before tests, so the failure is not attributable to this JSON diff. Please refresh the branch and rerun required CI; approval can follow once the exact-head gate passes.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit 691f611. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

Request review only when Require no Advisor blockers is green.

All previous runs

@copy-pr-bot

copy-pr-bot Bot commented Oct 8, 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.

@senthilr-nv senthilr-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of commit 6b5b867b3cffc7dfff908d24514f42c0f83d4522 against base 59c3cef9c7233bd6457098b831d82d4c2105daef.

Product scope: blocked. Review verdict: CHANGES_REQUESTED.

Blocking decision — ci/e2e-assertion-growth-exceptions.json:27-28: The replacement SHA-256 pair would let the independent growth check accept PR #12382's new budget transition after this policy reaches main. The recorded approval for prerequisite PR #12718 covered the prior pair (fdc4a78b… to f6b26905…). PR #12840 says that no prior approval for the replacement pair is claimed. The current PR discussion contains no attributable maintainer acceptance of 53c51c42… to 81624083…. Please record a maintainer decision that accepts these exact digests and the resulting one additional unique assertion point and generated probe condition, or remove the refreshed exception. I can re-review the same commit after that decision; a code change is not required if the decision accepts this pair. The current Advisor's customer-value specialist reports the same P1 blocker.

Security review: PASS in all nine categories. (1) Secrets and credentials: no credential data or flow changes. (2) Input validation: the existing parser validates positive PR numbers and lowercase SHA-256 digests. (3) Authentication and authorization: independent enforcement reads trusted-base policy and the event PR number. (4) Dependencies: none change. (5) Error handling and logging: malformed policy throws, and unmatched growth remains a violation. (6) Cryptography and data protection: SHA-256 binds exact budget bytes; no protected data flow changes. (7) Configuration and security headers: only this bounded CI policy entry changes. (8) Security testing: wrong PR, changed bytes, candidate-only policy, and malformed policy are covered. (9) System security: PR code cannot authorize its own independent growth check. No security finding remains.

Validation and feedback: The one-file diff preserves every other exception. Both replacement digests match the actual base budget and PR #12382 candidate budget. The focused parser suite passed 58/58. The canonical consumer accepted the exact transition and rejected a different PR, changed base bytes, changed candidate bytes, and candidate-only policy. CodeRabbit found no actionable comment on this commit. All nine current Advisor artifacts were read; eight are clear and one reports the scope blocker. The cross-issue scan found no candidate issue. All three commits are GitHub Verified, and the PR body carries a DCO sign-off. Collection reached terminal pages: five issue comments, one submitted review, zero inline comments, zero review threads, three commits, and 76 check runs.

Required CI: The five live ruleset contexts have acceptable results on this commit: checks, commit-lint, dco-check, and check-hash passed; changes passed in the core run and was also skipped in other runs. The Advisor blocker gate failed separately. GitHub reports the PR as mergeable but BLOCKED pending review; auto-merge is off.

@prekshivyas

Copy link
Copy Markdown
Collaborator Author

Maintainer decision: Accept.

I accept PR #12840's exact refreshed assertion-budget transition for PR #12382, including the resulting one additional unique assertion point and one generated probe condition:

  • Base budget SHA-256: 53c51c4229d387633165771730f8f1a8373f84e9f3303b2144280027a56e3441
  • Candidate budget SHA-256: 8162408384d7a6b97ef0062042c73d4bc9486f54d2dfa6c0c5732e42d1060e2a

This decision applies to the pair in commit 6b5b867b3cffc7dfff908d24514f42c0f83d4522. It preserves the concurrent-gateway assertion reduction from #12608 and the previously reviewed runtime assertions. The existing parser tests and exact-transition validation cover the policy change.

This is acceptance of the replacement transition identified in Senthil's review. Independent enforcement remains unchanged: the exception must be adopted on main before PR #12382 can use it, a different PR or either different digest remains rejected, and the entry must be removed after #12382 merges. This decision does not waive required checks or authorize merging either PR.

Recorded at my direction by Codex. — Prekshi Vyas (@prekshivyas), repository maintainer

Link the maintainer decision for the exact replacement budget digests.
Preserve every exception value and independent enforcement requirement.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>

@senthilr-nv senthilr-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for commit 6b5b867b3cffc7dfff908d24514f42c0f83d4522.

The replacement digests match the current PR #12382 base and candidate budgets. The policy still accepts only PR #12382 with this exact pair and rejects changed budget bytes. The transition retains the concurrent-gateway assertion reduction, and the focused policy tests pass.

The maintainer accepted this exact transition, including the one additional unique assertion point and generated probe condition. That resolves my earlier change request. The latest PR Review Advisor finding says the decision is missing from its supplied context; the live GitHub comment records it. I found no remaining blocking issue in this PR.

@senthilr-nv
senthilr-nv merged commit cd95b77 into main Oct 8, 2026
78 checks passed
@senthilr-nv
senthilr-nv deleted the fix/openclaw-12382-budget-after-12608 branch October 8, 2026 18:39
prekshivyas added a commit that referenced this pull request Oct 8, 2026
## Outcome

Pinned Ubuntu tools install when `RUNNER_TEMP` has private parent
directories. APT package lists use a unique directory under `/tmp`,
which its `_apt` sandbox can traverse without changing runner-directory
permissions.

## Reason

Changing only `RUNNER_TEMP` permissions cannot grant access through a
private ancestor. A disposable Ubuntu AMD64 container reproduced the
resulting mirror-list failure with the original helper.

This change retains the Ubuntu mirrorlist resolution merged in #12837.
That merge addresses the shared CI installation failure; this PR
preserves directory access and private runner permissions alongside it.

### Related issues

Refs #12382, #12840, #12778, #12837.

## Changes

- Create the package-list directory under `/tmp` and retain its
permissions, ownership, and cleanup.
- Remove changes to `RUNNER_TEMP` permissions. Logs and the isolated
Ubuntu source remain in the runner directory.
- Make the workflow test fixture remove the temporary package-list
directory. Assert that APT uses `/tmp`, runner permissions are not
widened, and the directory is removed.

Package pins, source restrictions, timeouts, retries, and failure
propagation remain unchanged from main.

## Verification

- `vitest run --project integration
test/automation/pull-requests/pr-workflow-contract.test.ts`: all 69
tests passed after integrating #12837.
- Real Ubuntu 24.04 AMD64 installation with the combined helper passed
under a private parent directory. Installed `fd-find 9.0.0-1` and
`ripgrep 14.1.0-1`.
- Verified private directories retain mode `0700`, the system Ubuntu
source is unchanged, temporary files are removed, and the disposable
container is removed.
- Regression mutations: moving lists back under `RUNNER_TEMP`, adding
privileged permission widening, and omitting cleanup each fail the
strengthened test. The complete 69-test workflow suite passes with the
correct helper.
- Earlier reproduction: the original helper exited 100; the directory
repair passed under the same private ancestor.
- Signed commit and normal publication hooks passed, including CLI type
checking.
- Reviewed the complete two-file diff. No secrets, API keys, or
credentials.

## Review notes

Self-review of commit `29e5dc95280829f591a38f42f8f707c7e0b41d30` covered
the complete NVIDIA/NemoClaw diff against main
`5f765a1318a2338114a1f6865de3113d9083b405`, including the sensitive
`.github/actions/ci-install-pinned-ubuntu-packages.sh` path. The
combined helper preserves #12837's source restrictions and passed the
real Linux installation and cleanup checks. Advisor identified a
regression-test gap; this commit repairs it without changing the
installer. All current checks pass, including [core
CI](https://github.com/NVIDIA/NemoClaw/actions/runs/37815724516), [image
qualification](https://github.com/NVIDIA/NemoClaw/actions/runs/37815730289),
and [all nine Advisor
reviews](https://github.com/NVIDIA/NemoClaw/actions/runs/37820691834).
The first CI attempt hit an inherited five-second vLLM unit-test
timeout; one maintainer-approved failed-job rerun passed on the
unchanged commit. All nine Advisor reports are clear and recommend no
additional live E2E for this CI-helper change.

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


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

* **Chores**
* Updated CI package setup to store temporary Ubuntu package data under
`/tmp` and clean it up, including when setup fails. The process no
longer changes permissions on the runner’s temporary directory.
* **Tests**
* Added checks for temporary package-data cleanup after setup failures
and verified that required paths and permissions are accessible during
installation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance labels Oct 14, 2026
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: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants