Skip to content

ci(installer): trust shared gateway state resolver - #10580

Merged
prekshivyas merged 2 commits into
mainfrom
ci/trust-gateway-runtime-state-resolver
Aug 29, 2026
Merged

ci(installer): trust shared gateway state resolver#10580
prekshivyas merged 2 commits into
mainfrom
ci/trust-gateway-runtime-state-resolver

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Outcome

Base-trusted installer CI recognizes the exact prospective supervisor runtime template required by #10550's shared gateway-state resolver migration, without changing runtime behavior.

Reason

The installer hash workflow executes parser code from the pull request base. PR #10550 therefore cannot authorize its own change to docker-driver-gateway-runtime.ts; the trust anchor must land first as an independently reviewed precursor.

Related issues

Changes

  • Add the prospective normalized runtime SHA-256 identity to each OpenShell release record that carries a supervisor identity.
  • Preserve the current runtime template identity so existing behavior remains trusted.
  • Construct the exact follow-up shared-resolver template in the supervisor trust suite and prove the base parser accepts it.
  • Register the exact-template assertion as a reviewed security source-shape contract.

Verification

  • npm run check:installer-hash
  • npx vitest run test/install/installer-supervisor-manifest-trust.test.ts (15/15)
  • npx vitest run test/automation/pull-requests/growth-guardrails.test.ts test/install/installer-supervisor-manifest-trust.test.ts (47/47)
  • npm run source-shape:check (52 approved contracts, zero invalid exceptions)
  • npm run checks:repository
  • npm run build:cli
  • pre-commit and pre-push hooks, including gitleaks, growth guardrails, repository checks, commitlint, and TypeScript CLI

Review notes

  • This PR changes no runtime source and selects no new OpenShell artifact or supervisor manifest.
  • The only new trust identity is abfc1337284d437e71e47945936af7ef0bc6f28ac2495e12fac41894eb24ce3c, recomputed from the exact prospective fix(uninstall): honour gateway state override #10550 runtime bytes after normalizing only the existing supervisor manifest map.
  • Unlisted runtime templates continue to fail closed.

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

Summary by CodeRabbit

  • Bug Fixes
    • Improved installer validation for trusted supervisor runtime templates across selected OpenShell releases.
    • Added support for runtimes using the shared gateway-state resolution approach.
    • Strengthened installation checks to recognize additional trusted runtime variants and reduce false validation failures.
    • Updated trust verification coverage to help ensure approved runtime templates are accepted consistently during installation.

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

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 154092c4-96ca-4431-be56-1133b00ff23d

📥 Commits

Reviewing files that changed from the base of the PR and between f9a50ac and 737307f.

📒 Files selected for processing (1)
  • scripts/checks/extract-installer-pins.mts
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/checks/extract-installer-pins.mts

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


📝 Walkthrough

Walkthrough

The change adds trusted runtime-template digests for selected OpenShell releases and tests installer acceptance of a supervisor runtime using the shared gateway-state resolver.

Changes

Supervisor runtime trust

Layer / File(s) Summary
Trusted runtime digest records
scripts/checks/extract-installer-pins.mts
Selected OpenShell release records now accept two trusted supervisor runtime-template digests. Comments document the shared gateway-state resolver trust data.
Shared resolver trust validation
test/install/installer-supervisor-manifest-trust.test.ts, ci/source-shape-test-budget.json
The test transforms the supervisor runtime to use resolveGatewayStateDirForPort and verifies parser acceptance. The source-shape budget includes the security test exception.

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

Merge Risk: ⚪ Minimal · up to 73730

This PR adds a narrowly scoped installer trust identity for a prospective runtime template while preserving the existing trusted identity and fail-closed behavior; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: cjagwani

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: updating installer trust for the shared gateway state resolver.
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.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/trust-gateway-runtime-state-resolver

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

@github-code-quality

github-code-quality Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit 737307f in the ci/trust-gateway-run... branch remains at 96%, unchanged from commit 1811539 in the main branch.


Updated August 29, 2026 00:51 UTC

@prekshivyas
prekshivyas requested a review from cjagwani August 29, 2026 00:42
@github-actions

Copy link
Copy Markdown
Contributor

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

All previous runs

@prekshivyas
prekshivyas merged commit 8504003 into main Aug 29, 2026
88 of 91 checks passed
@prekshivyas
prekshivyas deleted the ci/trust-gateway-runtime-state-resolver branch August 29, 2026 01:33
@wscurran wscurran added the chore Build, CI, dependency, or tooling maintenance label Sep 9, 2026
rsliter added a commit that referenced this pull request Sep 10, 2026
<!-- markdownlint-disable MD041 -->
## Outcome

The base-trusted installer parser accepts the exact gateway runtime
preparation template needed by #11212. Other operational mutations
remain rejected.

## Reason

Installer CI executes the parser from the PR base. The platform fix
cannot authorize its own runtime-file change, so this independently
reviewed prerequisite must land first, following #10580.

### Related issues

Unblocks #11212. Refs #11208.

## Changes

- Authorize normalized runtime digest
`b6e467dd20e1bcb27d26d40ccc56eaef2a0c1321537108884e0941661a840373` in
the six release records with supervisor identities. Preserve their
image, manifest, binary, and release identities.
- Construct the prospective runtime in one shared test fixture. Exercise
the real parser with every affected release selected and verify
rejection of an altered supervisor registry.
- Move existing installer-template fixture setup into its owning helper
to keep the test file within its size limit. The production runtime
remains unchanged.

## Verification

- The new acceptance test failed with the original template mismatch
before the allowlist change.
- Initial supervisor, installer-hash, and sandbox-build trust suites:
120 tests passed. Final supervisor and installer-hash suites: 112 tests
passed, including all six release selections.
- Source-shape validation passed without new exceptions. The diff
contains no secrets, API keys, or credentials.
- `npm run validate:pr` passed for
`80cb0e03da5938ce70fda1a2926e879a65bb91c0` against canonical main
`5b82037acb402862bb590ef57cb4d4c608e35ce7`.
- Both focused installer-trust suites passed again after integrating
main: 112 tests. The protected runtime and intended five-file change
remain unchanged. The previous `d66fc41` candidate passed [full
CI](https://github.com/NVIDIA/NemoClaw/actions/runs/34422070097) and
[managed-image
validation](https://github.com/NVIDIA/NemoClaw/actions/runs/34422070064).
Its activation DNS failure passed on one targeted rerun; retained
artifacts showed cleanup succeeded. Current-commit CI and review results
are recorded in checks and review comments.
- `npm run review:local` could not produce findings: its temporary
OpenShell gateway refused the connection during configuration, and
temporary-file cleanup reported EACCES. Earlier GitHub Advisor reviews
completed successfully. The latest attempt failed before findings
because the shared service exhausted its budget; Rebecca explicitly
confirmed Advisor is optional and its unavailability does not block this
PR.

## Review notes

Rebecca Sliter approved this prerequisite and authenticated GitHub CLI
publication in the originating task. Local review of the dependent
runtime at `9a097650ddbc58111138d27c6fae4e78d035dabc` confirmed one
preparation result supplies the gateway environment and TLS path without
changing supervisor image or manifest identities. The prospective
fixture reconstructs that runtime byte-for-byte before normalization.

All nine full [Advisor reports for
`d66fc41`](https://github.com/NVIDIA/NemoClaw/actions/runs/34423073564)
were reviewed. The optional suggestion to extract the digest into a
constant does not correct a demonstrated defect; release-specific
authorization remains the established policy owner and six-release tests
cover membership. All other reports found no required change. The
earlier release-selection test gap and unclear trust comments were
repaired. CodeRabbit found no actionable issue.

The final base integration addresses the current-main merge gate. The
prior candidate passed full CI and exact all-agent activation. Its two
MCP discovery runs failed during external tunnel setup before product
execution; their unchanged fixtures cleaned up successfully. The
transport diagnostic does not establish a transient cause, so no blind
retry or speculative product repair was made. Fresh checks will evaluate
the refreshed candidate.

---
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>

---------

Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants