Skip to content

fix(install): honor --yes-i-accept-third-party-software in non-TTY mode#2692

Merged
ericksoa merged 6 commits into
NVIDIA:mainfrom
latenighthackathon:fix/install-yes-i-accept-flag
May 2, 2026
Merged

fix(install): honor --yes-i-accept-third-party-software in non-TTY mode#2692
ericksoa merged 6 commits into
NVIDIA:mainfrom
latenighthackathon:fix/install-yes-i-accept-flag

Conversation

@latenighthackathon

@latenighthackathon latenighthackathon commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Summary

bash install.sh --help lists --yes-i-accept-third-party-software as a top-level flag for skipping the third-party-software notice, but in curl | bash mode (no TTY) the flag is silently ignored unless --non-interactive (or NEMOCLAW_NON_INTERACTIVE=1) is also passed — the install still tries to read /dev/tty and fails with [ERROR] Interactive third-party software acceptance requires a TTY. The error message points at the workaround, but a flag whose name is "yes-i-accept" should clear the notice on its own. The current behavior is the worst-of-both: the parser accepts the flag, the installer rejects the install. Fixes #2670.

Problem

scripts/install.sh::show_usage_notice only honored ACCEPT_THIRD_PARTY_SOFTWARE=1 inside the [ "${NON_INTERACTIVE:-}" = "1" ] branch. In curl|bash mode (-t 0 false, /dev/tty not openable, NON_INTERACTIVE unset), control fell through past every interactive branch to the friendly error message — even though the user had explicitly accepted the licence on the command line. Help text in install.sh and scripts/install.sh further misled users by claiming the flag worked "in non-interactive mode".

The run_onboard step has the same flag-name on a separate gate, but onboard genuinely needs a TTY or --non-interactive to drive the wizard, and its error message already names both flags. That gate is unchanged here — this PR scopes itself to the licence-acceptance step the flag is named for.

Fix

Relax the gate in show_usage_notice so ACCEPT_THIRD_PARTY_SOFTWARE=1 alone routes through the same notice-helper invocation that NON_INTERACTIVE=1 + ACCEPT_THIRD_PARTY_SOFTWARE=1 already used. The notice helper itself was already designed to accept that combo; only the installer's gate was wrong. Help text updated from "in non-interactive mode" to "without prompting (works in any mode)" so the contract matches the runtime behavior.

Test plan

  • npx vitest run --project installer-integration -t "installer license acceptance" — 3 new sourced tests (8.7s):
    • #2670: ACCEPT_THIRD_PARTY_SOFTWARE=1 alone clears the notice in non-TTY mode — stubs usage-notice.js to record argv, sources scripts/install.sh, runs show_usage_notice </dev/null with only ACCEPT_THIRD_PARTY_SOFTWARE=1 set; asserts exit 0 and that both --non-interactive and --yes-i-accept-third-party-software flow through.
    • NON_INTERACTIVE=1 alone keeps the notice prompt-driven (regression) — same harness with only NON_INTERACTIVE=1; asserts existing behavior (helper gets --non-interactive but not the licence flag) is preserved.
    • errors with the friendly hint when neither flag is set in non-TTY mode — neither flag set; asserts non-zero exit and the original "requires a TTY" + flag-name hint still surface.
  • Full installer-integration suite: 70/70 pass (72.9s) — no regressions in the adjacent license/path-resolution tests.
  • npm run typecheck clean.

Signed-off-by: latenighthackathon latenighthackathon@users.noreply.github.com

Summary by CodeRabbit

  • Bug Fixes

    • Installer now treats the third‑party acceptance flag/env as effective in any mode, clearing the usage notice without prompting; CLI help and failure guidance updated to reference the acceptance flag/env.
  • Tests

    • Added preflight tests covering TTY vs non‑TTY installer flows and combinations of acceptance and non‑interactive flags.

@copy-pr-bot

copy-pr-bot Bot commented Apr 29, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

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: c546d76f-d848-4043-921b-5ed861f223e2

📥 Commits

Reviewing files that changed from the base of the PR and between df389bb and 3beb1cf.

📒 Files selected for processing (2)
  • install.sh
  • scripts/install.sh
✅ Files skipped from review due to trivial changes (1)
  • install.sh
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/install.sh

📝 Walkthrough

Walkthrough

Installer now honors --yes-i-accept-third-party-software / NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 in non‑TTY and TTY contexts by forwarding acceptance as --non-interactive to the usage-notice step, updates non‑TTY failure messaging, guards /dev/tty attach to suppress raw errors, and adds sourced non‑TTY tests for three acceptance scenarios.

Changes

Installer acceptance change

Layer / File(s) Summary
Help text
install.sh, scripts/install.sh
Updated CLI/help text for --yes-i-accept-third-party-software to state it accepts the third-party notice without prompting in any mode.
Control flow / Data Shape
scripts/install.sh
show_usage_notice() treats NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 / --yes-i-accept-third-party-software as equivalent to non-interactive acceptance, and will invoke the usage-notice command with --non-interactive (and include the acceptance flag where appropriate).
TTY handling / Wiring
scripts/install.sh
Piped-stdin /dev/tty attach branches (in show_usage_notice() and run_onboard()) use a guarded exec 3</dev/tty form with stderr suppressed to avoid leaking raw /dev/tty errors when no TTY is present.
Failure messaging
scripts/install.sh
Non-TTY rejection message updated to instruct rerunning with --yes-i-accept-third-party-software / NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 (rather than requiring NEMOCLAW_NON_INTERACTIVE=1).
Tests
test/install-preflight.test.ts, package.json
Added installer license acceptance (sourced) tests that source scripts/install.sh in a controlled non‑TTY context (via setsid), stub node to capture argv, and assert behavior for: (1) accept-flag-only (forwards both flags, no TTY error), (2) non-interactive-only (forwards --non-interactive only), and (3) neither flag set (exits non-zero and prints friendly TTY hint without /dev/tty noise).

Sequence Diagram(s)

sequenceDiagram
    participant Runner as Runner / CI
    participant Install as install.sh
    participant Usage as usage-notice.js
    participant TTY as TTY / Env

    Runner->>Install: invoke script with flags/env
    Install->>TTY: detect TTY presence
    alt ACCEPT flag set (env/flag)
        Install->>Usage: exec node usage-notice.js --non-interactive --yes-i-accept-third-party-software
        Usage-->>Install: write usage-notice.json (accepted)
        Install->>Runner: continue install
    else NON_INTERACTIVE set only
        Install->>Usage: exec node usage-notice.js --non-interactive
        Usage-->>Install: write usage-notice.json or prompt depending on env
        Install->>Runner: continue or exit
    else neither set & no TTY
        Install->>Runner: emit error: interactive acceptance requires a TTY (hint: use --yes-i-accept-third-party-software or --non-interactive)
        Install-->>Runner: exit non-zero
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 I hopped through scripts and flags tonight,

No TTY noise, acceptance now is light.
Flags forward clean beneath the moon's soft glow,
Tests stand guard where non‑TTY winds blow.
Carrots for installs that now just go ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main fix: enabling --yes-i-accept-third-party-software to work independently in non-TTY mode, which is the core issue addressed.
Linked Issues check ✅ Passed The PR fully addresses issue #2670 by making --yes-i-accept-third-party-software work alone in non-TTY mode and suppressing raw /dev/tty errors, matching the reported requirements.
Out of Scope Changes check ✅ Passed All changes are scoped to fixing the flag behavior in non-TTY installs: help text clarification, installer logic changes, and targeted tests—no unrelated modifications present.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

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

@jyaunches jyaunches self-requested a review April 29, 2026 20:40
@wscurran wscurran added bug Something fails against expected or documented behavior NemoClaw CLI labels Apr 30, 2026
@wscurran

Copy link
Copy Markdown
Contributor

✨ Thanks for submitting this PR that fixes a bug where the --yes-i-accept-third-party-software flag is ignored in non-TTY mode.


Related open issues:

@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: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/install-preflight.test.ts`:
- Around line 2571-2577: The test currently only asserts the friendly hint but
doesn't assert that any /dev/tty leakage is suppressed; update the test that
calls callShowUsageNotice({}) (the "errors with the friendly hint when neither
flag is set in non-TTY mode" case) to also assert the combined output variable
(output) does NOT contain /dev/tty or the specific shell noise (e.g., "exec
3</dev/tty"); add an expectation like expect(output).not.toMatch(/\/dev\/tty/)
or a negative match for the exact "exec 3</dev/tty" string to ensure the
regression is covered.
- Around line 2498-2544: callShowUsageNotice() currently composes the child
process environment in a way that lets ambient runner vars (e.g.
NON_INTERACTIVE, ACCEPT_THIRD_PARTY_SOFTWARE) alter test behavior; to fix it,
build a clean env object for the spawnSync call (instead of merging global
process.env) and explicitly remove or unset NON_INTERACTIVE and
ACCEPT_THIRD_PARTY_SOFTWARE before passing it to spawnSync (refer to
callShowUsageNotice, the env object passed to spawnSync and
NEMOCLAW_SOURCE_ROOT/TEST_SYSTEM_PATH/PATH symbols so you can locate where to
modify the environment).
🪄 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: 23e827c4-c589-4d83-ac23-13860993282d

📥 Commits

Reviewing files that changed from the base of the PR and between 2ee02c1 and 23ba11f.

📒 Files selected for processing (3)
  • install.sh
  • scripts/install.sh
  • test/install-preflight.test.ts
✅ Files skipped from review due to trivial changes (2)
  • install.sh
  • scripts/install.sh

Comment thread test/install-preflight.test.ts
Comment thread test/install-preflight.test.ts
`bash install.sh --help` lists `--yes-i-accept-third-party-software` as a
top-level flag for skipping the third-party-software notice, but in
curl|bash mode (no TTY) the flag was silently ignored unless
`--non-interactive` (or `NEMOCLAW_NON_INTERACTIVE=1`) was also passed —
the install would still try to read `/dev/tty` and fail with
"Interactive third-party software acceptance requires a TTY".

The error message did point users at the workaround, but a flag whose
name is "yes-i-accept" should clear the notice on its own. Hidden
gating on a separate flag is exactly the worst-of-both: the parser
accepts the flag, the installer rejects the install.

`scripts/install.sh::show_usage_notice` now treats
`ACCEPT_THIRD_PARTY_SOFTWARE=1` as sufficient to run the notice helper
non-interactively, regardless of `NON_INTERACTIVE` — same envelope the
notice helper already accepted when both flags were set, just with the
gating relaxed. Subsequent `run_onboard` still requires
`--non-interactive` for full curl|bash automation; that gate is
unchanged and its error message already names both flags.

Help text in `install.sh` and `scripts/install.sh` updated from
"in non-interactive mode" to "without prompting (works in any mode)"
so the contract matches the runtime behavior.

- `npx vitest run --project installer-integration -t "installer license acceptance"`
  — 3 new sourced tests:
    - NVIDIA#2670: ACCEPT_THIRD_PARTY_SOFTWARE=1 alone in non-TTY mode now
      clears the notice and passes both flags through to the helper
    - NON_INTERACTIVE=1 alone keeps existing prompt-driven behavior
      (the new branch must not regress the historical path)
    - neither flag in non-TTY mode still errors with the friendly hint
- Full installer-integration suite: 70/70 pass.

Fixes NVIDIA#2670.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
The "errors with the friendly hint when neither flag is set" test
failed in WSL CI: even with stdin redirected to /dev/null, the WSL
runner's child process kept a controlling pty so `(: </dev/tty)`
succeeded inside show_usage_notice and the wizard took its
/dev/tty-fallback branch instead of the `else error` path the test
means to exercise.

Wrap the bash invocation in `setsid` so the child runs in a fresh
session with no controlling terminal. /dev/tty is then deterministically
unopenable across Linux, WSL, and macOS CI environments.

- Re-ran all 3 `installer license acceptance` tests locally: pass.
- Full installer-integration suite still passes.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
When stdin is piped and /dev/tty is unopenable (e.g. headless CI shells,
setsid-wrapped invocations), bash printed the raw redirect error before
show_usage_notice and the install.sh onboard fallback could emit their
friendly hint:

    /app/scripts/install.sh: line 536: /dev/tty: No such device or address

Wrap the exec redirection in a brace group so the failed-redirect
diagnostic is scoped to /dev/null while the fd assignment still applies
to the current shell on success. Same shape applied to the onboard
fallback at line 1584.

Test changes (test/install-preflight.test.ts):

- Skip setsid on darwin. macOS does not ship util-linux setsid, so
  spawnSync silently returned status: null with stdout/stderr undefined,
  surfacing as the macos-e2e regression on this PR. Headless GitHub-hosted
  macOS runners have no controlling TTY in the first place, so plain bash
  is sufficient there.
- Assert the /dev/tty diagnostic does not leak into the friendly-hint
  output (catches the regression this commit fixes in scripts/install.sh).
- Comment that the env literal is intentionally constructed without merging
  process.env so ambient runner vars (NON_INTERACTIVE,
  ACCEPT_THIRD_PARTY_SOFTWARE) cannot leak in.

Re-ran installer license acceptance (3 tests pass) and the full
install-preflight suite (75/75).

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@latenighthackathon latenighthackathon force-pushed the fix/install-yes-i-accept-flag branch from c38299a to df389bb Compare May 2, 2026 01:46

@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 the current code and only fix it if needed.

Inline comments:
In `@scripts/install.sh`:
- Line 487: The help text for --yes-i-accept-third-party-software incorrectly
states "works in any mode" even though run_onboard() still requires
NON_INTERACTIVE=1 for noninteractive installs; update the behavior or the copy:
either have the flag set or export NON_INTERACTIVE=1 before invoking
run_onboard() when the flag is passed (ensure flag parsing in the script
propagates to the onboarding branch and to run_onboard()), or change the printed
description to limit it to clearing only the third‑party notice (remove "works
in any mode"); make the same change for the duplicated help text block around
the 1584-1591 area so both places are consistent.
🪄 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: 1660163e-5ba7-46e9-9dc6-1f0c561fb84f

📥 Commits

Reviewing files that changed from the base of the PR and between 23ba11f and df389bb.

📒 Files selected for processing (3)
  • install.sh
  • scripts/install.sh
  • test/install-preflight.test.ts
✅ Files skipped from review due to trivial changes (2)
  • install.sh
  • test/install-preflight.test.ts

Comment thread scripts/install.sh Outdated
…actual effect

CodeRabbit flagged the "(works in any mode)" parenthetical as
overpromising: the flag clears the third-party notice in any mode, but
run_onboard() still requires NON_INTERACTIVE=1 for headless onboarding.
The base description "Accept the third-party software notice without
prompting" already states what the flag does without overstating scope.

Updated both copies — install.sh:110 and scripts/install.sh:487.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@latenighthackathon

Copy link
Copy Markdown
Contributor Author

@coderabbitai — fair point, scoped the help text to its actual effect (drop (works in any mode) from both install.sh and scripts/install.sh) in c35b84a5. Cheers!

@coderabbitai

coderabbitai Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@latenighthackathon: Thanks for the quick follow-up — tightening the help text to reflect only the actual behavior is the right call. Looks good! 🎉

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

Reviewed the installer acceptance path and targeted tests. This keeps --yes-i-accept-third-party-software scoped to clearing the third-party notice without broadening full non-interactive onboarding, suppresses raw /dev/tty noise, and adds focused coverage for the non-TTY acceptance cases.\n\nLocal validation passed: npm run build:cli; npm run typecheck:cli; npx vitest run test/install-preflight.test.ts; git diff --check on the PR diff.

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

Second, more adversarial pass found a blocker against the linked issue contract.\n\nThe exact #2670 no-TTY, flag-only path still exits non-zero. This PR now lets show_usage_notice accept --yes-i-accept-third-party-software and suppresses the raw /dev/tty diagnostic, but run_onboard still only enters the automated branch when NON_INTERACTIVE=1. With only --yes-i-accept-third-party-software in a no-TTY invocation, the installer writes ~/.nemoclaw/usage-notice.json and then fails at onboarding with:\n\n[ERROR] Interactive onboarding requires a TTY. Re-run in a terminal or set NEMOCLAW_NON_INTERACTIVE=1 with --yes-i-accept-third-party-software.\n\nThat means the reproducer from #2670 still does not proceed; it just fails one gate later. Since this PR says Fixes #2670, I think it needs one of two changes before merge: either make flag-only headless installs actually proceed by having the acceptance flag imply/pass through the non-interactive onboarding path, or narrow the PR/user-facing contract so it does not claim to fix the flag-only no-TTY install case and explicitly documents that full headless installs still require --non-interactive.\n\nAdversarial local smoke results in a stubbed full installer path:\n- bash install.sh --yes-i-accept-third-party-software with no TTY: exit 1, usage-notice.json written, onboard not invoked.\n- bash install.sh --non-interactive --yes-i-accept-third-party-software in the same harness: exit 0, invoked onboard --non-interactive --yes-i-accept-third-party-software.

@ericksoa ericksoa dismissed their stale review May 2, 2026 03:21

Dismissed after maintainer discussion: the PR is a net improvement and the remaining behavior is accepted as scoped to notice acceptance.

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

Approved after follow-up review. The change is scoped to the third-party notice acceptance path, and it is a net improvement over current behavior: the acceptance flag now clears the notice without prompting, the help text no longer overclaims full non-interactive onboarding, and the no-TTY failure path avoids raw /dev/tty noise. Full headless onboarding still correctly requires --non-interactive.

@ericksoa ericksoa merged commit f6f8a93 into NVIDIA:main May 2, 2026
9 of 10 checks passed
ericksoa pushed a commit that referenced this pull request May 4, 2026
…#2706)

## Summary

`curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash` (no flags) on a
non-TTY host runs phases [1/3] Node.js + [2/3] NemoClaw CLI to
completion before failing at the third-party-software notice in phase
[3/3]. The user is left with `nemoclaw --version` working but
`~/.nemoclaw/usage-notice.json` never created — the license was never
accepted, but the binary is on PATH. A retry hits the same wall and they
have to `rm -rf ~/.nemoclaw ~/.local/bin/nemoclaw` to recover. Fixes
#2671.

## Problem

The license check in `show_usage_notice` is deterministic: when stdin
isn't a TTY, `/dev/tty` isn't openable, and neither `--non-interactive`
nor `--yes-i-accept-third-party-software` is set, it errors out. But
that check runs as part of phase [3/3], after `install_nodejs` and
`install_nemoclaw` have already done their work. We knew up front the
install couldn't finish, and we still ran two phases of disk changes
before saying so.

## Fix

Run the same precondition check at the top of `main()`, right after flag
parsing. Same error message — just emitted before phase 1 instead of
after phase 2. Skipped when `NON_INTERACTIVE=1`,
`ACCEPT_THIRD_PARTY_SOFTWARE=1` (the
[#2692](#2692) gate), stdin is a
TTY, or `/dev/tty` is openable.

Stacks cleanly with #2692 — that PR makes
`--yes-i-accept-third-party-software` work on its own; this PR makes the
no-flag case fail without leaving a half-install behind.

## Test plan

- [x] `npx vitest run --project installer-integration -t "installer
atomicity"` — 3 new sourced tests:
- `#2671: curl|bash with no flags exits 1 BEFORE phase 1` — stub `node`
/ `npm` / `docker` write to a phase log on every invocation; assert the
log is empty after the run, and that no `[1/3]` or `[2/3]` step output
appeared.
- `--yes-i-accept-third-party-software alone is sufficient to clear the
fail-fast gate` — guards against the new check over-firing and
regressing #2692.
- `--non-interactive alone is sufficient to clear the fail-fast gate` —
same.
- [x] One existing test (`attempts nvm upgrade when system Node.js is
below minimum version`, line 116) needed
`NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1"` added to its env so it can
reach the Node-version path. The test isn't about licensing, but with
the new gate it can't get past `main()`'s entry without something to
satisfy it. Inline comment explains why.
- [x] Full `installer-integration` suite: 71/71 pass (66.7s).
- [x] `npm run typecheck` clean.

Signed-off-by: latenighthackathon
<latenighthackathon@users.noreply.github.com>


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

* **New Features**
* Installer performs an early preflight check and aborts quickly when
interactive license acceptance requires a TTY, preventing partial runs.

* **Bug Fixes**
* Explicit third‑party acceptance now forces non‑interactive behavior so
gating is consistent across install phases.

* **Tests**
* Added tests verifying installer behavior for TTY vs non‑TTY and for
acceptance vs non‑acceptance paths.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
Co-authored-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@latenighthackathon latenighthackathon deleted the fix/install-yes-i-accept-flag branch May 18, 2026 05:10
@wscurran wscurran added area: cli Command line interface, flags, terminal UX, or output bug-fix PR fixes a bug or regression and removed NemoClaw CLI bug Something fails against expected or documented behavior labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: cli Command line interface, flags, terminal UX, or output bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DGX Spark][Brev][Install] curl|bash install: --yes-i-accept-third-party-software flag is silently ignored without --non-interactive in non-TTY mode

3 participants