Skip to content

ci(e2e): simplify Launchable E2E dispatch - #7666

Merged
cv merged 9 commits into
mainfrom
codex/simplify-launchable-e2e
Jul 28, 2026
Merged

ci(e2e): simplify Launchable E2E dispatch#7666
cv merged 9 commits into
mainfrom
codex/simplify-launchable-e2e

Conversation

@jyaunches

@jyaunches jyaunches commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Remove the persistent Launchable readiness gate that prevented one-off Launchable E2E runs. Trusted manual runs can now select only the Launchable job, while pre-tag full runs still bind the default E2E suite and the exact Launchable E2E job to one candidate SHA.

Changes

  • Allow jobs=staging-brev-launchable to run one Launchable E2E run from trusted main.
  • Keep empty selectors plus include_staging_brev_launchable=true as the full pre-tag evidence contract.
  • Remove the readiness variable, readiness failure job, and automatic scheduled Launchable selection.
  • Preserve protected-environment approval, trusted-main secret guards, exact candidate evidence, queued concurrency, and cleanup verification.
  • Bind release job evidence to its enclosing workflow run and attempt.
  • Update the workflow boundary validator, behavior tests, maintainer skills, and E2E operator guidance.

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 — exact-SHA risk plan and verified E2E evidence: controller https://github.com/NVIDIA/NemoClaw/actions/runs/30362043103; child https://github.com/NVIDIA/NemoClaw/actions/runs/30362113240
  • 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: .agents/skills/nemoclaw-maintainer-e2e/SKILL.md, .agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md, .agents/skills/nemoclaw-maintainer-evening/SKILL.md, .agents/skills/nemoclaw-maintainer-policies/references/release-train.md, and test/e2e/README.md
  • Agent: Codex Desktop documentation writer subagent

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 — command/result or justification: npx vitest run --project e2e-support test/e2e/support/e2e-workflow.test.ts passed 45 tests; npx vitest run --project integration test/release-e2e-evidence.test.ts test/maintainer-skills-policy.test.ts test/maintainer-e2e-skill.test.ts test/brev-launchable-e2e.test.ts passed 43 tests.
  • 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: J. Yaunches jmyaunch@gmail.com

Summary by CodeRabbit

  • New Features
    • Added clearer, manual Launchable-mode dispatch and evidence verification alongside Ordinary and Full modes.
  • Bug Fixes
    • Tightened Brev Launchable workflow execution to trusted manual runs on the main branch, and removed readiness-based gating/supported job behavior.
    • Updated release preflight/evidence dispatch to always use Full-mode and improved evidence ledger filtering for matching workflow runs.
  • Documentation
    • Refreshed maintainer E2E mode selection and recovery/approval guidance for Launchable and Full flows.
  • Tests
    • Updated E2E, workflow-boundary, and evidence tests to match the new Launchable/Full criteria.

Signed-off-by: J. Yaunches <jmyaunch@gmail.com>
@jyaunches jyaunches self-assigned this Jul 27, 2026
@coderabbitai

coderabbitai Bot commented Jul 27, 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 removes readiness-variable gating from staging Brev Launchable E2E qualification, adds evidence-driven full-mode release dispatch, updates workflow validation and ledger filtering, and documents separate Ordinary, Launchable, and Full-mode procedures.

Changes

Launchable E2E qualification

Layer / File(s) Summary
Dispatch contract and workflow gating
.github/workflows/e2e.yaml, tools/e2e/workflow-boundary.mts
Launchable qualification is restricted to trusted manual full or explicit selection dispatches, protected secrets use the same guard, and the readiness job is removed.
Release evidence preflight and ledger filtering
.agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts, test/release-e2e-evidence.test.ts
Preflight removes brevReady, always models the default suite as full mode with staging Brev Launchable included, and ignores job evidence from other runs or newer attempts.
Boundary validation and tests
tools/e2e/workflow-boundary.mts, test/e2e/support/e2e-workflow.test.ts
Validation and tests enforce revised selectors, input documentation, removed readiness behavior, and qualification results.
Maintainer mode and evidence guidance
.agents/skills/nemoclaw-maintainer-*/SKILL.md, .agents/nemoclaw-maintainer-policies/references/release-train.md, test/e2e/README.md, test/maintainer-skills-policy.test.ts
Documentation describes evidence-driven full-mode dispatch, mode-specific verification, approval waiting, recovery, and Launchable qualification scope.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Maintainer
  participant ReleasePreflight
  participant E2EWorkflow
  participant LaunchableJob
  Maintainer->>ReleasePreflight: Provide candidate SHA and runner status
  ReleasePreflight-->>Maintainer: Return full-mode dispatch plan
  Maintainer->>E2EWorkflow: Dispatch trusted full or Launchable mode
  E2EWorkflow->>LaunchableJob: Select staging qualification
  LaunchableJob-->>Maintainer: Publish run and job evidence
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#7496: Both changes modify staging Brev Launchable dispatch qualification and workflow validation.
  • NVIDIA/NemoClaw#7655: Both changes modify release E2E evidence preflight and Brev readiness selection logic.

Suggested labels: area: e2e

Suggested reviewers: cv, aasthajh, afourniernv

🚥 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 accurately summarizes the main change: simplifying Launchable E2E dispatch.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/simplify-launchable-e2e

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

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

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 · 1 warning · 0 suggestions
  • Model comparison: normalized findings differ; normalized E2E selections differ; Nemotron reported the same number of blockers, 1 more warning, the same number of 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

1 optional E2E recommendation
  • staging-brev-launchable

Workflow run details

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

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

66-103: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Cover the non-empty targets boundary.

The implementation requires both jobs and targets to be empty for full qualification, but this test only exercises a non-empty jobs selector. Add a case with includeStagingBrevLaunchable: true, empty jobs, and non-empty targets, expecting runQualification: false.

As per path instructions, this test should verify the dispatch contract through observable behavior at the public 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/e2e/support/e2e-workflow.test.ts` around lines 66 - 103, Add a case to
the evaluateStagingBrevLaunchableDispatch test with includeStagingBrevLaunchable
true, empty jobs, and a non-empty targets selector, asserting runQualification
is false. Keep the assertion at the public evaluateStagingBrevLaunchableDispatch
boundary.

Source: Path instructions

tools/e2e/workflow-boundary.mts (1)

4793-4797: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Keep an explicit regression guard for readiness-job removal.

Removing both the validator call and its drift-test mutation means a future staging-brev-launchable-readiness job could return without failing boundary validation.

  • tools/e2e/workflow-boundary.mts#L4793-L4797: reject the forbidden readiness job explicitly.
  • test/e2e/support/e2e-workflow.test.ts#L124-L137: restore a mutation and expected validation error proving the superseded path remains removed.

As per path instructions, migration tests must prove the superseded path is unreachable or removed.

🤖 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 `@tools/e2e/workflow-boundary.mts` around lines 4793 - 4797, Keep an explicit
regression guard for the removed readiness job: in
tools/e2e/workflow-boundary.mts lines 4793-4797, add validation that rejects
staging-brev-launchable-readiness; in test/e2e/support/e2e-workflow.test.ts
lines 124-137, restore the drift-test mutation and expected validation error
proving that superseded path remains unreachable.

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/e2e-workflow.test.ts`:
- Around line 66-103: Add a case to the evaluateStagingBrevLaunchableDispatch
test with includeStagingBrevLaunchable true, empty jobs, and a non-empty targets
selector, asserting runQualification is false. Keep the assertion at the public
evaluateStagingBrevLaunchableDispatch boundary.

In `@tools/e2e/workflow-boundary.mts`:
- Around line 4793-4797: Keep an explicit regression guard for the removed
readiness job: in tools/e2e/workflow-boundary.mts lines 4793-4797, add
validation that rejects staging-brev-launchable-readiness; in
test/e2e/support/e2e-workflow.test.ts lines 124-137, restore the drift-test
mutation and expected validation error proving that superseded path remains
unreachable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3254e819-34fd-4a6e-a238-5c5d455701c5

📥 Commits

Reviewing files that changed from the base of the PR and between 0b722a4 and 11a3bbc.

📒 Files selected for processing (6)
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md
  • .agents/skills/nemoclaw-maintainer-e2e/SKILL.md
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/support/e2e-workflow.test.ts
  • tools/e2e/workflow-boundary.mts

@github-code-quality

github-code-quality Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit a87d7b0 in the codex/simplify-launc... branch remains at 96%, unchanged from commit 02b59e5 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit a87d7b0 in the codex/simplify-launc... branch remains at 81%, unchanged from commit 02b59e5 in the main branch.

Show a code coverage summary of the most impacted files.
File main 02b59e5 codex/simplify-launc... a87d7b0 +/-
src/lib/sandbox...rce-identity.ts 88% 88% 0%
src/lib/domain/.../connect-env.ts 89% 97% +8%

Updated July 28, 2026 13:05 UTC

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts (1)

448-470: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Bind each job record to the enclosing workflow run.
Match on job.run_id === runId before recording attempts; otherwise a jobsJson payload from another run can be counted as green. Also ignore job attempts newer than the run attempt.

🤖 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
@.agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts
around lines 448 - 470, Update the job-processing loop around flattenJobs so
each job is recorded only when its run_id matches the enclosing runId, and skip
attempts whose run_attempt is newer than the enclosing run attempt. Apply these
checks before pushing values into attempts, while preserving the existing name
matching and ambiguity handling.
🤖 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.

Outside diff comments:
In
@.agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts:
- Around line 448-470: Update the job-processing loop around flattenJobs so each
job is recorded only when its run_id matches the enclosing runId, and skip
attempts whose run_attempt is newer than the enclosing run attempt. Apply these
checks before pushing values into attempts, while preserving the existing name
matching and ambiguity handling.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6121c31c-08d4-44f4-8614-896a1239116c

📥 Commits

Reviewing files that changed from the base of the PR and between 5e3b3f8 and e0effa6.

📒 Files selected for processing (11)
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts
  • .agents/skills/nemoclaw-maintainer-e2e/SKILL.md
  • .agents/skills/nemoclaw-maintainer-evening/SKILL.md
  • .agents/skills/nemoclaw-maintainer-policies/references/release-train.md
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/support/e2e-workflow.test.ts
  • test/maintainer-skills-policy.test.ts
  • test/release-e2e-evidence.test.ts
  • tools/e2e/workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (4)
  • .github/workflows/e2e.yaml
  • test/e2e/support/e2e-workflow.test.ts
  • .agents/skills/nemoclaw-maintainer-e2e/SKILL.md
  • tools/e2e/workflow-boundary.mts

@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/release-e2e-evidence.test.ts`:
- Line 69: Update the fixture setup in the cross-run test to define a distinct
workflow run ID, use it for run_id, run.id, and workflowRunId, and use attempt
only for run-attempt fields. Preserve the test’s ledger assertions so distinct
contract values verify the observable 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: 58ff2ae3-ab41-448c-bfa5-439b4bcc72a5

📥 Commits

Reviewing files that changed from the base of the PR and between e0effa6 and 5dcd936.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts
  • test/release-e2e-evidence.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/scripts/release-e2e-evidence.mts

Comment thread test/release-e2e-evidence.test.ts Outdated
@jyaunches jyaunches changed the title ci(e2e): simplify Launchable qualification dispatch ci(e2e): simplify Launchable E2E dispatch Jul 28, 2026
@cv
cv merged commit f90c792 into main Jul 28, 2026
121 of 125 checks passed
@cv
cv deleted the codex/simplify-launchable-e2e branch July 28, 2026 15:58
@cjagwani cjagwani added v0.0.98 and removed v0.0.97 labels Jul 28, 2026
@cjagwani cjagwani mentioned this pull request Jul 28, 2026
23 tasks
cv pushed a commit that referenced this pull request Jul 28, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Add the canonical dated changelog entry for NemoClaw v0.0.97 before the
release plan captures `origin/main`.
The entry groups the user-visible and maintainer-facing changes since
v0.0.96 while preserving the Deferred dual-Station status, experimental
runtime-identity boundary, and pending physical IGX validation.

## Changes

- Add `docs/changelog/2026-07-28.mdx` with the parser-safe MDX SPDX
comment and exact `## v0.0.97` heading.
- Summarize the 43 merged PRs in the release range, omitting
internal-only changes from the public entry and linking each grouped
change to its most specific published documentation.
- Keep the experimental Okta reference explicitly opt-in and outside
normal onboarding, keep the two-Station path Deferred, and state that
physical IGX Orin validation remains pending.

### Source summary

- [#7440](#7440),
[#7443](#7443), and
[#7445](#7445) ->
`docs/changelog/2026-07-28.mdx`: Document read-only host readiness
reports and fail-closed platform qualification.
- [#7030](#7030) ->
`docs/changelog/2026-07-28.mdx`: Document the Deferred trusted
two-Station vLLM evaluation.
- [#7265](#7265) ->
`docs/changelog/2026-07-28.mdx`: Document the bounded experimental
direct-runner Okta runtime-identity reference.
- [#7711](#7711) and
[#7648](#7648) ->
`docs/changelog/2026-07-28.mdx`: Document compatible-endpoint reasoning
effort and retired NVIDIA Build model paths.
- [#7746](#7746),
[#7763](#7763), and
[#7681](#7681) ->
`docs/changelog/2026-07-28.mdx`: Document safe compatible-provider
creation, replacement refusal, and narrow OpenShell bridge URL handling.
- [#7641](#7641),
[#7690](#7690),
[#7631](#7631), and
[#7710](#7710) ->
`docs/changelog/2026-07-28.mdx`: Document paused-container recovery,
recreation journaling, pre-mutation uninstall checks, and
source-checkout OpenShell selection.
- [#7624](#7624) and
[#7762](#7762) ->
`docs/changelog/2026-07-28.mdx`: Document Jetson release diagnostics and
bounded render-device group propagation.
- [#7639](#7639),
[#7760](#7760),
[#7721](#7721), and
[#7761](#7761) ->
`docs/changelog/2026-07-28.mdx`: Document Telegram, MCP media-type,
Hermes image-mode, and locked-restart fixes.
- [#7653](#7653) and
[#7680](#7680) ->
`docs/changelog/2026-07-28.mdx`: Document Deep Agents policy tasks and
the bounded Claude Code OAuth path.
- [#7679](#7679) ->
`docs/changelog/2026-07-28.mdx`: Document the checksum-bound libssh2 and
Python HTMLParser backports.
- [#7655](#7655),
[#7651](#7651),
[#7664](#7664),
[#7666](#7666),
[#7670](#7670),
[#7719](#7719), and
[#7741](#7741) ->
`docs/changelog/2026-07-28.mdx`: Document exact candidate E2E evidence,
Launchable selection, diagnostic consolidation, and trusted WSL
validation.

## 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 the dated changelog contract,
MDX header, heading uniqueness, and release-entry structure.
- [ ] 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: The committed `docs/changelog/2026-07-28.mdx` blob exactly
matches the reviewed file. Completeness, factual accuracy, link shape,
parser-safe MDX header, one-sentence-per-line style, `.docs-skip`
compliance, and bounded product claims passed.
- Agent: Codex Desktop documentation writer subagent
<!-- docs-review-head-sha: da6aa27 -->
<!-- docs-review-agents-blob-sha: be20a09 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable; this PR changes only the dated
changelog.
- 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` passed 6/6.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — not applicable to this doc-only release
entry.
- [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 pre-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)
— native changelog entries use the required parser-safe MDX SPDX comment
and intentionally have no frontmatter.

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


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

## Summary by CodeRabbit

* **New Features**
* Added improved host readiness reporting and Jetson onboarding
guidance.
* Added controls for reasoning effort with compatible endpoints and
enhanced managed MCP discovery.
  * Improved Deep Agents task publication and preset support.
* **Bug Fixes**
* Hardened provider switching, sandbox recovery, uninstall behavior, and
Telegram connectivity.
* Improved container image integrity checks, media-type handling, and
checksum validation.
  * Enhanced vLLM evaluation behavior and release diagnostics.
* **Documentation**
  * Added the NemoClaw v0.0.97 changelog.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@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 Jul 29, 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