fix(ci): retry confirmed hosted runner loss once#7423
Conversation
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> (cherry picked from commit d137bfef9e0cb551bb5c1d2ec00a866330d1360c)
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit e06d546 in the TypeScript / code-coverage/cliThe overall coverage in commit e06d546 in the Show a code coverage summary of the most impacted files.
Updated |
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR adds attempt-aware PR E2E coordination, exact revision concurrency keys, expanded timeouts, trusted hosted-runner-loss classification, and a one-time retry flow with isolated state/evidence slots and terminal cleanup. ChangesPR E2E coordination and retry flow
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — Blocking findings reportedAdvisor assessment: Blockers require maintainer review Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: Blockers
|
There was a problem hiding this comment.
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/pr-e2e-gate-runner-loss-retry.test.ts`:
- Around line 924-937: Remove the test-body branch around finishPrGate in the
parameterized test and derive the expected rejection or resolution assertion
directly from the it.each data, preserving the success-specific error
expectation. Also replace the conditional branches in the helper paths guarded
by options.jobPages and options.createRetryStateDirectory with equivalent
expressions, without changing behavior.
🪄 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: b07caa2c-3064-46ed-bec9-3770472e98a7
📒 Files selected for processing (13)
.github/workflows/pr-e2e-gate.yamltest/e2e/README.mdtest/pr-e2e-gate-command.test.tstest/pr-e2e-gate-fork-skip.test.tstest/pr-e2e-gate-internal-approval.test.tstest/pr-e2e-gate-lifecycle.test.tstest/pr-e2e-gate-runner-loss-classifier.test.tstest/pr-e2e-gate-runner-loss-retry.test.tstest/pr-e2e-gate-workflow.test.tstest/pr-e2e-gate.test.tstest/pr-e2e-required.test.tstools/e2e/pr-e2e-gate.mtstools/e2e/pr-e2e-required.mts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/pr-e2e-gate.test.ts (1)
773-779: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winScope the negative assertion to the newer-base gate.
Checking that no request uses
PATCHdoes not directly prove that the check introduced at Line 755 was untouched; it can miss another mutation verb and reject unrelated PATCH requests. Assert that no mutating request targets that specific check, while retaining the separate POST assertion for the original base SHA.As per path instructions, tests should prioritize behavioral confidence over implementation lock-in.
🤖 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/pr-e2e-gate.test.ts` around lines 773 - 779, Update the negative assertion in the newer-base gate test to verify that no mutating request targets the check identified by its newer-base SHA, rather than globally rejecting PATCH requests. Retain the separate POST assertion for the original base SHA and preserve behavioral coverage without depending on a particular mutation verb.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/pr-e2e-gate.test.ts`:
- Around line 773-779: Update the negative assertion in the newer-base gate test
to verify that no mutating request targets the check identified by its
newer-base SHA, rather than globally rejecting PATCH requests. Retain the
separate POST assertion for the original base SHA and preserve behavioral
coverage without depending on a particular mutation verb.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: f553129c-1158-4cd5-90cc-2372cdc4496f
📒 Files selected for processing (4)
test/e2e/README.mdtest/pr-e2e-gate-runner-loss-retry.test.tstest/pr-e2e-gate.test.tstools/e2e/pr-e2e-gate.mts
🚧 Files skipped from review as they are similar to previous changes (3)
- test/pr-e2e-gate-runner-loss-retry.test.ts
- test/e2e/README.md
- tools/e2e/pr-e2e-gate.mts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Live runner-loss validation and trusted-base boundaryExact PR head: All ordinary required CI passed. In E2E child 29999433179, cloud onboarding, credential sanitization, and OpenClaw security posture passed. The sole non-passing job was Hermes security posture 89180965578, which lost a standard The live evidence matches this PR's strict fallback contract:
No retry was expected in this PR run because the authoritative coordinator 29999405614 intentionally checked out trusted This run validates the exact real-world evidence shape captured by the new tests. The remaining non-success E2E result is hosted-runner infrastructure and requires either maintainer acceptance for this PR or an explicit trusted-base rerun; it is not evidence to relax the classifier. |
<!-- markdownlint-disable MD041 --> ## Summary Adds the canonical dated `## v0.0.93` release entry to `docs/changelog/2026-07-23.mdx`. The entry records user-visible behavior, release validation, and documentation controls merged after `v0.0.92`, while preserving the pending DGX OS `7.6.x` Station Express qualification caveat. ## Changes - Adds the parser-safe dated release entry with a summary, grouped details, and published-route links. - Reconciles the `v0.0.92..origin/main` commit range with merged `v0.0.93` PRs. - Records that no-OTA DGX OS `7.6.x` passed bounded host preflight, while full Station Express end-to-end qualification remains pending. - Leaves existing product pages unchanged because the source PRs already document their supported behavior. ### Source summary - #7285 -> `docs/changelog/2026-07-23.mdx`: Records the existing-vLLM ownership choice and resumable Station handoff. - #7419 -> `docs/changelog/2026-07-23.mdx`: Records bounded no-OTA DGX OS `7.6.x` recognition and its pending end-to-end qualification. - #7268 -> `docs/changelog/2026-07-23.mdx`: Records optional Hugging Face authentication, output sanitization, and resumable HTTP `429` recovery. - #7442 -> `docs/changelog/2026-07-23.mdx`: Records clean SIGINT handling at hidden credential prompts. - #7299 -> `docs/changelog/2026-07-23.mdx`: Records Intel macOS rejection before ref resolution or network work. - #7296 -> `docs/changelog/2026-07-23.mdx`: Records the DGX Spark non-interactive local-vLLM selection order. - #7342 -> `docs/changelog/2026-07-23.mdx`: Records delegated protected E2E approvals in the grouped release-validation bullet. - #7373 -> `docs/changelog/2026-07-23.mdx`: Records base-image publication gating before final-main fanout. - #7388 -> `docs/changelog/2026-07-23.mdx`: Records semantic phase runtime summaries. - #7397 -> `docs/changelog/2026-07-23.mdx`: Records progress coverage hardening. - #7391 -> `docs/changelog/2026-07-23.mdx`: Records centralized larger-runner routing. - #7423 -> `docs/changelog/2026-07-23.mdx`: Records one retry for confirmed hosted-runner loss. - #7399 -> `docs/changelog/2026-07-23.mdx`: Records runner-comparison telemetry. - #7270 -> `docs/changelog/2026-07-23.mdx`: Records staging Brev Launchable validation. - #7426 -> `docs/changelog/2026-07-23.mdx`: Records filtering of irrelevant base-image run history. - #7333 -> `docs/changelog/2026-07-23.mdx`: Records aligned Quickstart platform guidance. - #7343 -> `docs/changelog/2026-07-23.mdx`: Records documentation-writer receipt collection. - #7400 -> `docs/changelog/2026-07-23.mdx`: Records the documentation-writer receipt requirement for docs-only PRs. - #7413 -> `docs/changelog/2026-07-23.mdx`: Records removal of redundant receipt PR metadata. - #7405 -> `docs/changelog/2026-07-23.mdx`: Records corrected inference CLI references. - #7389 -> `docs/changelog/2026-07-23.mdx`: Records completion of the v0.0.91 documentation audit. `#7384` is an internal refactor with no intended runtime behavior change. `#7401` updates internal CodeQL Actions dependencies. `#7376` is already contained in `v0.0.92`, so it is outside the release-entry scan range despite its retained planning label. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [ ] Tests added or updated for changed behavior - [x] Existing tests cover changed behavior — justification: `test/changelog-docs.test.ts` validates dated changelog structure, SPDX syntax, and version headings. - [ ] Tests not applicable — justification: - [x] 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: - [ ] 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: `docs-updated` - Evidence: Reviewed `docs/changelog/2026-07-23.mdx` against `WRITING.md`, `docs/CONTRIBUTING.md`, `docs/.docs-skip`, `docs/index.yml`, the six user-visible source PRs, and the remaining grouped release commits. The review corrected an ambiguous qualification claim, confirmed all published routes, preserved the DGX OS `7.6.x` caveat, and found no remaining action. - Agent: Codex Desktop <!-- docs-review-head-sha: ec0a866 --> <!-- docs-review-agents-blob-sha: 9c9b36d --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable. This PR does not change `scripts/prepare-dgx-station-host.sh`. - Station profile/scenario: Not applicable. - Result: Not applicable. - Supporting evidence: Not applicable. ## 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 check:diff` passed 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 test/changelog-docs.test.ts`: 1 file and 6 tests passed. - [ ] Applicable broad gate passed — Not applicable to one native changelog file. - [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) — completed with 0 errors and 2 existing Fern warnings. - [x] 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) — not applicable because native changelog entries use a parser-safe MDX SPDX comment without frontmatter. --- Signed-off-by: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added the v0.0.93 changelog covering onboarding and validation improvements. * Documented support for additional DGX Station Express workstation releases and clearer handling of existing vLLM workloads. * Added guidance for optional Hugging Face authentication, resumable rate-limit recovery, and DGX Spark provider selection. * Clarified installer behavior on Intel macOS, release validation requirements, hosted-runner retries, documentation checks, and supported CLI quickstart paths. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
The PR E2E gate now creates one fresh child run when the first child fails only because a standard GitHub-hosted runner disappeared. It recognizes both GitHub's canonical lost-communication annotation and the exact shutdown-log signature observed in the repeated Hermes cancellations. Assertion, timeout, OOM, policy, mixed, custom-runner, and incomplete-evidence failures remain terminal.
Related Issue
Part of #7146. Parent epic: #7140.
Changes
ubuntu-latestGitHub Actions runner, runner group, check, annotation, and terminal step-shape contract. Re-read and fingerprint all run, check, annotation, and optional log evidence before dispatch.test/e2e/README.md.Type of Change
Quality Gates
697d78e5f; it verified annotation and log authentication, token isolation, bounded transport, spoof rejection, immutable retry lineage, two-pass evidence revalidation, cross-base check ownership, cleanup, timeout arithmetic, and FIFO mutation ownership with no unresolved finding.Documentation Writer Review
docs-updatedtest/e2e/README.mdDGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailable697d78e5f; the focused classifier/transport suites passed 72 tests; the test-only review fix passed all 26 controller tests atac430dcf7; the documented fallback lifecycle passed docs validation and all 39 classifier tests atd1f824728; CLI and JavaScript type checking, changed-file hooks, source-shape, test-size, Biome, YAML, Markdown, gitleaks, and diff checks passed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — targeted controller coverage is authoritative; GitHub CI will run the repository gate.npm run docsbuilds without warnings (doc changes only) — passed with 0 errors and 2 existing Fern warningsdocs/page changedSigned-off-by: Apurv Kumaria akumaria@nvidia.com
Summary by CodeRabbit