test(openclaw): cover TUI idle timeout regression#6296
Conversation
Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds issue ChangesTUI post-idle regression coverage (
CLI dispatch oclif routing test updates
Rebuild flow test environment hooks
Timeline comment clarifications
Estimated code review effort: 3 (Moderate) | ~25 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage remains at 96%, unchanged from the branch. TypeScript / code-coverage/cliThe overall coverage in the branch remains at 77%, unchanged from the branch. Show a code coverage summary of the most impacted files.
Updated |
E2E Advisor RecommendationRequired E2E: Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
E2E Target RecommendationRequired E2E targets: Dispatch required E2E targets:
Full E2E target advisor summaryE2E Target AdvisorBase: Required E2E targets
Optional E2E targets
Relevant changed files
|
PR Review Advisor (Nemotron Ultra) — Changes requestedMerge posture: Do not merge yet Action checklist
Findings index
🚨 Required before mergeAddress these before merging unless a maintainer explicitly overrides the advisor with rationale.
|
PR Review Advisor — Changes requestedMerge posture: Do not merge yet Action checklist
Findings index
Review findings by urgency: 0 required fixes, 1 item to resolve/justify, 0 in-scope improvements
|
Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
test/package-contract/cli/config-set-cli-dispatch.test.ts (1)
81-89: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueInconsistent mock shape vs. other stubbed modules.
Other mocked
require.cacheentries in this file use a Proxy that falls back tovi.fn()for unknown properties (Lines 73-76), but theoclifRunnerPathexports object here is a plain literal with onlyrunOclifArgv/runOclifCommandById. Ifoclif-runner.jsgains or exposes another export consumed along this dispatch path, this would throwTypeError: ... is not a functioninstead of failing gracefully like the other stubs. Based on the current public-dispatch.ts usage shown in context, only these two functions are consumed, so this is low risk today but worth aligning with the established pattern for resilience against future 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/package-contract/cli/config-set-cli-dispatch.test.ts` around lines 81 - 89, The oclifRunnerPath mock uses a plain exports object, unlike the other require.cache stubs that use a Proxy fallback. Update the mocked oclifRunnerPath entry in config-set-cli-dispatch.test.ts to follow the same Proxy-based shape as the other module stubs, while still exposing runOclifArgv and runOclifCommandById, so any future unexpected export access degrades consistently instead of throwing.
🤖 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/live/openclaw-tui-chat-correlation.test.ts`:
- Around line 236-297: The Expect script in buildIssue6194TuiExpectScript is
self-matching echoed input instead of verifying real TUI output. Update the two
expect checks after send -- "Reply exactly NEMOCLAW6194_CHAT_OK..." and send --
"/nemoclaw status\\r" so they anchor on output that cannot appear in the
user-entered command text, or explicitly consume the echoed line before
matching. Keep the existing ISSUE6194_MARK markers but make the regexes in
buildIssue6194TuiExpectScript validate only the TUI response, not the sent
command.
---
Nitpick comments:
In `@test/package-contract/cli/config-set-cli-dispatch.test.ts`:
- Around line 81-89: The oclifRunnerPath mock uses a plain exports object,
unlike the other require.cache stubs that use a Proxy fallback. Update the
mocked oclifRunnerPath entry in config-set-cli-dispatch.test.ts to follow the
same Proxy-based shape as the other module stubs, while still exposing
runOclifArgv and runOclifCommandById, so any future unexpected export access
degrades consistently instead of throwing.
🪄 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: acacff39-7317-410f-ad5e-6e1242b7fbef
📒 Files selected for processing (4)
test/e2e/live/openclaw-tui-chat-correlation.test.tstest/e2e/support/issue-6194-tui-post-idle-contract.test.tstest/nemoclaw-start.test.tstest/package-contract/cli/config-set-cli-dispatch.test.ts
✅ Files skipped from review due to trivial changes (1)
- test/e2e/support/issue-6194-tui-post-idle-contract.test.ts
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/e2e/live/issue-6194-tui-expect.ts (1)
6-99: 📐 Maintainability & Code Quality | 🔵 TrivialRepeated
expect { ... timeout {...} eof {...} }boilerplate across 7 blocks.The
connected[^\r\n]*idlepattern and the timeout/eof-with-Ctrl-C-and-exit-code boilerplate is duplicated across all sevenexpectblocks. A small Tclproc(or a JS-side template helper that emits this block given a pattern, mark name, and exit-code pair) would shrink the generated script and make future mark/exit-code changes less error-prone. Given this is templated string generation rather than executed Tcl logic per se, this is optional and can be deferred.🤖 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/live/issue-6194-tui-expect.ts` around lines 6 - 99, The generated Tcl script repeats the same connected-idle expectation and timeout/eof Ctrl-C handling across multiple expect blocks, so factor that boilerplate out in buildIssue6194TuiExpectScript. Add a small JS-side helper or Tcl proc that takes the regex, mark name, and exit codes, then reuse it for the repeated expect sequences so the template stays shorter and easier to update.
🤖 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/live/issue-6194-tui-expect.ts`:
- Around line 6-99: The generated Tcl script repeats the same connected-idle
expectation and timeout/eof Ctrl-C handling across multiple expect blocks, so
factor that boilerplate out in buildIssue6194TuiExpectScript. Add a small
JS-side helper or Tcl proc that takes the regex, mark name, and exit codes, then
reuse it for the repeated expect sequences so the template stays shorter and
easier to update.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 04e04616-2459-4ff2-a1f9-15cf65ff9710
📒 Files selected for processing (6)
src/lib/actions/sandbox/rebuild-prepared-recovery.test.tstest/e2e/fixtures/clients/host.tstest/e2e/live/issue-6194-tui-expect.tstest/e2e/live/openclaw-tui-chat-correlation.test.tstest/e2e/support/issue-6194-tui-post-idle-contract.test.tstest/package-contract/cli/config-set-cli-dispatch.test.ts
✅ Files skipped from review due to trivial changes (1)
- test/e2e/fixtures/clients/host.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- test/e2e/support/issue-6194-tui-post-idle-contract.test.ts
- test/package-contract/cli/config-set-cli-dispatch.test.ts
- test/e2e/live/openclaw-tui-chat-correlation.test.ts
…_idle_v2 # Conflicts: # src/lib/actions/sandbox/rebuild-prepared-recovery.test.ts
|
Exact-head refresh after the prior sequencing blockers landed:
Requesting re-review/clearance of the stale |
E2E Target Results — ✅ All requested jobs passedRun: 29032540924
|
|
Maintainer resolution for exact head The combined live target is intentional. The terminal-idle, approval, and WebSocket phases reuse one provisioned sandbox, which avoids repeating slow external cloud setup. They still have explicit diagnostic boundaries: Exact-head validation passed in run 29032540924: both |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
E2E Target Results — ❌ Some jobs failedRun: 29034353469
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
E2E Target Results — ❌ Some jobs failedRun: 29035248442
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
E2E Target Results — ✅ All requested jobs passedRun: 29035848193
|
|
Exact-head evidence for
This resolves the primary GPT advisor's sole |
E2E Target Results — ✅ All requested jobs passedRun: 29036102053
|
|
Maintainer disposition for the nonbinding Nemotron findings on exact head
The remaining architecture suggestions are nonblocking: Expect is used for real multi-PTY fidelity, the two phases have separate spawn IDs/captures/result artifacts, and focused contracts enforce explicit approval input and prevent assistant prose from serving as an approval oracle. No merge action taken. |
|
Disposition for Nemotron attempt-2
The requested duplicate per-job mutations would not close an uncovered credential boundary. Primary GPT attempt 2 independently recommends |
cv
left a comment
There was a problem hiding this comment.
Approved at exact head d1ea65a544426ed48b4824fb0bfdfd14b921934f.
- deterministic maintainer gate: all pass (50 checks green, clean merge state, no unresolved major/critical CodeRabbit findings, risky workflow path covered, DCO present, all 45 commits GitHub Verified);
- primary PR Review Advisor attempt 2:
merge_as_is; - required exact-head E2E: run 29035848193 passed
cloud-onboardandopenclaw-tui-chat-correlation, with audited artifacts proving clean-host deployment and the loaded/active revision-4 policy before the exact Atlassian retry returned HTTP 401; - latest Nemotron cleanup finding is a false positive: the canonical final cleanup exists and passed, while the repo-wide Docker-auth validator and mutation suite already cover this job. Maintainer disposition: #6296 (comment).
Approval only; no merge action taken.
|
Exact-head merge audit for
No merge action taken. |
|
Maintainer disposition for Nemotron attempt 1 on exact head
No merge action taken. |
E2E Target Results — ❌ Some jobs failedRun: 29037281297
|
|
Post-merge gate audit for final PR head
For clarity, run 29039604494 is not a product-test failure. My attempted post-merge manual dispatch omitted the required risk-shadow provenance inputs, so This closes the final-head runtime-evidence warning post-merge. A job-specific checkout mutation assertion would be additional hardening, not evidence of an unsafe current workflow. |
<!-- markdownlint-disable MD041 --> ## Summary Adds the pre-tag v0.0.79 release notes entry to `docs/about/release-notes.mdx` so the release plan can be generated after docs merge. The entry summarizes the merged v0.0.79 release train across inference, diagnostics, runtime hardening, policies, onboarding recovery, and release validation. ## Changes - Added the v0.0.79 release notes section with linked follow-up documentation for OpenRouter onboarding, managed vLLM changes, completion and logging, Deep Agents runtime limits, policy updates, onboarding recovery, and release validation. - Source summary: - #6461 -> `docs/about/release-notes.mdx`: Documents OpenRouter onboarding support and links to inference/provider references. - #6271 and #6272 -> `docs/about/release-notes.mdx`: Documents shell completion and structured logging highlights. - #6465, #6539, #6570, and #6528 -> `docs/about/release-notes.mdx`: Documents status route-drift, orphaned sandbox, gateway cleanup, and DGX Spark express-install diagnostics. - #6523, #6551, #6484, #6488, #6324, and #6542 -> `docs/about/release-notes.mdx`: Documents managed vLLM, Qwen3.6 tool parser, compaction, and timeout/readiness improvements. - #6559, #6538, #6560, #6568, #6552, #6567, and #6587 -> `docs/about/release-notes.mdx`: Documents runtime, credential, proxy, PID namespace, TOML, and provider-state hardening. - #6541, #5415, #6246, #6496, and #6573 -> `docs/about/release-notes.mdx`: Documents GitHub policy, Gmail policy, MCP allowlist, WhatsApp, and messaging-variant updates. - #6253, #6572, #6444, #6536, and #5860 -> `docs/about/release-notes.mdx`: Documents onboarding resume and create-step recovery improvements. - #6508, #6527, #5506, #6588, #6446, #6447, #6582, #6296, #6367, #6397, and #6505 -> `docs/about/release-notes.mdx`: Documents docs, release-risk, and E2E validation updates. ## 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 <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [ ] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [x] Tests not applicable — justification: Release-note prose only. - [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: ## 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 the DCO sign-off declaration 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: Tests not applicable, release-note prose only. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [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) Docs validation note: `npm run docs:check-agent-variants && npm run docs:check-routes && git diff --check` passed. Full `npm run docs` is currently blocked before Fern validation because the pinned `fern-api@5.65.2` package is unavailable from npm (`ETARGET No matching version found`). --- <!-- 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: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added release notes for v0.0.79 with a new summary of recent improvements, including onboarding and inference options, operator/CLI diagnostics, sandbox recovery hardening, runtime limits, network policy behavior, and release validation updates. * Added updated references and links for the latest release. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- markdownlint-disable MD041 --> ## Summary Adds explicit NVIDIA#6194 regression coverage for the OpenClaw terminal TUI timeout-after-connected-idle failure mode. The existing live correlation target drives the real OpenClaw TUI after connected idle, verifies chat and /nemoclaw status, and confirms a bounded clean exit. It then separately drives the supported host-side OpenShell terminal UI and a direct sandbox curl to prove deterministic network-rule approval without using assistant prose as an oracle. After the UI acknowledges the approval, the target retries the exact documented Atlassian probe and requires its unauthenticated HTTP 401 response to prove that the running policy was actually updated. The historical report used NemoClaw v0.0.72. This target guards the current branch against the same post-idle regression instead of reinstalling that known-bad release, and reuses the existing NVIDIA#2603/NVIDIA#3145 provisioned sandbox to avoid a second long cloud setup. ## Related Issue Refs NVIDIA#6194 — current-branch regression guard for the supported OpenClaw TUI and OpenShell approval surfaces. ## Changes - Add a dedicated Expect flow for chat, status, and a bounded two-step Ctrl+C exit after connected idle. - Pin the host-side OpenShell Expect PTY to xterm-256color at 40x120, bind every multi-pattern wait to its intended spawn, and keep failure cleanup nonblocking. - Add a separate OpenShell terminal approval phase with an argv-bounded direct curl, empty-pending-queue preflight, exact sandbox/host/binary checks, and supported approval action. - Match stable sandbox-detail labels and strip OpenShell SGR styling before parsing CLI rule evidence. - Use the fixed Atlassian URL as the deny-by-default pending-rule trigger, then retry that exact full URL after approval and require the documented unauthenticated HTTP 401 success signal. - Parse the policy revision from the approval acknowledgement and bounded-poll its read-only status until that exact revision is loaded and active before retrying the request. - Publish a separate post-approval capture plus structured endpoint, expected-status, observed-status, and running-policy marker fields before assertions. - Declare all three combined live boundaries explicitly: OpenClaw websocket correlation, OpenClaw post-idle terminal input, and OpenShell network-rule terminal approval. - Extend openclaw-tui-chat-correlation so the new flow reuses its provisioned cloud sandbox. - Add fast e2e-support contracts for marker ordering, complete boundary metadata, secret redaction, trusted host-command use, spawn binding, ANSI normalization, the two-step exit, fail-closed capture diagnostics, and post-approval policy proof ordering. - Precreate terminal captures, publish structured missing/empty/marker diagnostics before assertions, and redact raw captures before writing artifacts. - Install the single allowlisted expect host dependency in the selected live job, with a pinned workflow-boundary regression contract. - Remove unrelated config-dispatch and auto-pair test changes during maintainer salvage. ## Original Author Credit @chengjiew authored the NVIDIA#6194 reproduction design and implementation. The maintainer synchronization and scope-cleanup commits preserve that work; the scope-cleanup commit also records Chengjie Wang as co-author. ## Maintainer Gate Disposition - The combined target is deliberate. The existing correlation target already provisions the real cloud sandbox, gateway, hosted inference route, and OpenClaw runtime needed by all three boundaries. Running the NVIDIA#6194 phases sequentially against that one sandbox avoids a second expensive onboard and avoids cross-run state variance. Diagnostics remain isolated by boundary: the OpenClaw TUI and OpenShell approval phases have separate Expect scripts, spawn IDs, exit-code ranges, structured result JSON, raw/plain captures, and shell result artifacts. A failure identifies its owning phase and marker instead of collapsing into one transcript. - The fast contract tests inspect the generated Tcl because several safety invariants are source boundaries that one successful PTY run cannot prove: every multi-pattern wait must bind to the intended spawn, host commands must retain exact argv boundaries, markers and timeouts must remain ordered, cleanup must stay nonblocking, pending-rule evidence must match the exact sandbox/endpoint/binary, assistant prose must not become an approval oracle, the exact post-approval retry must follow the UI acknowledgement, and redaction/diagnostic artifacts must precede assertions. These are focused mutation guards for concrete failures encountered while stabilizing the live path. The exact live job supplies the complementary behavior proof. - Exact-head run [29034353469](https://github.com/NVIDIA/NemoClaw/actions/runs/29034353469) proved the new fail-closed check by rejecting an immediate HTTP 000 retry after approval. Follow-up run [29035248442](https://github.com/NVIDIA/NemoClaw/actions/runs/29035248442) proved the read-only synchronization path and no-curl-before-loaded invariant: cloud-onboard passed, while all captured policy samples still showed acknowledged revision 4 pending with active revision 3, so the final curl did not run. Behavior-tested head d1ea65a uses OpenShell's supported 60-second policy-load deadline. Run [29035848193](https://github.com/NVIDIA/NemoClaw/actions/runs/29035848193) passed both required jobs on that head. Its audited OpenClaw artifact reports acknowledged revision 4 loaded and active on polling attempt 10, then exactly one retry of the documented Atlassian endpoint returning HTTP 401, with `policyUpdated: true` and successful cleanup. The independently audited cloud-onboard artifact installs that exact SHA on a clean hosted runner, exits 0 after deployment verification reports a healthy gateway and dashboard, and verifies cleanup. Artifact digests: `sha256:c7138daffb9c38133c824e3061efd4d6e9dc5021320d7479ab8c2451826dd9fd` (OpenClaw) and `sha256:4226b386b9150dd50486eaab7025030c61d17d9d316448a069fe3b6e217e27d7` (cloud-onboard). Current head aff5821 is a GitHub-Verified merge-only commit of d1ea65a and current main e2777f8 (NVIDIA#6559): all six PR files retain identical Git blobs, and the only added main changes are the already-merged DCode resource-limit work. The [merge audit](NVIDIA#6296 (comment)) records why the prior cloud/TUI evidence remains behaviorally applicable while fresh ordinary CI and advisors run on aff5821. ## Type of Change - [x] 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 - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: test-only regression coverage; no user-facing behavior changed. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — test/workflow-only change; maintainer review verified the host-side OpenShell approval boundary, transcript isolation, and fail-closed artifact contracts. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] Required live E2E behavior evidence with merge-only reuse audit — [run 29035848193](https://github.com/NVIDIA/NemoClaw/actions/runs/29035848193) passed cloud-onboard and openclaw-tui-chat-correlation on d1ea65a; audited artifacts prove clean-host install/deployment, revision 4 loaded and active before the exact Atlassian retry returned HTTP 401, and successful cleanup. Current head aff5821 changes none of those PR files and only merges current main's already-landed NVIDIA#6559 DCode work; see the linked merge audit above. - [x] Current-head phase attribution and post-approval contracts — focused 11/11 and full e2e-support 869/869 passed. - [x] PR description includes DCO declarations and every commit is GitHub Verified - [x] Normal pre-commit, commit-msg, and pre-push hooks passed on the salvaged head - [x] Focused final TUI PTY, metadata, capture-diagnostic, and post-approval contract — 11/11 passed - [x] Full e2e-support suite — 869/869 passed on the current head - [x] npm run build:cli — passed - [x] cd nemoclaw && npm run build — passed - [x] Quality Gates section completed with required justifications - [x] 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: Chengjie Wang <chengjiew@nvidia.com> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> --------- Signed-off-by: Chengjie Wang <chengjiew@nvidia.com> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Apurv Kumaria <akumaria@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Adds the pre-tag v0.0.79 release notes entry to `docs/about/release-notes.mdx` so the release plan can be generated after docs merge. The entry summarizes the merged v0.0.79 release train across inference, diagnostics, runtime hardening, policies, onboarding recovery, and release validation. ## Changes - Added the v0.0.79 release notes section with linked follow-up documentation for OpenRouter onboarding, managed vLLM changes, completion and logging, Deep Agents runtime limits, policy updates, onboarding recovery, and release validation. - Source summary: - NVIDIA#6461 -> `docs/about/release-notes.mdx`: Documents OpenRouter onboarding support and links to inference/provider references. - NVIDIA#6271 and NVIDIA#6272 -> `docs/about/release-notes.mdx`: Documents shell completion and structured logging highlights. - NVIDIA#6465, NVIDIA#6539, NVIDIA#6570, and NVIDIA#6528 -> `docs/about/release-notes.mdx`: Documents status route-drift, orphaned sandbox, gateway cleanup, and DGX Spark express-install diagnostics. - NVIDIA#6523, NVIDIA#6551, NVIDIA#6484, NVIDIA#6488, NVIDIA#6324, and NVIDIA#6542 -> `docs/about/release-notes.mdx`: Documents managed vLLM, Qwen3.6 tool parser, compaction, and timeout/readiness improvements. - NVIDIA#6559, NVIDIA#6538, NVIDIA#6560, NVIDIA#6568, NVIDIA#6552, NVIDIA#6567, and NVIDIA#6587 -> `docs/about/release-notes.mdx`: Documents runtime, credential, proxy, PID namespace, TOML, and provider-state hardening. - NVIDIA#6541, NVIDIA#5415, NVIDIA#6246, NVIDIA#6496, and NVIDIA#6573 -> `docs/about/release-notes.mdx`: Documents GitHub policy, Gmail policy, MCP allowlist, WhatsApp, and messaging-variant updates. - NVIDIA#6253, NVIDIA#6572, NVIDIA#6444, NVIDIA#6536, and NVIDIA#5860 -> `docs/about/release-notes.mdx`: Documents onboarding resume and create-step recovery improvements. - NVIDIA#6508, NVIDIA#6527, NVIDIA#5506, NVIDIA#6588, NVIDIA#6446, NVIDIA#6447, NVIDIA#6582, NVIDIA#6296, NVIDIA#6367, NVIDIA#6397, and NVIDIA#6505 -> `docs/about/release-notes.mdx`: Documents docs, release-risk, and E2E validation updates. ## 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 <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [ ] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [x] Tests not applicable — justification: Release-note prose only. - [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: ## 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 the DCO sign-off declaration 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: Tests not applicable, release-note prose only. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [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) Docs validation note: `npm run docs:check-agent-variants && npm run docs:check-routes && git diff --check` passed. Full `npm run docs` is currently blocked before Fern validation because the pinned `fern-api@5.65.2` package is unavailable from npm (`ETARGET No matching version found`). --- <!-- 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: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added release notes for v0.0.79 with a new summary of recent improvements, including onboarding and inference options, operator/CLI diagnostics, sandbox recovery hardening, runtime limits, network policy behavior, and release validation updates. * Added updated references and links for the latest release. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
Adds explicit #6194 regression coverage for the OpenClaw terminal TUI timeout-after-connected-idle failure mode. The existing live correlation target drives the real OpenClaw TUI after connected idle, verifies chat and /nemoclaw status, and confirms a bounded clean exit. It then separately drives the supported host-side OpenShell terminal UI and a direct sandbox curl to prove deterministic network-rule approval without using assistant prose as an oracle. After the UI acknowledges the approval, the target retries the exact documented Atlassian probe and requires its unauthenticated HTTP 401 response to prove that the running policy was actually updated.
The historical report used NemoClaw v0.0.72. This target guards the current branch against the same post-idle regression instead of reinstalling that known-bad release, and reuses the existing #2603/#3145 provisioned sandbox to avoid a second long cloud setup.
Related Issue
Refs #6194 — current-branch regression guard for the supported OpenClaw TUI and OpenShell approval surfaces.
Changes
Original Author Credit
@chengjiew authored the #6194 reproduction design and implementation. The maintainer synchronization and scope-cleanup commits preserve that work; the scope-cleanup commit also records Chengjie Wang as co-author.
Maintainer Gate Disposition
policyUpdated: trueand successful cleanup. The independently audited cloud-onboard artifact installs that exact SHA on a clean hosted runner, exits 0 after deployment verification reports a healthy gateway and dashboard, and verifies cleanup. Artifact digests:sha256:c7138daffb9c38133c824e3061efd4d6e9dc5021320d7479ab8c2451826dd9fd(OpenClaw) andsha256:4226b386b9150dd50486eaab7025030c61d17d9d316448a069fe3b6e217e27d7(cloud-onboard). Current head aff5821 is a GitHub-Verified merge-only commit of d1ea65a and current main e2777f8 (fix(dcode): enforce sandbox process and file descriptor limits #6559): all six PR files retain identical Git blobs, and the only added main changes are the already-merged DCode resource-limit work. The merge audit records why the prior cloud/TUI evidence remains behaviorally applicable while fresh ordinary CI and advisors run on aff5821.Type of Change
Quality Gates
Verification
Signed-off-by: Chengjie Wang chengjiew@nvidia.com
Signed-off-by: Apurv Kumaria akumaria@nvidia.com