Skip to content

fix(e2e): remove internal approval stop - #7857

Closed
jyaunches wants to merge 7 commits into
mainfrom
codex/remove-e2e-confirmation
Closed

fix(e2e): remove internal approval stop#7857
jyaunches wants to merge 7 commits into
mainfrom
codex/remove-e2e-confirmation

Conversation

@jyaunches

@jyaunches jyaunches commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Internal PRs now automatically dispatch their deterministic credential-bearing E2E plan after
eligible PR CI passes. Fork PRs retain maintainer approval for the reviewed PR and base SHAs.

Changes

  • Remove the internal control-plane branch that stopped before dispatch with
    Maintainer approval required to run E2E.
  • Route all same-repository PR plans through the existing automatic dispatch path.
  • Reject approve-e2e for same-repository PRs and remove the obsolete internal authorization
    classifier and tests.
  • Preserve the fork-only approve-e2e gate and its maintainer, SHA, plan, coordination,
    live-state, and evidence validation.
  • Add a regression covering failed E2E, a fixed PR commit, eligible CI, and one dispatch containing
    the complete selected plan. The test proves that the fixed commit gets a fresh plan and one
    dispatch for cloud-inference, cloud-onboard, and security-posture; it neither reruns only
    the previously failed job nor accepts evidence from the prior commit.
  • Keep .github/workflows/pr-e2e-gate.yaml behavior unchanged. Its existing workflow_run
    completed trigger observes every new CI / Pull Request completion, and the coordinator
    already passes each eligible run's PR commit into startPrGate. The missing behavior was in the
    controller's same-repository decision after that trigger, not in workflow event routing.
  • Replace the gate's exact head and exact revision terminology with plain PR vocabulary.
  • Update the technical E2E architecture documentation without changing agent skills.

Type of Change

  • 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

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Local nine-category NemoClaw security review found no implementation defects. This intentionally removes the second-maintainer stop for internal PRs, as approved by the requester. Fork approval and recorded SHA, deterministic plan, coordination, live-state, child-run binding, and evidence validation remain.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: The documentation writer reviewed the complete diff at 36ca8c506, confirmed zero
    skill-file changes, automatic complete-plan dispatch after a fixed PR commit passes CI,
    fork-only approve-e2e with mechanical SHA bindings, and zero scoped exact head or
    exact revision terminology matches. No findings remain.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit: Not applicable
  • Station profile/scenario: Not applicable
  • Result: Not applicable
  • Supporting evidence: Not applicable

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • 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
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: Seventeen PR-gate integration files passed (320 tests); focused E2E-support files passed (58 tests); workflow-plan passed (25 tests); repository checks, CLI typecheck, test-size guard, hooks, npm run docs, and git diff --check passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

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

@jyaunches jyaunches added the area: security Security controls, permissions, secrets, or hardening label Jul 30, 2026
@jyaunches jyaunches self-assigned this Jul 30, 2026
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR changes PR E2E coordination so internal revisions dispatch selected plans automatically, while maintainer approval applies only to fork revisions. It updates recovery behavior, risk-plan helpers, tests, and documentation to reflect the revised gate state machine.

Changes

PR E2E dispatch and approval flow

Layer / File(s) Summary
Dispatch and approval routing
tools/advisors/risk-plan.mts, tools/e2e/pr-e2e-gate.mts
Removes credentialed control-plane authorization classification, adds required-target ID derivation, auto-dispatches internal plans, and enforces fork-only approve-e2e.
Dispatch recovery and approval validation
test/pr-e2e-gate-*.test.ts
Updates retry, remediation, lifecycle, fork approval, command parsing, and internal-dispatch tests for the revised coordination flow.
Risk-plan authorization cleanup
test/pr-risk-plan.test.ts
Removes obsolete authorization assertions and tests.
Coordination policy and terminology
test/e2e/README.md, .github/workflows/e2e.yaml, tools/e2e/*.mts
Documents automatic internal dispatch, fork recovery, coordination-state failures, and PR E2E commit terminology.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PRGate
  participant GitHub
  participant E2EWorkflow
  PRGate->>GitHub: Read PR identity and selected targets
  PRGate->>E2EWorkflow: Dispatch internal PR plan
  PRGate->>GitHub: Create fork approval state
  GitHub->>PRGate: Return approved fork revision
  PRGate->>E2EWorkflow: Dispatch reviewed fork commit
Loading

Possibly related PRs

Suggested labels: area: e2e, area: ci, bug-fix

Suggested reviewers: cv, aasthajh, brandonpelfrey

🚥 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%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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 is concise and matches the main change: removing the internal approval stop for E2E dispatch.
✨ 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 codex/remove-e2e-confirmation

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

@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.

🧹 Nitpick comments (1)
test/maintainer-skills-policy.test.ts (1)

344-359: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Cover the remaining dispatch guardrails in the contract test.

The assertions cover authorization and several security phrases, but not the required input review, duplicate-run avoidance, SHA/plan-change handling, or reporting of the dispatched plan, SHAs, and workflow URL. Add assertions for those clauses so future policy edits cannot silently remove them.

The PR objective explicitly calls for retained security checks; as per path instructions, this test should preserve behavioral confidence at the policy boundary.

🤖 Prompt for 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.

In `@test/maintainer-skills-policy.test.ts` around lines 344 - 359, Add assertions
in the maintainer policy contract test near the existing followUp and mergeGate
checks to cover required input review, duplicate-run avoidance, SHA and
plan-change handling, and reporting the dispatched plan, SHAs, and workflow URL.
Assert the exact policy clauses or stable identifying phrases from the relevant
generated text so these dispatch guardrails remain enforced.

Source: Path instructions

🤖 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.

Nitpick comments:
In `@test/maintainer-skills-policy.test.ts`:
- Around line 344-359: Add assertions in the maintainer policy contract test
near the existing followUp and mergeGate checks to cover required input review,
duplicate-run avoidance, SHA and plan-change handling, and reporting the
dispatched plan, SHAs, and workflow URL. Assert the exact policy clauses or
stable identifying phrases from the relevant generated text so these dispatch
guardrails remain enforced.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b732fd19-944f-470b-9cd9-e82d6016936f

📥 Commits

Reviewing files that changed from the base of the PR and between d52d459 and 4556a36.

📒 Files selected for processing (3)
  • .agents/skills/_shared/pr-follow-up.md
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • test/maintainer-skills-policy.test.ts

@github-code-quality

github-code-quality Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 36ca8c5 in the codex/remove-e2e-con... branch remains at 96%, unchanged from commit 0281eab in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 36ca8c5 in the codex/remove-e2e-con... branch remains at 81%, unchanged from commit d52d459 in the main branch.

Show a code coverage summary of the most impacted files.
File main d52d459 codex/remove-e2e-con... 36ca8c5 +/-
src/lib/domain/.../connect-env.ts 97% 89% -8%
src/lib/policy/...ne-exclusion.ts 97% 91% -6%
src/lib/adapter.../docker/pull.ts 86% 86% 0%
src/lib/sandbox...rce-identity.ts 88% 88% 0%
src/lib/tunnel/services.ts 73% 73% 0%
src/lib/onboard/gateway.ts 3% 70% +67%
src/lib/core/bo...e-transcript.ts 0% 95% +95%

Updated July 30, 2026 02:13 UTC

@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / low confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: PR review advisor failed: PR review advisor SDK execution failed: session: correctness-state-analysis omitted required analysis; turn: correctness-state-analysis: correctness-state-analysis omitted required analysis

Model lanes

  • GPT-5.6 Terra (primary): Failed
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-inference, cloud-onboard, security-posture

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@jyaunches jyaunches changed the title fix(agents): remove duplicate E2E confirmation fix(e2e): remove internal approval stop Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: security Security controls, permissions, secrets, or hardening

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant