Skip to content

fix(install): name NEMOCLAW_FRESH=1 in failed-session remediation#6916

Merged
cv merged 1 commit into
mainfrom
fix/6912-onboard-fresh-env-remediation
Jul 15, 2026
Merged

fix(install): name NEMOCLAW_FRESH=1 in failed-session remediation#6916
cv merged 1 commit into
mainfrom
fix/6912-onboard-fresh-env-remediation

Conversation

@laitingsheng

@laitingsheng laitingsheng commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

The installer's failed onboarding-session error told users to Re-run with --fresh, but --fresh cannot be passed through a piped curl … | bash install — the only actionable lever there is the NEMOCLAW_FRESH=1 environment variable, which the installer already documents and honours. The three run_onboard failed-session branches now name NEMOCLAW_FRESH=1, so the remediation is actionable for the non-interactive and no-TTY paths that emit it.

Related Issue

Fixes #6912

Changes

  • scripts/install.sh: the non-interactive, no-TTY, and TTY-unreadable failed-session branches now advise NEMOCLAW_FRESH=1 in place of the un-pipeable --fresh flag; the onboard --resume alternative is unchanged.
  • test/install-preflight.test.ts: the non-interactive failed-session test now asserts the emitted error names NEMOCLAW_FRESH=1, guarding the corrected remediation.

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: NEMOCLAW_FRESH=1 is already documented in the installer help and environment list; only an existing error-message string changed.
  • 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: wording-only change to an existing onboarding error message; no change to control flow, onboarding logic, or security posture — deferring to maintainer review.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

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:
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: n/a — string-only installer change, no broad runtime/harness or coverage change.
  • 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: Tinson Lai tinsonl@nvidia.com

Summary by CodeRabbit

  • Bug Fixes
    • Updated installer guidance for recovering from failed onboarding sessions.
    • Clarified how to start a fresh onboarding attempt or resume an existing session in interactive and non-interactive modes.
    • Corrected the fresh-start option to use the NEMOCLAW_FRESH=1 environment setting.

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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: 01091f63-7491-49ae-8c85-6d1a014580ac

📥 Commits

Reviewing files that changed from the base of the PR and between 55fdc3f and df98f7f.

📒 Files selected for processing (2)
  • scripts/install.sh
  • test/install-preflight.test.ts

📝 Walkthrough

Walkthrough

The installer’s failed-onboarding messages now recommend NEMOCLAW_FRESH=1 instead of --fresh, while retaining the onboard --resume option. The related non-interactive test assertion was updated accordingly.

Changes

Failed onboarding guidance

Layer / File(s) Summary
Installer guidance and validation
scripts/install.sh, test/install-preflight.test.ts
Failed-session guidance uses NEMOCLAW_FRESH=1 for non-interactive and interactive error paths, and the test verifies the updated text.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested labels: bug-fix

Suggested reviewers: cv, sandl99, ericksoa

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main installer remediation change and matches the PR scope.
Linked Issues check ✅ Passed The PR updates all failed-session installer messages to name NEMOCLAW_FRESH=1 and keeps the resume path, matching #6912.
Out of Scope Changes check ✅ Passed The changes stay within installer messaging and the related test update, with no unrelated scope added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ 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 fix/6912-onboard-fresh-env-remediation

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

@laitingsheng laitingsheng added NV QA Bugs found by the NVIDIA QA Team area: install Install, setup, prerequisites, or uninstall flow bug-fix PR fixes a bug or regression labels Jul 15, 2026
@github-code-quality

github-code-quality Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage remains at 96%, unchanged from the main branch.

TypeScript / code-coverage/cli

The overall coverage in the fix/6912-onboard-fre... branch remains at 79%, unchanged from the main branch.

Show a code coverage summary of the most impacted files.
File main 55fdc3f fix/6912-onboard-fre... df98f7f +/-
src/lib/shields/audit.ts 97% 92% -5%

Updated July 15, 2026 10:40 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / high confidence
Next action: Review the warnings below.
Findings: 0 blockers · 1 warning · 0 suggestions
Status: Canonical ledger: 0 blocker(s), 1 warning(s), 0 suggestion(s).

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 1 warning · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings differ; normalized E2E selections differ; Nemotron reported the same number of blockers, 1 fewer 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-onboard

1 optional E2E recommendation
  • onboard-negative-paths
1 warning · 0 suggestions

Warnings

Warnings do not block.

PRA-1 Warning — Cover the changed no-TTY failed-session remediation branches

  • Location: scripts/install.sh:2412
  • Category: tests
  • Problem: The patch changes the no-TTY and unreadable-TTY failed-session messages to recommend NEMOCLAW_FRESH=1, but the updated installer harness asserts that wording only for the non-interactive branch. Neither remaining changed error path has checked-in coverage for the actionable remediation text.
  • Impact: A later edit can silently restore the unusable --fresh-only advice for piped or unavailable-TTY installs while the current regression test remains green.
  • Recommendation: Add focused installer-harness cases that force the no-TTY and TTY-read-failure branches and assert NEMOCLAW_FRESH=1 appears, the installer fails, and onboard is not invoked.
  • Verification: Read test/install-preflight.test.ts around the failed-session tests: its only NEMOCLAW_FRESH=1 assertion is in the non-interactive case, while scripts/install.sh:2412 and :2419 contain the other changed branches.
  • Test coverage: Two installer-harness regressions: one with a failed session and no readable TTY, and one where reading the selected TTY fails; each should assert nonzero status, NEMOCLAW_FRESH=1 in output, and no onboard log.
  • Evidence: scripts/install.sh:2412 changes the no-readable-TTY error to NEMOCLAW_FRESH=1. scripts/install.sh:2419 changes the TTY-read-failure error to NEMOCLAW_FRESH=1. test/install-preflight.test.ts:966 is the only checked-in assertion for NEMOCLAW_FRESH=1 and belongs to the non-interactive failed-session test.

Workflow run details

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

@prekshivyas prekshivyas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the installer remediation and surrounding failed-session paths. The change matches the documented curl-pipe recovery flow, the exact head is mergeable with all required checks and E2E green, and the full installer integration suite passes locally (94/94).

@cv
cv merged commit 46c9b3a into main Jul 15, 2026
84 of 85 checks passed
@cv
cv deleted the fix/6912-onboard-fresh-env-remediation branch July 15, 2026 16:02
cv pushed a commit that referenced this pull request Jul 15, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Failed onboarding-session exits currently name `NEMOCLAW_FRESH=1`
without giving non-technical users a complete installer command. As a
follow-up to #6916, this change prints a copy-pasteable `curl ...
--fresh` command and the full agent-specific resume command while
preserving the active supported agent.

## Changes

- Show the complete fresh-install and resume commands in all three
failed-session error exits.
- Keep the default OpenClaw command concise and preserve Hermes or Deep
Agents through fixed, whitelisted `NEMOCLAW_AGENT` selectors.
- Cover non-interactive, unreadable-terminal, prompt-read-failure,
Hermes, and Deep Agents recovery output.
- Update the troubleshooting page so each generated agent variant shows
its exact fresh and resume commands.

## Type of Change

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

## Quality Gates

<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: pending maintainer
re-review after addressing the requested agent-variant coverage and
fixed-selector handling.
- [ ] 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 that behavior. Do
not rerun hook-covered checks. -->
- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: `npx
vitest run --project integration test/install-onboard-yes.test.ts` — 13
passed; `npx vitest run --project installer-integration
test/install-preflight.test.ts -t "refuses to auto-resume a failed
onboarding session"` — 1 passed, 93 skipped; `npm run test-size:check`,
`shellcheck scripts/install.sh`, `bash -n scripts/install.sh`, and `npx
biome check test/install-onboard-yes.test.ts` passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not applicable; focused
installer recovery output, tests, and matching troubleshooting guidance.
- [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) — 0
errors and 2 existing warnings; `npm run docs:sync-agent-variants`
passed.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

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


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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved installer recovery messaging for a failed previous onboarding
session, including cases with no readable terminal or failed input
capture.
* Recovery instructions now consistently provide agent-aware “start
over” (`--fresh`) and “retry/resume” (`onboard --resume`) commands.
* **Documentation**
* Updated troubleshooting guidance for “Previous onboarding session
failed” with agent-specific fresh reinstall examples.
* **Tests**
* Strengthened preflight and installer tests to verify the exact fresh
one-liner, resume guidance, and correct agent context across failure
scenarios.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: San Dang <sdang@nvidia.com>
cv pushed a commit that referenced this pull request Jul 16, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Adds the canonical `docs/changelog/2026-07-15.mdx` entry with the exact
`## v0.0.84` heading for the release candidate range from `v0.0.83`
through `710d2b36b9eebcb6bca3c2b2f796a1bdb69c3a31`.
Fills two owner-page gaps for model-aware local inference health and
pre-write OpenClaw candidate validation.

## Changes

- Add the complete shared Fern changelog entry for `v0.0.84`, with
literal CLI names and root-absolute OpenClaw and Hermes routes.
- Document that sandbox status and doctor compare the configured Ollama
or vLLM model with provider inventory without issuing a completion.
- Document that host-side OpenClaw `config set` validates the complete
candidate before replacing live config or reaching gateway restart.
- Reconcile the `v0.0.84` release label with the commit range. PR #6773
is already contained in `v0.0.83` and remains documented there; CI,
test-harness, docs-infrastructure, and `.js` to `.mts` migration-only
changes require no additional user guidance.

### Source summary

- [#6882](#6882) ->
`docs/manage-sandboxes/backup-restore.mdx`,
`docs/changelog/2026-07-15.mdx`: Explain that OpenClaw runtime identity
and pairing state are excluded from snapshots and ignored during
restore.
- [#6873](#6873) ->
`docs/inference/set-up-ollama.mdx`, `docs/changelog/2026-07-15.mdx`:
Record the Ollama requested-model environment fallback and interactive
default.
- [#6835](#6835) ->
`docs/changelog/2026-07-15.mdx`: Include the sandbox name in the
documented rebuild resume-recovery behavior.
- [#6886](#6886) ->
`docs/inference/custom-endpoint-security.mdx`,
`docs/inference/set-up-openai-compatible-endpoint.mdx`,
`docs/changelog/2026-07-15.mdx`: Explain the exact-host trusted-private
endpoint opt-in and retained SSRF boundaries.
- [#6887](#6887) ->
`docs/reference/commands.mdx`, `docs/changelog/2026-07-15.mdx`: Document
Telegram channel health verdicts, summary behavior, and exit status.
- [#6863](#6863) ->
`docs/manage-sandboxes/lifecycle.mdx`, `docs/changelog/2026-07-15.mdx`:
Add the missing model-inventory behavior for local status and doctor
checks.
- [#6902](#6902) ->
`docs/manage-sandboxes/runtime-controls.mdx`,
`docs/changelog/2026-07-15.mdx`: Add the missing pre-write OpenClaw
candidate-validation contract.
- [#6916](#6916) ->
`docs/changelog/2026-07-15.mdx`: Preserve the failed-session
fresh-install recovery correction in the release entry.
- [#6934](#6934) ->
`docs/reference/commands.mdx`, `docs/reference/troubleshooting.mdx`,
`docs/security/credential-storage.mdx`, `docs/changelog/2026-07-15.mdx`:
Summarize completed-prompt checkpointing and validated credential reuse
during OpenClaw resume.
- [#6898](#6898) ->
`docs/inference/switch-models.mdx`,
`docs/inference/switch-providers.mdx`,
`docs/reference/troubleshooting.mdx`, `docs/changelog/2026-07-15.mdx`:
Explain Hermes dashboard convergence after in-place inference changes.
- [#6711](#6711) ->
`docs/manage-sandboxes/run-sandboxes.mdx`,
`docs/manage-sandboxes/uninstall-nemoclaw.mdx`,
`docs/reference/architecture.mdx`, `docs/reference/commands.mdx`,
`docs/changelog/2026-07-15.mdx`: Summarize port-scoped host state and
uninstall preservation.
- [#6767](#6767) ->
`docs/inference/configure-model-limits.mdx`,
`docs/inference/set-up-ollama.mdx`,
`docs/reference/troubleshooting.mdx`, `docs/changelog/2026-07-15.mdx`:
Record the Hermes `64000`-token Ollama floor and unchanged OpenClaw
floor.
- [#6862](#6862) ->
`docs/get-started/quickstart.mdx`,
`docs/inference/verify-inference-route.mdx`,
`docs/changelog/2026-07-15.mdx`: Explain retryable not-ready
finalization for unhealthy inference routes.
- [#6766](#6766) ->
`docs/security/tcb-boundary.mdx`, `docs/changelog/2026-07-15.mdx`:
Document definitive stale transition-lock recovery and fail-closed
ambiguous cases.
- [#6948](#6948) ->
`docs/manage-sandboxes/manage-mcp-servers.mdx`,
`docs/changelog/2026-07-15.mdx`: Include Hermes MCP apply-state race
recovery in the release entry without changing the established user
workflow.
- [#6964](#6964) ->
`docs/reference/troubleshooting.mdx`, `docs/changelog/2026-07-15.mdx`:
Record complete agent-specific fresh-install and resume recovery
commands.
- [#6883](#6883) ->
`docs/get-started/quickstart.mdx`, `docs/inference/set-up-vllm.mdx`,
`docs/reference/platform-support.mdx`, `docs/changelog/2026-07-15.mdx`:
Summarize the DGX Station Nemotron Ultra express path and pinned
managed-vLLM recipe.
- [#6985](#6985) ->
`docs/inference/set-up-vllm.mdx`, `docs/reference/commands.mdx`,
`docs/changelog/2026-07-15.mdx`: Capture the final automated and
interactive storage-warning behavior.

## 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 —
`test/changelog-docs.test.ts` validates the dated-entry structure, exact
version heading, and preserved history.
- [ ] 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:

## 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` (6 passed)
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — not run for this doc-only change.
- [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; Fern reported the unchanged unauthenticated
redirect-check and light-theme contrast 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)
— the native changelog entry uses the required parser-safe MDX SPDX
comment and intentionally has no frontmatter.

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


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

## Summary by CodeRabbit

* **Documentation**
* Added the v0.0.84 changelog entry covering setup, endpoint onboarding,
model handling, sandbox readiness, recovery, channel status, and
configuration safeguards.
* Clarified that sandbox health checks validate configured models
against local Ollama and vLLM provider inventories without generating
completions or consuming tokens.
* Documented that invalid runtime configuration changes are rejected
while preserving the existing working configuration.

<!-- 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: install Install, setup, prerequisites, or uninstall flow bug-fix PR fixes a bug or regression NV QA Bugs found by the NVIDIA QA Team v0.0.84 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[All Platforms][Install] curl|bash failed-session error names un-pipeable --fresh instead of NEMOCLAW_FRESH=1

3 participants