Repository navigation
fix(setup): download Nemotron Bolt from public model repositories - #1749
RyanUnderhill wants to merge 1 commit into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. What this changesUpdate Nemotron Bolt target and drafter pins to public NVIDIA repositories and adjust the drafter checksum and size. Example: Fresh setup downloads the 22,018,326,528-byte Bolt target.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 3 items remain This PR addresses a confirmed acquisition failure still present on main, but changing the existing recipe in place also prevents verified prerelease Bolt installations from launching. Priority: P1 Before merge
Findings
Tests
Agent review detailsHow this fits togetherThe model catalog supplies immutable download and verification inputs to setup and supplies expected artifact identities to installed-receipt validation before llama-server launches. flowchart LR
Catalog[Model catalog] --> Setup[Setup acquisition]
Setup --> Download[Verified downloader]
Download --> Receipt[Installation receipt]
Catalog --> Validation[Receipt validation]
Receipt --> Validation
Validation --> Runtime[Managed llama server]
Technical reviewBest possible solution: Use the public pins for fresh installs while preserving verified prerelease installations and providing an in-product upgrade path. Do we have a high-confidence way to reproduce the issue? The original acquisition failure is independently documented in the merged feature discussion; source tracing also establishes that an old valid Bolt receipt fails launch and reconciliation after these pin changes. Is this the best way to solve the issue? Updating immutable public locations is the right acquisition repair, but replacing the installed recipe in place requires compatibility handling rather than an uninstall requirement. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against f9ce47d2cf3e. Provenance checked
TestingProof path: unit tests only. SecurityNone. EvidenceAcceptance criteria:
What I checked:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 16, 2026, 4:06 PM ET / 20:06 UTC. |
What Problem This Solves
Fresh Nemotron Bolt setup fails with HTTP 401 because the catalog still points to prerelease Hugging Face repositories. Both original payload URLs reject anonymous requests. The published target and LiLiCorr drafter are available under the
nvidiaorganization with different repository names, filenames, and revision pins.Related: #1718.
User Impact
Bolt setup requests the publicly accessible payloads without an HF token. This fixes the catalog inputs to acquisition; a complete cold installation and inference run on qualified hardware remain unverified.
Why This Change Was Made
Update both immutable artifact locations and the existing independent catalog expectations. The target model retains its original byte length and SHA-256. The published drafter is 384 bytes larger and has a different SHA-256, so update both verification fields and the expected total download size to 23,016,569,088 bytes. Runtime, sampling, and context settings are unchanged.
Evidence
The published model card identifies the 24GB model as IQ2, with IQ2-XXS expert weights. The 24GB name describes its memory target. Its published target-file SHA-256 and length exactly match the prior IQ2 catalog pin; the separate drafter does not have the old hash.
Anonymous HEAD requests to both exact new catalog URLs, including
?download=trueand redirects, returned HTTP 200. Their response lengths and Hugging Face LFS metadata at the pinned revisions match the source pins. Both repositories reportprivate=falseandgated=false.91d63363e782c8a3d5f4be42816eba8e0d42dd2530bd07a7d0d2dc440599af75080e1ea41c9562a7804dbf30c6fbd4d17e216c6b8ff666f88e6edb1816010194These hashes were checked against published metadata, not computed from fully downloaded payloads.
Change Type
Scope
Required proof pools
windows-11-arm64: verify the newly published drafter with the pinned Bolt runtime on qualified ARM64 RTX Spark hardware.windows-wsl-dgx-blackwell: verify fresh model acquisition and inference on qualified hardware if using the WSL path. Not executed here.Validation
./build.ps1: passed Shared, CLI, WinNode CLI, SetupEngine, and WinUI; documentation validation passed 63 Markdown files.dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --filter FullyQualifiedName~Bolt_PinsIndependentlyVerifiedTargetAndDrafter: before production fix, 1 failed / 0 passed for the expected old repository mismatch.dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore --filter FullyQualifiedName~NemotronBolt: 24 passed, 0 failed, 0 skipped after fix.dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore: 4,310 passed, 3 failed, 36 existing opt-in skips. The three failures were unchangedExecReusableCommandBinderTestscases that insert an unquoted test-host path into a cmd payload; this checkout's parent directory contains spaces.Q:alias with no spaces: 3/3 passed. Re-ran the full identical Shared test binary withdotnet vstest Q:\tests\OpenClaw.Shared.Tests\bin\Debug\net10.0\OpenClaw.Shared.Tests.dll: 4,313 passed, 0 failed, 36 skips. No source, assertions, or filters were changed for the full rerun; the alias was removed afterward.dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj: 4,083 passed, 0 failed, 0 skipped. Restore included for this fresh checkout.git diff --check: passed.Real Behavior Proof
7041e653f8eb88b2e6126a93e59954ef66353a9dhttps://huggingface.co/api/models/{repository}/revision/{revision}?blobs=true; compare filename, byte length, and LFS SHA-256; send anonymous HEAD requests tohttps://huggingface.co/{repository}/resolve/{revision}/{filename}?download=true, following redirects.Security Impact
Compatibility and Migration
Review Conversations