Skip to content

test(e2e): harden progress coverage boundaries#7397

Merged
cv merged 16 commits into
mainfrom
codex/7101-e2e-progress-delta
Jul 23, 2026
Merged

test(e2e): harden progress coverage boundaries#7397
cv merged 16 commits into
mainfrom
codex/7101-e2e-progress-delta

Conversation

@apurvvkumaria

@apurvvkumaria apurvvkumaria commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

#7100 established semantic phase coverage for all live E2E cases. This follow-up closes the remaining contract gaps without reapplying that implementation: it covers workflow-selected credential-free integration tests, requires E2E child-process boundaries to expose content-free liveness, and blocks OpenShell gateway-auth artifact uploads unless a fail-closed safety scan approves the current run attempt. Together with #7100, this completes #7101 while preserving current main behavior in the audited overlap areas.

Related Issue

Fixes #7101

Changes

  • Strengthen the shared progress contract with a frozen canonical capability, target/scenario identity, total and phase elapsed time, validated content-free events and activities, timestamp-only child-output observations, and final-phase enforcement.
  • Add spawnObservedChild as the audited direct asynchronous process boundary used by E2E helpers. The semantic checker rejects unaudited direct process APIs and requires synchronous calls to use a bounded timeout plus SIGKILL.
  • Add the lightweight workflow-e2e-test fixture for credential-free integration tests selected by the authoritative E2E planner, so they publish and validate the same semantic timeline and progress artifact contract without the stateful live fixture.
  • Convert the remaining agent-turn, Bedrock, Ollama, inference-routing, runtime-override, fake-server, Docker, and cleanup process paths to progress-aware boundaries without forwarding child stdout or stderr contents.
  • Scan final OpenShell gateway-auth artifacts before upload in both main and candidate workflows. Unsafe files are quarantined or deleted, and upload requires a run-ID/run-attempt-specific approval marker so a stale or failed scan cannot authorize publication.
  • Expand semantic coverage tests, workflow-boundary tests, pre-commit routing, and contributor/E2E documentation for these additional enforcement boundaries.

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: An independent clean-delta and rollback audit confirmed that test(e2e): add semantic live progress phases #7100 behavior remains intact, all 13 previously identified fix(security): update OpenClaw to 2026.7.1 #7280-sensitive paths preserve current main, the Hermes shard implementations are unchanged, and the gateway-auth scanner/upload path fails closed. Focused scanner and workflow-boundary tests pass on the rebased commit.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

DGX Station Hardware Evidence

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

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 — rebased final-head E2E-support suite: 17 files and 150/150 tests passed; npm run test:e2e-phases:check: 123 tests across 82 files passed; selected integration suite: 6 files passed and 1 skipped, with 37 tests passed and 3 skipped; CLI and plugin type-checks, CLI build, 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 — local npm run check completed the full pre-commit stage, but its intentionally serial CLI/integration coverage lane reached the four-hour execution ceiling before producing a final summary; required sharded CI is authoritative
  • 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) — passed with 0 errors and 2 existing Fern warnings
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

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

Summary by CodeRabbit

  • New Features

    • Added structured, redacted progress reporting across E2E phases and workflow-selected credential-free integration tests.
    • Introduced an OpenShell gateway auth artifact safety scan that produces an approved payload and gates evidence/artifact uploads.
  • Bug Fixes

    • Prevented sensitive values from appearing in progress output and persisted artifacts; uploads now proceed only after safety approval succeeds.
    • Hardened E2E subprocess lifecycle handling with forced termination, bounded output capture, and safer shutdown behavior.
  • Documentation

    • Updated E2E phase-plan/progress and artifact-safety guidance, including the test:e2e-phases:check contract.
  • Tests

    • Expanded coverage for progress reporting, observed subprocess lifecycle, and workflow/semantic-phase boundary rules.

Documentation Writer Review

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 area: observability Logging, metrics, tracing, diagnostics, or debug output area: security Security controls, permissions, secrets, or hardening v0.0.93 labels Jul 22, 2026
@apurvvkumaria apurvvkumaria self-assigned this 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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b56f27e5-17ef-4e5b-a34d-15a3c3413824

📥 Commits

Reviewing files that changed from the base of the PR and between 00132a7 and bd75ae8.

📒 Files selected for processing (1)
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts

📝 Walkthrough

Walkthrough

The PR adds secret-safe E2E progress reporting, workflow-driven semantic phase validation, supervised subprocess execution, bounded command output, and fail-closed OpenShell gateway auth artifact approval before upload.

Changes

E2E progress and subprocess contract

Layer / File(s) Summary
Canonical progress and workflow fixtures
test/e2e/fixtures/*
Progress output now includes identity, timing, events, reached-phase checks, frozen capability validation, workflow integration-test support, and cleanup diagnostics.
Observed child-process execution
test/e2e/fixtures/observed-child-process.ts, test/e2e/fixtures/shell-probe.ts, test/e2e/fixtures/docker-probe.ts, test/e2e/fixtures/fake-openai-compatible.ts
Child processes use timestamp-only observation, bounded output capture, redaction-safe diagnostics, supervision, and hard termination rules.
Live fixture integration and tests
test/e2e/live/*, test/gateway-drift-preflight.test.ts, test/e2e/support/*
Live helpers and support tests pass canonical progress through servers, tunnels, gateways, Docker probes, raw commands, proxy processes, and cleanup flows.

Workflow artifact safety

Layer / File(s) Summary
Artifact scanning and approval
tools/e2e/openshell-gateway-auth-artifact-safety.mts, test/e2e/live/openshell-gateway-auth-source-contract-helpers.ts
Gateway auth artifacts are recursively scanned, quarantined or deleted when unsafe, copied into approved staging, and marked with run/attempt-specific approval files.
Workflow upload gating
.github/workflows/*.yaml, tools/e2e/*workflow-boundary*.mts
Safety scanning runs after the live test, and artifact uploads require successful scanning plus the approved staged path.
Boundary validation
test/candidate-compat.test.ts, test/e2e/support/openshell-gateway-auth-*.test.ts
Workflow order, commands, upload conditions, marker binding, quarantine behavior, and post-finalization unsafe writes are validated.

Semantic phase coverage

Layer / File(s) Summary
Workflow-driven planner and checker
tools/e2e/check-semantic-phases.mts
Semantic phase coverage spans live and credential-free workflow-selected modules, follows dynamic imports, audits child-process boundaries, and verifies exact Vitest collection.
Audit fixtures and assertions
test/e2e/support/fixtures/semantic-phase-child-process.fixture.ts, test/e2e/support/e2e-semantic-phase-check.test.ts
Fixtures and tests cover direct API aliases, loader paths, sync timeout/kill settings, observed lifecycle requirements, and canonical progress capability enforcement.
Coverage wiring and documentation
.pre-commit-config.yaml, CONTRIBUTING.md, test/e2e/README.md, test/e2e/docs/README.md, test/e2e/mock-parity.json
Hooks, documentation, and mock parity mappings reflect workflow-selected integration coverage and the expanded subprocess/progress contract.

Additional E2E updates

Layer / File(s) Summary
Async Docker runtime override flow
test/e2e/live/runtime-overrides.test.ts, test/vllm-docker-storage.test.ts
Docker commands and evidence collection use asynchronous runners, explicit timeouts, phase metadata, and structured evidence output.
Timeout hardening and progress wiring
test/e2e/live/*, test/e2e/risk-signal-reporter.ts, tools/e2e/runner-pressure.mts
Synchronous subprocess calls gain bounded execution and hard-kill settings, while live tests pass progress into shared fixtures.
Phase naming and snapshot framing
test/e2e/live/agent-turn-latency.test.ts, test/e2e/live/rebuild-hermes-*, test/e2e/live/bedrock-runtime-compatible-anthropic-leaks.ts
Phase labels and snapshot framing are aligned with updated progress and bounded-output contracts.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#7100: Both PRs update the shared semantic phase progress system, checker, and related E2E contracts.

Suggested labels: bug-fix, area: docs

Suggested reviewers: cv, cjagwani

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 2.22% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the PR’s main theme: hardening E2E progress coverage boundaries.
Linked Issues check ✅ Passed The changes align with #7101 by adding secret-safe progress, phase coverage checks, workflow-selected test coverage, and cleanup completion tracking.
Out of Scope Changes check ✅ Passed I don't see unrelated code; the docs, tests, workflows, and tooling all support the progress and artifact-safety objectives.
✨ 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/7101-e2e-progress-delta

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 bd75ae8 in the codex/7101-e2e-progr... branch remains at 96%, unchanged from commit 21e60ae in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit bd75ae8 in the codex/7101-e2e-progr... branch remains at 80%, unchanged from commit 21e60ae in the main branch.

Show a code coverage summary of the most impacted files.
File main 21e60ae codex/7101-e2e-progr... bd75ae8 +/-
src/lib/agent/r...ime-manifest.ts 100% 100% 0%
src/lib/sandbox...rce-identity.ts 87% 87% 0%
src/lib/tunnel/services.ts 73% 73% 0%
src/lib/domain/.../connect-env.ts 89% 97% +8%

Updated July 23, 2026 09:13 UTC

Comment thread test/e2e/support/hosted-inference.test.ts Fixed
Comment thread test/e2e/support/hosted-inference.test.ts Fixed
@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / medium 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 · medium 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, agent-turn-latency, bedrock-runtime-compatible-anthropic, channels-add-remove, concurrent-gateway-ports, device-auth-health, diagnostics, double-onboard, gateway-drift-preflight, hermes-gpu-startup, hermes-inference-switch, hermes-shields-config, inference-routing, issue-4434-tui-unreachable-inference, mcp-bridge, mcp-bridge-dev, network-policy, ollama-auth-proxy (+12 more)

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.

Actionable comments posted: 6

Caution

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

⚠️ Outside diff range comments (1)
tools/e2e/check-semantic-phases.mts (1)

2260-2334: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Avoid depending on Vitest internals herecreateVitest(..., { project: string[] }), collect(), and the TestModule fields used below (relativeModuleId, children.allTests(), errors(), meta().e2ePhases) are internal rather than documented Vitest APIs. Keep this behind a compatibility shim or pin Vitest tightly, or this check may break on a routine upgrade.

🤖 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/check-semantic-phases.mts` around lines 2260 - 2334, The
checkSemanticPhaseCoverage implementation relies directly on undocumented Vitest
APIs, including createVitest project configuration, collect(), and TestModule
internals. Encapsulate these interactions in a compatibility shim with a stable
interface for collected modules, tests, errors, and module identifiers, or
otherwise pin and enforce the supported Vitest version; update
checkSemanticPhaseCoverage to use that abstraction.
🧹 Nitpick comments (1)
test/e2e/support/e2e-fixture-context.test.ts (1)

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

Assert the failure progress instead of only setting it.

progress.stop("failed") changes the reporter’s state but does not verify that the missing-command path produced the expected failure diagnostic. Since the prior activity assertions were removed, assert progress.summary() or the recorded event stream after stopping.

As per path instructions, tests should verify observable behavioral outcomes rather than implementation-only state changes.

🤖 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-fixture-context.test.ts` at line 481, Update the
missing-command test around progress.stop("failed") to assert the observable
failure diagnostic after stopping, using progress.summary() or the recorded
event stream. Keep the stop call, but verify that the expected failure outcome
was produced rather than only changing reporter state.

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.

Inline comments:
In `@test/compatible-endpoint-context-probe.test.ts`:
- Around line 24-27: Give each progress reporter a fixture-owned, per-test
lifecycle: in test/compatible-endpoint-context-probe.test.ts lines 24-27, use
the fixture-provided progress, or create and stop a fresh reporter per test
after closing the fake server; in test/e2e/support/e2e-fixture-context.test.ts
lines 23-28, ensure every supportProgress() instance is stopped in a finally
block or through a scoped helper that owns finalization. Audited subprocesses
must receive the canonical progress capability and each test must complete its
declared progress lifecycle.

In `@test/e2e/fixtures/fake-openai-compatible.ts`:
- Around line 223-229: Update the readiness failure handling around waitForReady
so cleanup via close does not replace the original error when close itself
fails. Preserve and rethrow the readiness error, while retaining the cleanup
failure as secondary context using the project’s established error-cause or
aggregation pattern if available.

In `@test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts`:
- Around line 79-121: Bound stdout and stderr accumulation in runRawCommand
using the existing bounded capture pattern from docker-probe.ts. Update the
child stdout and stderr data handlers to retain only the configured maximum
output while preserving enough information to report truncation, preventing
noisy processes from growing buffers without limit.

In `@test/e2e/support/e2e-progress-fixture.test.ts`:
- Around line 34-50: Update the spawnSync options in the e2e progress fixture
test to retain the positive timeout and explicitly set killSignal to "SIGKILL",
matching the existing runner-pressure configuration. Apply only this subprocess
timeout handling change.

In `@test/e2e/support/e2e-progress-outcome.test.ts`:
- Around line 22-38: Update the spawnSync invocation in the e2e progress outcome
test to set killSignal to "SIGKILL" alongside the existing timeout option,
ensuring timed-out child processes are forcefully terminated. Apply only this
change to the spawnSync options.

In `@test/e2e/support/workflow-e2e-progress.test.ts`:
- Around line 23-40: Add killSignal: "SIGKILL" to the options object of the
spawnSync call launching VITEST in the workflow progress test, preserving the
existing timeout and environment configuration.

---

Outside diff comments:
In `@tools/e2e/check-semantic-phases.mts`:
- Around line 2260-2334: The checkSemanticPhaseCoverage implementation relies
directly on undocumented Vitest APIs, including createVitest project
configuration, collect(), and TestModule internals. Encapsulate these
interactions in a compatibility shim with a stable interface for collected
modules, tests, errors, and module identifiers, or otherwise pin and enforce the
supported Vitest version; update checkSemanticPhaseCoverage to use that
abstraction.

---

Nitpick comments:
In `@test/e2e/support/e2e-fixture-context.test.ts`:
- Line 481: Update the missing-command test around progress.stop("failed") to
assert the observable failure diagnostic after stopping, using
progress.summary() or the recorded event stream. Keep the stop call, but verify
that the expected failure outcome was produced rather than only changing
reporter state.
🪄 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: 04f140b8-2f7b-49bc-808f-ab9f4eb6e23d

📥 Commits

Reviewing files that changed from the base of the PR and between 7e8945a and a35d72c.

📒 Files selected for processing (86)
  • .github/workflows/candidate-compatibility.yaml
  • .github/workflows/e2e.yaml
  • .pre-commit-config.yaml
  • CONTRIBUTING.md
  • test/candidate-compat.test.ts
  • test/compatible-endpoint-context-probe.test.ts
  • test/e2e/README.md
  • test/e2e/docs/README.md
  • test/e2e/fixtures/cleanup.ts
  • test/e2e/fixtures/docker-probe.ts
  • test/e2e/fixtures/e2e-test.ts
  • test/e2e/fixtures/fake-openai-compatible.ts
  • test/e2e/fixtures/inference-adapter.ts
  • test/e2e/fixtures/observed-child-process.ts
  • test/e2e/fixtures/progress.ts
  • test/e2e/fixtures/shell-probe.ts
  • test/e2e/fixtures/shell/supervisor.ts
  • test/e2e/fixtures/workflow-e2e-test.ts
  • test/e2e/live/agent-turn-latency-helpers.ts
  • test/e2e/live/agent-turn-latency.test.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic.test.ts
  • test/e2e/live/channels-add-remove.test.ts
  • test/e2e/live/concurrent-gateway-ports.test.ts
  • test/e2e/live/device-auth-health.test.ts
  • test/e2e/live/diagnostics.test.ts
  • test/e2e/live/double-onboard.test.ts
  • test/e2e/live/hermes-gpu-startup.test.ts
  • test/e2e/live/hermes-inference-switch.test.ts
  • test/e2e/live/hermes-root-entrypoint-smoke.test.ts
  • test/e2e/live/hermes-sandbox-secret-boundary.test.ts
  • test/e2e/live/hermes-shields-config.test.ts
  • test/e2e/live/inference-routing-helpers.ts
  • test/e2e/live/inference-routing-provider-smoke.test.ts
  • test/e2e/live/inference-routing.test.ts
  • test/e2e/live/issue-4434-tui-unreachable-inference.test.ts
  • test/e2e/live/mcp-bridge-servers.ts
  • test/e2e/live/mcp-bridge.test.ts
  • test/e2e/live/messaging-compatible-endpoint-helpers.ts
  • test/e2e/live/ollama-auth-proxy.test.ts
  • test/e2e/live/onboard-repair.test.ts
  • test/e2e/live/onboard-resume.test.ts
  • test/e2e/live/openclaw-inference-switch.test.ts
  • test/e2e/live/openclaw-plugin-runtime-exdev.test.ts
  • test/e2e/live/openshell-credential-generation-window.test.ts
  • test/e2e/live/openshell-gateway-auth-source-contract-helpers.ts
  • test/e2e/live/openshell-gateway-upgrade.test.ts
  • test/e2e/live/openshell-version-pin.test.ts
  • test/e2e/live/rebuild-hermes-phases.ts
  • test/e2e/live/rebuild-hermes.test.ts
  • test/e2e/live/runtime-overrides.test.ts
  • test/e2e/live/snapshot-commands.test.ts
  • test/e2e/live/token-rotation.test.ts
  • test/e2e/mock-parity.json
  • test/e2e/risk-signal-reporter.ts
  • test/e2e/support/agent-turn-latency-progress.test.ts
  • test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts
  • test/e2e/support/device-auth-health-helpers.test.ts
  • test/e2e/support/e2e-fixture-context.test.ts
  • test/e2e/support/e2e-progress-fixture.test.ts
  • test/e2e/support/e2e-progress-outcome.test.ts
  • test/e2e/support/e2e-redaction-entry.test.ts
  • test/e2e/support/e2e-resource-phase-label.test.ts
  • test/e2e/support/e2e-semantic-phase-check.test.ts
  • test/e2e/support/fixtures/e2e-progress-outcome.fixture.test.ts
  • test/e2e/support/fixtures/e2e-progress.fixture.test.ts
  • test/e2e/support/fixtures/semantic-phase-child-process.fixture.ts
  • test/e2e/support/fixtures/workflow-e2e-progress.fixture.test.ts
  • test/e2e/support/hosted-inference.test.ts
  • test/e2e/support/inference-adapter.test.ts
  • test/e2e/support/observed-child-process.test.ts
  • test/e2e/support/openshell-gateway-auth-contract-workflow-boundary.test.ts
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts
  • test/e2e/support/rebuild-hermes-progress.test.ts
  • test/e2e/support/upload-e2e-artifacts-workflow-boundary.test.ts
  • test/e2e/support/workflow-e2e-progress.test.ts
  • test/gateway-drift-preflight.test.ts
  • test/historical-openclaw-security-revision-container-e2e.test.ts
  • test/mcp-bridge-servers.test.ts
  • test/openclaw-security-revision-container-e2e.test.ts
  • test/vllm-docker-storage.test.ts
  • tools/e2e/check-semantic-phases.mts
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts
  • tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts
  • tools/e2e/runner-pressure.mts
  • tools/e2e/upload-e2e-artifacts-workflow-boundary.mts

Comment thread test/compatible-endpoint-context-probe.test.ts Outdated
Comment thread test/e2e/fixtures/fake-openai-compatible.ts
Comment thread test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
Comment thread test/e2e/support/e2e-progress-fixture.test.ts
Comment thread test/e2e/support/e2e-progress-outcome.test.ts
Comment thread test/e2e/support/workflow-e2e-progress.test.ts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Comment thread .github/workflows/e2e.yaml Outdated
Signed-off-by: Carlos Villela <cvillela@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: 3

🤖 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/compatible-endpoint-context-probe.test.ts`:
- Around line 20-33: Update testProgress() to use the canonical progress logger
instead of suppressing output with logLine: () => undefined, and provide a
stable targetId identifying the compatible endpoint support scenario. Preserve
the existing progress phases while ensuring emitted diagnostics include
target/scenario identity and elapsed-time information.
- Around line 27-30: Advance the progress recorder through both declared phases
in each test using the progress instance returned by startTestProgress: call
progress.phase("serve compatible endpoint") before the serving step and
progress.phase("verify compatible endpoint") before verification, ensuring the
terminal phase is active before afterEach cleanup.

In `@test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts`:
- Around line 123-147: Update the test case around progressProbe and
runRawCommand so the command execution and all assertions are wrapped in a
try/finally block. Move progress.stop() into the finally block, ensuring it runs
whether execution or assertions succeed or throw.
🪄 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: 1673de5c-6e53-451a-82c0-c6edf7f51a9d

📥 Commits

Reviewing files that changed from the base of the PR and between 729352e and 290cc45.

📒 Files selected for processing (9)
  • test/compatible-endpoint-context-probe.test.ts
  • test/e2e/fixtures/fake-openai-compatible.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
  • test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts
  • test/e2e/support/e2e-fixture-context.test.ts
  • test/e2e/support/e2e-progress-fixture.test.ts
  • test/e2e/support/e2e-progress-outcome.test.ts
  • test/e2e/support/hosted-inference.test.ts
  • test/e2e/support/workflow-e2e-progress.test.ts
🚧 Files skipped from review as they are similar to previous changes (6)
  • test/e2e/support/hosted-inference.test.ts
  • test/e2e/support/workflow-e2e-progress.test.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
  • test/e2e/support/e2e-progress-outcome.test.ts
  • test/e2e/support/e2e-progress-fixture.test.ts
  • test/e2e/fixtures/fake-openai-compatible.ts

Comment thread test/compatible-endpoint-context-probe.test.ts
Comment thread test/compatible-endpoint-context-probe.test.ts Outdated
Comment thread test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts Outdated
cv and others added 4 commits July 22, 2026 15:59
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
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 `@tools/e2e/openshell-gateway-auth-artifact-safety.mts`:
- Around line 139-166: Update copyRegularFile so the source descriptor is always
closed when opening the approved descriptor fails. Restructure the descriptor
acquisition and cleanup around the existing try/finally, ensuring approved is
closed only after successful acquisition while source is closed on every path,
including O_CREAT|O_EXCL open errors.
🪄 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: e5f3f30c-e2df-435f-a923-15a36a864364

📥 Commits

Reviewing files that changed from the base of the PR and between 290cc45 and 87190a5.

📒 Files selected for processing (11)
  • .github/workflows/candidate-compatibility.yaml
  • .github/workflows/e2e.yaml
  • test/candidate-compat.test.ts
  • test/compatible-endpoint-context-probe.test.ts
  • test/e2e/docs/README.md
  • test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts
  • test/e2e/support/openshell-gateway-auth-contract-workflow-boundary.test.ts
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts
  • tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts
  • tools/e2e/upload-e2e-artifacts-workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (5)
  • .github/workflows/candidate-compatibility.yaml
  • tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts
  • test/e2e/docs/README.md
  • test/candidate-compat.test.ts
  • test/compatible-endpoint-context-probe.test.ts

Comment thread tools/e2e/openshell-gateway-auth-artifact-safety.mts Outdated
Signed-off-by: Carlos Villela <cvillela@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.

Caution

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

⚠️ Outside diff range comments (1)
tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts (1)

167-171: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Validate the scan command exactly, not by substring.

requireRunContains accepts a command such as the required scan followed by || true, allowing a failed safety scan to produce a successful step outcome and potentially satisfy the upload gate. Require the exact command/arguments or reject shell operators that can mask its exit status, and add a regression test for this bypass.

🤖 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/openshell-gateway-auth-contract-workflow-boundary.mts` around lines
167 - 171, Update the validation around requireRunContains in the
artifact-safety workflow to require the exact scan command and arguments, rather
than accepting commands with appended shell operators such as || true that can
mask failures. Preserve the existing expected command and add a regression test
covering the bypass attempt.
🤖 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 `@tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts`:
- Around line 167-171: Update the validation around requireRunContains in the
artifact-safety workflow to require the exact scan command and arguments, rather
than accepting commands with appended shell operators such as || true that can
mask failures. Preserve the existing expected command and add a regression test
covering the bypass attempt.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 97efe396-76e3-4339-8f46-31a911d4886a

📥 Commits

Reviewing files that changed from the base of the PR and between 87190a5 and 3c7d643.

📒 Files selected for processing (6)
  • test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
  • test/e2e/support/bedrock-runtime-compatible-anthropic-progress.test.ts
  • test/e2e/support/e2e-progress-outcome.test.ts
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts
  • tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/e2e/support/e2e-progress-outcome.test.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic-raw-command.ts
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts

apurvvkumaria and others added 3 commits July 22, 2026 16:19
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@apurvvkumaria

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
Action performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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/docker-probe.test.ts (1)

122-203: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider extracting the fake-child/progress setup into a shared helper.

This test builds a fake ChildProcess (132-138) and a stubbed startTestProgress (139-148) inline; if similar constructs already exist elsewhere in this file for other DockerProbe real-branch tests, factoring them into a local helper would reduce duplication and shrink this single 80-line test.

🤖 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/docker-probe.test.ts` around lines 122 - 203, Extract the
repeated fake ChildProcess and startTestProgress setup from the output-limit
test into a local shared helper, reusing existing equivalent setup in nearby
DockerProbe real-branch tests where applicable. Update this test and other
matching tests to call the helper while preserving their process, stream,
progress, and cleanup behavior.
🤖 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/docker-probe.test.ts`:
- Around line 122-203: Extract the repeated fake ChildProcess and
startTestProgress setup from the output-limit test into a local shared helper,
reusing existing equivalent setup in nearby DockerProbe real-branch tests where
applicable. Update this test and other matching tests to call the helper while
preserving their process, stream, progress, and cleanup behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3ed81676-f0f1-43ab-b7bf-b7ba326e902e

📥 Commits

Reviewing files that changed from the base of the PR and between ede6e02 and ebf1323.

📒 Files selected for processing (1)
  • test/e2e/support/docker-probe.test.ts

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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)
.github/workflows/e2e.yaml (1)

5156-5175: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Pass needs as data via env:, not templated into the script body.

const needs = ${{ toJSON(needs) }}; splices job-output JSON directly into the JS source, unlike the sibling values (JOBS, EXPLICIT_ONLY_JOBS, RUNTIME_ARTIFACTS, TARGETS) in the same step which are correctly passed through env: and read via process.env. This is flagged by zizmor as a template-injection vector: content originating from upstream job outputs could break out of the intended JS literal.

🔒️ Proposed fix
         env:
           EXPLICIT_ONLY_JOBS: ${{ needs.generate-matrix.outputs.explicit_only_jobs }}
           JOBS: ${{ inputs.jobs }}
           RUNTIME_ARTIFACTS: ${{ runner.temp }}/e2e-runtime-audit
           TARGETS: ${{ inputs.targets }}
+          NEEDS: ${{ toJSON(needs) }}
        with:
          script: |
            ...
-            const needs = ${{ toJSON(needs) }};
+            const needs = JSON.parse(process.env.NEEDS);

As per path instructions, "Keep permissions least-privileged and pass untrusted values as data rather than interpolating them into shell programs."

🤖 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 @.github/workflows/e2e.yaml around lines 5156 - 5175, Pass the needs context
through the step’s env configuration instead of interpolating it into the inline
JavaScript. Update the script around buildScorecard and the existing
process.env-based inputs to read needs from process.env and parse it as data,
preserving the current value while eliminating direct template insertion into
the script body.

Sources: Path instructions, Linters/SAST tools

🤖 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 @.github/workflows/e2e.yaml:
- Around line 5156-5175: Pass the needs context through the step’s env
configuration instead of interpolating it into the inline JavaScript. Update the
script around buildScorecard and the existing process.env-based inputs to read
needs from process.env and parse it as data, preserving the current value while
eliminating direct template insertion into the script body.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b7fc505b-bbc5-49e7-aa8f-53af5338f101

📥 Commits

Reviewing files that changed from the base of the PR and between ebf1323 and 00132a7.

📒 Files selected for processing (6)
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/docs/README.md
  • test/e2e/live/onboard-resume.test.ts
  • test/e2e/support/openshell-gateway-auth-source-contract-helpers.test.ts
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts
💤 Files with no reviewable changes (1)
  • test/e2e/live/onboard-resume.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/e2e/README.md
  • test/e2e/docs/README.md
  • tools/e2e/openshell-gateway-auth-artifact-safety.mts

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@cv
cv merged commit 595739f into main Jul 23, 2026
107 of 110 checks passed
@cv
cv deleted the codex/7101-e2e-progress-delta branch July 23, 2026 14:39
@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 -->
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 area: security Security controls, permissions, secrets, or hardening

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add secret-safe phase progress diagnostics to every E2E test

4 participants