[DGX Spark][Onboard] Fresh onboarding with Balanced tier drops the brave preset when no web search is configured
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Description
A fresh (first-time, non-reuse) onboarding with the "Balanced" policy tier and no web-search configuration produces only 5 of the 6 default policy presets Balanced is supposed to apply — `brave` is missing/unapplied. This happens on the default, most-common onboarding path (declining web search), not an edge case.
Related to #7125 (closed): that issue was about a different, narrower manifestation — the interactive onboarding wizard's web-search PROMPT not offering Brave as a selectable option, while the SUBSEQUENT policy screen still showed `brave` preselected. This finding is different: on a plain default/non-interactive fresh onboarding, `brave` is not applied at all in the final policy-list output — the opposite symptom (missing, not unexpectedly-present) — so it does not appear to be the same bug or already covered by whatever resolved #7125.
**Platform scope:** Reproduced on DGX Spark (aarch64). Not yet tested on other platforms; this looks like a general onboarding-logic issue independent of platform.
**Regression:** Unknown — earlier versions not tested for this specific scenario.
## Environment
```text
Device: DGX Spark (dgx-spark-CXMT01)
OS: Ubuntu 24.04.4 LTS
Architecture: aarch64
Node.js: v22.22.0
npm: 10.9.4
Docker: Docker version 29.2.1, build a5c7197
OpenShell CLI: openshell 0.0.106
NemoClaw: nemoclaw v0.0.114
OpenClaw: 2026.7.1
```
## Steps to Reproduce
1. Onboard a fresh sandbox with OpenClaw agent, NVIDIA Endpoints provider, and the Balanced policy tier, declining/skipping web search configuration (the default path).
2. Run: `nemoclaw {sandbox} policy-list`
3. Count the filled (applied) presets and their "[from balanced tier]" annotations.
## Expected Result
6 presets should show as applied/filled with "[from balanced tier]" annotations: `brave`, `brew`, `huggingface`, `npm`, `pypi`, plus the agent-required `openclaw-pricing` addition.
## Actual Result
Only 5 presets are filled — `brave` is shown empty/not-applied:
```text
○ brave — Brave Search API access
● brew [from balanced tier] — Homebrew (Linuxbrew) package manager access ...
● huggingface [from balanced tier] — Hugging Face Hub, LFS, and Inference API access
● npm [from balanced tier] — npm and Yarn registry access
● openclaw-pricing [from openclaw agent] — OpenClaw model-pricing reference fetch ...
● pypi [from balanced tier] — Python Package Index (PyPI) access
(all other presets shown with empty dot, no annotation)
```
## Logs
Not captured — the Actual Result block above is the complete, verbatim `policy-list` output relevant to this finding.
Contributor guide
Research direction
Start by tracing the fresh onboarding path for the Balanced policy tier and the code that produces `nemoclaw {sandbox} policy-list`, focusing on how skipped web-search configuration affects preset selection. Reproduce the reported five-preset output, then verify that a fresh default onboarding applies all six expected presets, including `brave`, with the Balanced annotations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 66/100