Skip to content

ci(e2e): record runner comparison telemetry#7399

Merged
cv merged 8 commits into
mainfrom
codex/7145-runner-comparison-telemetry-main
Jul 23, 2026
Merged

ci(e2e): record runner comparison telemetry#7399
cv merged 8 commits into
mainfrom
codex/7145-runner-comparison-telemetry-main

Conversation

@apurvvkumaria

@apurvvkumaria apurvvkumaria commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Records bounded start/end CPU, memory, and workspace evidence for every #7145 larger-runner route so the standard-versus-larger experiment can compare like-for-like jobs. This is the current-main replacement for the unique telemetry portion of closed #7247; it does not change runner routing or duplicate #7100 phase, stall, timing, or resource diagnostics.

Related Issue

Related to #7145. Supersedes the telemetry portion of #7247.

Changes

  • Write one canonical private numeric sample after workspace preparation and one from an always() finalizer before artifact scanning or upload.
  • Cover 12 routed workflow lane identities and 13 concrete executions; hermes-inference-switch contributes its hosted and anthropic matrix entries.
  • Keep the OpenClaw entries for mcp-bridge, channels-stop-start, and security-posture uninstrumented because ci(e2e): centralize larger runner routing #7391 leaves those entries on standard runners.
  • Summarize measured-window CPU utilization, host-memory endpoints and root-cgroup lifetime peak, plus workspace endpoints and growth without invoking Docker, ps, or background samplers.
  • Reject unknown fields, duplicate JSON keys, malformed timestamps, identity/counter drift, oversized evidence, symlink/hardlink final-file substitution, matrix topology drift, and workflow scope/order drift.
  • Document comparison controls and limitations. Standard-runner baselines can begin before ci(e2e): centralize larger runner routing #7391 changes routing; the same evidence remains after larger-runner activation.

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: independent review confirmed the exact trusted-main/no-alternate-checkout boundary, Hermes-only matrix guards, bounded private schema, and finalizer-before-scan/upload ordering.
  • 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 implementation
  • Result: docs-updated
  • Evidence: test/e2e/README.md documents the 12 routed workflow lane identities, 13 concrete executions, OpenClaw exclusions, sample limitations, missing-summary interpretation, and comparison requirements. The exact-head refresh confirmed the final test-only review fix requires no further documentation change.
  • Agent: Codex Desktop
  • PR: ci(e2e): record runner comparison telemetry #7399

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 check:diff passed when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — focused E2E-support validation passed 102 tests; an independent rerun of the four directly affected suites passed 94 tests; the final matrix-assertion review fix passed its focused 28-test suite.
  • Applicable broad gate passed — Full e2e-support previously reached 1,381 passed and 9 skipped; two unrelated existing local failures remained. GitHub CI is authoritative for the Linux gate.
  • 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) — completed with 0 errors and 2 existing Fern warnings
  • Doc pages follow the style guide (doc changes only) — no docs/ page changed
  • New doc pages include SPDX header and frontmatter (new pages only) — no new doc page

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>
@apurvvkumaria apurvvkumaria 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 integration: dcode LangChain Deep Code integration behavior v0.0.93 labels Jul 22, 2026
@coderabbitai

coderabbitai Bot commented Jul 22, 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

Adds bounded runner-comparison telemetry for selected E2E jobs, including secure JSONL artifacts, summary generation, workflow-boundary validation, integration tests, and documentation.

Changes

Runner comparison telemetry

Layer / File(s) Summary
Telemetry contracts and reduction
tools/e2e/runner-comparison-core.mts
Defines strict sample and summary schemas, canonical JSONL parsing, host metric collection, validation, and summary calculations.
Private artifact lifecycle
tools/e2e/private-file.mts, tools/e2e/runner-comparison.mts, test/e2e/support/runner-comparison.test.ts
Adds private regular-file creation, initialize/finalize CLI operations, artifact safety checks, and integration coverage.
Workflow contract validation
tools/e2e/runner-comparison-workflow-boundary.mts, tools/e2e/workflow-boundary.mts, test/e2e/support/runner-comparison-workflow-boundary.test.ts
Enforces approved jobs, matrix agents, exact telemetry steps, trusted guards, lifecycle ordering, and validation coverage.
E2E wiring and documentation
.github/workflows/e2e.yaml, test/e2e/README.md
Adds telemetry steps to approved jobs and documents artifacts, metrics, and comparison conditions.

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

Sequence Diagram(s)

sequenceDiagram
  participant E2EJob
  participant RunnerComparisonCLI
  participant RunnerComparisonCore
  participant ArtifactFiles
  E2EJob->>RunnerComparisonCLI: initialize
  RunnerComparisonCLI->>RunnerComparisonCore: collect initial sample
  RunnerComparisonCLI->>ArtifactFiles: write private JSONL ledger
  E2EJob->>RunnerComparisonCLI: finalize
  RunnerComparisonCLI->>ArtifactFiles: read ledger
  RunnerComparisonCLI->>RunnerComparisonCore: collect final sample and summarize
  RunnerComparisonCLI->>ArtifactFiles: write ledger and summary
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#7391: Both changes extend E2E workflow-boundary validation at the shared validator entrypoint.

Suggested labels: feature

Suggested reviewers: cv, prekshivyas

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 2.44% 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 The telemetry, validation, tests, and docs align with the runner-comparison evidence contract and workflow-boundary requirements.
Out of Scope Changes check ✅ Passed The added files and workflow edits are directly tied to runner-comparison telemetry and its validation/docs.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding runner comparison telemetry to E2E CI.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/7145-runner-comparison-telemetry-main

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

@github-code-quality

github-code-quality Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit c09137d in the codex/7145-runner-co... branch remains at 96%, unchanged from commit 21e60ae in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit c09137d in the codex/7145-runner-co... branch remains at 80%, unchanged from commit d13e34a in the main branch.

Show a code coverage summary of the most impacted files.
File main d13e34a codex/7145-runner-co... c09137d +/-
src/lib/inferen...lama/process.ts 100% 50% -50%
src/lib/inferen...er-lifecycle.ts 71% 65% -6%
src/lib/platform.ts 89% 84% -5%
src/lib/messagi...nnels/policy.ts 100% 100% 0%
src/lib/sandbox...rce-identity.ts 87% 87% 0%
src/lib/securit...ntial-filter.ts 93% 93% 0%
src/lib/trace.ts 94% 94% 0%
src/lib/domain/.../connect-env.ts 89% 97% +8%

Updated July 23, 2026 07:23 UTC

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>

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

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/e2e/support/runner-comparison.test.ts`:
- Around line 302-319: Split the parametrized “rejects a ledger replacement”
test into two focused tests, one for symlink replacement and one for hardlink
replacement, removing the runtime if/else branch while preserving the existing
setup, finalize failure assertion, and cleanup behavior in each test.
🪄 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: f801db50-f2a3-4fdc-abd1-eae10571c0d0

📥 Commits

Reviewing files that changed from the base of the PR and between 1bb15a0 and 9a3752a.

📒 Files selected for processing (9)
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/support/runner-comparison-workflow-boundary.test.ts
  • test/e2e/support/runner-comparison.test.ts
  • tools/e2e/private-file.mts
  • tools/e2e/runner-comparison-core.mts
  • tools/e2e/runner-comparison-workflow-boundary.mts
  • tools/e2e/runner-comparison.mts
  • tools/e2e/workflow-boundary.mts

Comment thread test/e2e/support/runner-comparison.test.ts Outdated
Comment thread test/e2e/support/runner-comparison.test.ts Fixed
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / high confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: No actionable findings remain in the canonical review ledger.

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized E2E selections differ; severity counts match.

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-onboard, credential-sanitization, security-posture

3 optional E2E recommendations
  • rebuild-hermes
  • mcp-bridge
  • hermes-inference-switch

Workflow run details

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

@apurvvkumaria apurvvkumaria added area: observability Logging, metrics, tracing, diagnostics, or debug output integration: hermes Hermes integration behavior labels Jul 22, 2026
@apurvvkumaria

Copy link
Copy Markdown
Collaborator Author

E2E diagnosis for run 29965049603: the only failing job, Hermes security-posture 89074697099, did not report a test assertion. GitHub-hosted runner 1021277393 disappeared during the live Vitest step; GitHub recorded that step as completed/cancelled, skipped artifact upload and cleanup, and then closed the job as failure.

This is the same hosted-runner-loss signature independently observed on #7391 run 29964501381. It is not caused by the telemetry change. The current #7168 classifier only recognizes the older in_progress/null step shape, so the controller omitted the intended runner-loss retry marker. The compatibility and automatic one-time retry gaps are being tracked under #7146.

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>

@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/e2e/support/runner-comparison-workflow-boundary.test.ts (1)

60-65: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Avoid duplicating the production matrix parser in the test.

matrixValues mirrors tools/e2e/runner-comparison-workflow-boundary.mts:60-65. If direct-array or include handling regresses, this test can reproduce the same defect and still pass. Prefer independent assertions over the concrete workflow matrix values rather than copying the production algorithm.

As per path instructions, E2E support tests should prioritize behavioral confidence and flag copied production algorithms.

🤖 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/e2e/support/runner-comparison-workflow-boundary.test.ts` around lines 60
- 65, Remove the duplicated parsing logic from the test helper matrixValues.
Replace its use with independent assertions against the concrete workflow matrix
values, covering the expected direct-array and include entries without
reproducing production selection or fallback behavior.

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/e2e/support/runner-comparison-workflow-boundary.test.ts`:
- Around line 60-65: Remove the duplicated parsing logic from the test helper
matrixValues. Replace its use with independent assertions against the concrete
workflow matrix values, covering the expected direct-array and include entries
without reproducing production selection or fallback behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 44ad7027-1467-4baf-9b71-a306d88fc60f

📥 Commits

Reviewing files that changed from the base of the PR and between d836597 and 48cf40c.

📒 Files selected for processing (4)
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/support/runner-comparison-workflow-boundary.test.ts
  • tools/e2e/runner-comparison-workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/e2e/README.md
  • tools/e2e/runner-comparison-workflow-boundary.mts

prekshivyas and others added 2 commits July 22, 2026 22:38
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
cv added a commit that referenced this pull request Jul 23, 2026
<!-- markdownlint-disable MD041 -->
## 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

- Require a completed failed first child run, exact workflow identity,
complete Jobs and Checks pagination, and either the canonical SHA-bound
lost-runner annotation or one exact generic-cancellation annotation plus
authenticated terminal shutdown evidence.
- Authenticate the fallback through GitHub's job-log API without
forwarding the repository token to storage. Allowlist the signed HTTPS
result host, require a strong ETag and exact bounded range, and accept
only the terminal runner shutdown/cleanup block bound to the cancelled
step and job timestamps. Cap annotation count, per-field bytes, and
normalized aggregate evidence.
- Require every non-passing job to match the standard `ubuntu-latest`
GitHub 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.
- Create a fresh child run and replacement required check for the one
retry. Preserve the first run, check, state, plan, and evidence as
linked diagnostic history.
- Revalidate the PR SHA, base SHA, workflow SHA, risk plan, state, and
retry history before each privileged mutation.
- Keep coordination checks immutable across base identities so a
controller that resumes after a rapid retarget cannot fail the newer
base's gate.
- Terminalize the second attempt and clean partial replacement state
after failure, cancellation, skipped setup, interruption, or response
loss. The required observer follows the latest exact check.
- Serialize gate mutations by repository, PR number, PR SHA, and base
SHA. Keep up to 100 pending exact-identity mutations in GitHub's FIFO
queue without canceling their owner.
- Bound each child wait at 140 minutes, the controller at 330 minutes,
the observer at 358 minutes, and the required job at 360 minutes.
- Document the strict retry criteria, lineage, cleanup behavior, and
timeout envelope in `test/e2e/README.md`.
- Keep merged #7100 progress telemetry and #7399 resource telemetry
unchanged. This PR does not add a second sampler or retry final-main
runs.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] 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:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [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: an independent
9-category audit passed at `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.
- [ ] 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: `test/e2e/README.md`
- Agent: Codex Desktop
- PR: #7423
<!-- docs-review-head-sha: d1f8247 -->
<!-- docs-review-agents-blob-sha: 560ff38 -->

## 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

- [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 — 14 PR-gate integration files passed
244 tests at `697d78e5f`; the focused classifier/transport suites passed
72 tests; the test-only review fix passed all 26 controller tests at
`ac430dcf7`; the documented fallback lifecycle passed docs validation
and all 39 classifier tests at `d1f824728`; CLI and JavaScript type
checking, changed-file hooks, source-shape, test-size, Biome, YAML,
Markdown, gitleaks, and diff checks passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — targeted controller coverage is
authoritative; GitHub CI will run the repository gate.
- [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) — passed
with 0 errors and 2 existing Fern warnings
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only) — no `docs/` page changed
- [ ] New doc pages include SPDX header and frontmatter (new pages only)
— no new doc page

---

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


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

* **New Features**
* Added a one-time automated PR E2E retry for hosted-runner loss,
including dedicated retry and abandon lifecycle steps with evidence
download/verification.
* Updated PR E2E gate coordination to run retry-sensitive paths only on
the first workflow attempt using attempt-aware, per-PR/per-SHA
concurrency isolation.
* **Bug Fixes**
* Hardened gate/approval execution to prevent cross-run collisions and
incorrect retry/authorization, with improved fail-closed behavior.
* Increased relevant time budgets and tightened “superseded/cancel”
handling.
* **Documentation**
* Expanded PR E2E gate flow documentation for retries, evidence rules,
and terminal outcomes.
* **Tests**
* Expanded end-to-end coverage for runner-loss classification, retry
lifecycle, authorization, and command parsing edge cases.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv merged commit e261c53 into main Jul 23, 2026
53 of 55 checks passed
@cv
cv deleted the codex/7145-runner-comparison-telemetry-main branch July 23, 2026 16:13
@cv cv mentioned this pull request Jul 23, 2026
23 tasks
cv added a commit that referenced this pull request Jul 23, 2026
<!-- 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 -->
apurvvkumaria added a commit that referenced this pull request Jul 24, 2026
<!-- markdownlint-disable MD041 -->
## Summary
This adds bounded periodic and phase-aware resource telemetry to the
canonical runner-comparison ledger for trusted heavy E2E executions. It
reuses the existing progress pulse and records only numeric or
fixed-enum evidence, improving runner-pressure diagnosis without
changing failure classification or retry policy.

## Related Issue
Related to #7145 and #7146 (parent epic: #7140).

## Changes
- Extend the canonical runner-comparison artifact to a bounded v2
lifecycle with private `0600` files, a reserved final sample, v1 read
compatibility, and deterministic summaries.
- Capture bounded host, cgroup, PSI, filesystem, Docker, container, and
coarse process-class evidence at endpoints, phase boundaries, and an
approximately 60-second cadence.
- Reuse the existing progress timer with fixed deadlines, no catch-up
bursts, per-scenario attribution boundaries, and a permanent fallback to
the existing bounded collector if canonical sampling fails.
- Add focused privacy, compatibility, timing, fallback, aggregation,
summary, and workflow-boundary coverage, including the three-shard
`common-egress-agent` topology merged in #7448.
- Document the telemetry lifecycle, probe budgets, privacy limits,
compatibility behavior, and the separation from classification and
retry. This builds on the merged progress/timing work from #7100 and
#7213 and extends the canonical ledger from #7399 rather than creating
parallel infrastructure.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [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: Independent exact-head
privacy, schema, classifier, retry, and compatibility review at
`419182d89` found no actionable issues.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review
<!-- Required for code and documentation changes after the changes and
applicable validation are complete. Keep one review checkbox and one
instance of each visible or hidden field. For Evidence, list changed
documentation paths. For documentation-only changes, also state that the
writing rules and documentation style were reviewed. For other results,
explain why no documentation change is needed or why the review is
blocked. For Agent, use a consistent product and surface name, such as
Codex Desktop, Codex CLI, Claude Code, or Cursor. After committing all
review changes, put `git rev-parse --short HEAD` and `git rev-parse
--short HEAD:AGENTS.md` in the hidden metadata below. Rerun the review
and refresh that metadata after any new commit. This receipt is advisory
during the data-collection pilot. -->
- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `test/e2e/README.md`
- Agent: Codex Desktop
<!-- docs-review-head-sha: e06653c -->
<!-- docs-review-agents-blob-sha:
9c9b36d -->

## DGX Station Hardware Evidence
<!-- Required only when scripts/prepare-dgx-station-host.sh changes.
Maintainers must review the linked evidence before approving or merging.
This is human-reviewed evidence, not authenticated hardware provenance.
Exceptional bypasses use existing repository governance and must be
documented on the PR. -->
- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [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 — command/result or justification:
Exact-head serialized telemetry/progress/workflow suite passed 225/225
tests across 15 files; after the linear-test guardrail repair, the
primary focused suite passed 165/165 across 9 files, Vitest membership
was exact across 1,764 files, CLI typecheck passed, and `npm run
check:diff` passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: A broad E2E-support run
exposed only parallel-load timeouts and one macOS lifecycle failure
reproduced unchanged on `origin/main`; scoped exact-head gates are
listed above.
- [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)
- [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)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


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

* **New Features**
* Added runner-comparison schema v2 telemetry as a bounded, ordered
ledger with periodic, scenario-start, phase, and finalize samples.
* Enabled live E2E runner-comparison sampling and added conditional
periodic sampling in the E2E progress harness.
* Introduced pulse-based progress resource sampling with configurable
interval and best-effort phase/scenario capture.

* **Bug Fixes / Improvements**
* Switched memory diagnostics to available-memory reporting (with
free-memory fallback labeling).
* Hardened telemetry parsing/validation, evidence sanitization, and
expanded runner-pressure/resource diagnostics.

* **Documentation**
* Documented v2 ordering/cadence, privacy/size limits, and
diagnostic-only summary guidance.

* **Tests**
* Added/expanded E2E tests for v2 schema validation, timing/cadence,
fallback behavior, and updated expected outputs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Prekshi Vyas <prekshiv@nvidia.com>
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 area: observability Logging, metrics, tracing, diagnostics, or debug output chore Build, CI, dependency, or tooling maintenance integration: dcode LangChain Deep Code integration behavior integration: hermes Hermes integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants