Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b21459e
fix: surface Ollama recovery failures
prekshivyas Sep 2, 2026
433c1b2
test: keep Windows readiness coverage behavioral
prekshivyas Sep 2, 2026
cff68c1
fix: harden Ollama recovery diagnostics
prekshivyas Sep 2, 2026
d119c19
fix: preserve Ollama recovery display semantics
prekshivyas Sep 2, 2026
d2fe951
fix: make Ollama recovery actionable
prekshivyas Sep 2, 2026
e8a9d98
test: validate Ollama readiness URL semantics
prekshivyas Sep 2, 2026
31460b7
fix: constrain Ollama recovery safety
prekshivyas Sep 2, 2026
6de489f
fix: share Ollama recovery deadline
prekshivyas Sep 2, 2026
fb700e2
Merge remote-tracking branch 'origin/main' into pr-10855-probe-bounds
prekshivyas Sep 2, 2026
d065f67
fix(agent): bound Ollama recovery probes
prekshivyas Sep 2, 2026
d071aaf
fix(agent): finish Ollama recovery follow-up
prekshivyas Sep 2, 2026
136ca06
fix: reject invalid Ollama status shapes
prekshivyas Sep 2, 2026
6767b5f
fix: preserve Ollama recovery diagnostics
prekshivyas Sep 2, 2026
eace473
fix(agent): make Ollama recovery interruptible
prekshivyas Sep 2, 2026
8698c48
Merge remote-tracking branch 'origin/main' into pr-10855-advisor-4
prekshivyas Sep 2, 2026
0643151
fix(doctor): reject invalid Ollama inventory
prekshivyas Sep 2, 2026
24e1942
Merge remote-tracking branch 'origin/codex/fix-ollama-review-followup…
prekshivyas Sep 2, 2026
713b22b
test(inference): prove Ollama receipt retirement
prekshivyas Sep 2, 2026
55f3308
merge: sync concurrent PR updates
prekshivyas Sep 2, 2026
3def062
fix(ollama): consolidate isolated recovery probes
prekshivyas Sep 2, 2026
b7645e4
fix(inference): unify Windows Ollama probes
prekshivyas Sep 2, 2026
26d64ee
merge: reconcile concurrent Ollama probe follow-ups
prekshivyas Sep 2, 2026
ca8a31d
fix(inference): remove redundant status fallback
prekshivyas Sep 2, 2026
8168f2c
fix(ollama): restore Windows state after failed rebind
prekshivyas Sep 2, 2026
b778698
test(ollama): verify restart recovery boundaries
prekshivyas Sep 2, 2026
72685a9
test(ollama): model Windows rollback state
prekshivyas Sep 2, 2026
802e353
fix(ollama): restore Windows state on interrupt
prekshivyas Sep 2, 2026
6690fb9
refactor(ollama): name Windows launch attempts
prekshivyas Sep 2, 2026
957776b
refactor(inference): reuse validated doctor inventory
prekshivyas Sep 2, 2026
8e8f3b5
fix(inference): validate discovered Ollama inventory
prekshivyas Sep 2, 2026
ca75e6c
fix(cli): keep Ollama rollback state out of argv
prekshivyas Sep 2, 2026
bd77a21
refactor(cli): reuse Ollama transport owner
prekshivyas Sep 2, 2026
3a952ef
fix(cli): roll back failed Windows installs
prekshivyas Sep 2, 2026
805b0ac
fix(cli): roll back abandoned Windows restarts
prekshivyas Sep 2, 2026
087b940
test(cli): isolate doctor Ollama inventory
prekshivyas Sep 2, 2026
9423bb8
fix(cli): align Windows Ollama diagnostics
prekshivyas Sep 2, 2026
e4d1570
test(policy): assert missing OpenShell exit
prekshivyas Sep 2, 2026
15aa6a8
fix(cli): close Windows Ollama review gaps
prekshivyas Sep 2, 2026
3309602
fix(deps): update transitive fast-uri security patch
prekshivyas Sep 2, 2026
0611fde
merge: resolve conflicts with main
github-actions[bot] Sep 2, 2026
6681f6a
merge: sync main for CI
prekshivyas Sep 2, 2026
ad04a91
test(onboard): use exact Ollama URL assertion
prekshivyas Sep 3, 2026
156f1fc
merge: sync main for CI
prekshivyas Sep 3, 2026
e523825
fix(agent): resolve ambiguous Ollama recovery host
prekshivyas Sep 3, 2026
aec4513
merge(main): resolve conflicts for #10855
prekshivyas Sep 3, 2026
d3286d2
fix(ollama): make recovery rollback transactional
prekshivyas Sep 3, 2026
a6e5be4
test(ollama): cover guarded provider host probe
prekshivyas Sep 3, 2026
4b83043
fix(ollama): terminate pre-sentinel installer
prekshivyas Sep 3, 2026
cb67f74
merge: update Ollama recovery from main
prekshivyas Sep 5, 2026
561e44f
test(inference): align protected Windows route fixtures
prekshivyas Sep 5, 2026
680d3a7
test(inference): run doctor fixture across test modes
prekshivyas Sep 5, 2026
e55ea2e
Merge remote-tracking branch 'origin/main' into codex/fix-ollama-revi…
prekshivyas Sep 5, 2026
6494b03
Merge remote-tracking branch 'origin/main' into codex/fix-ollama-revi…
prekshivyas Sep 5, 2026
c948b80
fix(inference): bound Windows Ollama cancellation
prekshivyas Sep 5, 2026
35751ed
fix(agent): force timed-out Ollama recovery exit
prekshivyas Sep 5, 2026
bdf3bdd
merge: refresh from upstream main
prekshivyas Sep 6, 2026
e93da29
fix(onboard): bound Windows installer PID prefix
prekshivyas Sep 6, 2026
6ac0a77
test(onboard): remove duplicate Windows boundary suite
prekshivyas Sep 7, 2026
a89c99a
docs(inference): document Windows installer recovery
prekshivyas Sep 6, 2026
08047c6
merge: refresh from upstream main
prekshivyas Sep 8, 2026
90eb9a7
fix(inference): address Ollama review findings
prekshivyas Sep 8, 2026
169620a
test(inference): compose Windows warmup guards
prekshivyas Sep 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions docs/inference/set-up-ollama.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,20 @@ It pulls missing models through the Ollama HTTP API without requiring an Ollama
NemoClaw rejects a reachable Windows daemon when it accepts the untrusted `Host` probe.
</Warning>

### Recover After Unconfirmed Installer Cancellation

If NemoClaw cannot confirm that the Windows installer stopped, it does not restore the previous Windows Ollama state because the installer might still change it.
Complete these steps before you rerun onboarding:

1. In Windows PowerShell, stop the installer and every Ollama process.
2. Restore the previous User-scope `OLLAMA_HOST` value.
If the value was previously unset, remove it from User scope.
3. From WSL, rerun onboarding:

```bash
$$nemoclaw onboard
```

If the endpoint is not reachable, NemoClaw also checks the Windows `ollama.exe` process through PowerShell interop.
When the daemon does not become reachable, onboarding prints PowerShell commands for inspecting the Windows process and port state.
Choose the WSL-local Ollama install when Docker Desktop cannot reach the protected Windows loopback route.
Expand Down
4 changes: 3 additions & 1 deletion docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -1146,7 +1146,9 @@ $$nemoclaw dcode-sandbox agent -n "Summarize this repository"
$$nemoclaw dcode-sandbox agent -n "Summarize this repository" --json
```

For non-JSON OpenClaw turns, the wrapper captures `stdout` and `stderr` and replays them only after the in-sandbox command exits. The combined capture limit is `64 MiB`; exceeding it reports an OpenShell invocation error and exits with status `1`. If the captured output contains an embedded-fallback marker, the wrapper suppresses both streams, prints `recover`, `rebuild --yes`, and `onboard --resume` guidance to `stderr`, and exits with status `1`. Otherwise, it writes the captured output to the corresponding host streams and returns the OpenShell command's exit status. The in-sandbox NemoClaw plugin writes its registration banner to `stderr`, so the banner does not prefix the agent reply on `stdout` in non-JSON mode. Because a delivered turn always writes to one of the two streams, the wrapper reports a dispatch with status `0` and no output as a failure. The wrapper prints recovery guidance to `stderr` and exits with status `1`. Pressing `Ctrl+C` interrupts the OpenShell child, and sending `SIGTERM` to the host wrapper forwards `SIGTERM` to that child. NemoClaw waits for OpenShell to stop the in-sandbox turn, replays captured output, and returns status `130` for `SIGINT` or `143` for `SIGTERM`. When the forwarded argv sets `openclaw agent --timeout <seconds>`, both captured paths bound the OpenShell command at that value plus 30 seconds. The extra seconds let the in-sandbox turn report its own timeout first, so the host bound catches only a turn that stops answering.
For non-JSON OpenClaw turns, the wrapper captures `stdout` and `stderr` and replays them only after the in-sandbox command exits. The combined capture limit is `64 MiB`; exceeding it reports an OpenShell invocation error and exits with status `1`. If the captured output contains an embedded-fallback marker, the wrapper suppresses both streams, prints `recover`, `rebuild --yes`, and `onboard --resume` guidance to `stderr`, and exits with status `1`. Otherwise, it writes the captured output to the corresponding host streams and returns the OpenShell command's exit status. The in-sandbox NemoClaw plugin writes its registration banner to `stderr`, so the banner does not prefix the agent reply on `stdout` in non-JSON mode. Because a delivered turn always writes to one of the two streams, the wrapper reports a dispatch with status `0` and no output as a failure. The wrapper prints recovery guidance to `stderr` and exits with status `1`. Pressing `Ctrl+C` interrupts the OpenShell child, and sending `SIGTERM` to the host wrapper forwards `SIGTERM` to that child. NemoClaw waits for OpenShell to stop the in-sandbox turn, replays captured output, and returns status `130` for `SIGINT` or `143` for `SIGTERM`.

When the forwarded argv sets a positive whole-number `openclaw agent --timeout <seconds>`, NemoClaw starts that deadline before its best-effort Ollama recovery. Recovery can use only the remaining time minus a reserved one second for the turn. Before dispatch, NemoClaw rewrites the forwarded timeout to the remaining time rounded up to a whole second, with a one-second minimum. Both captured paths then bound the OpenShell command at that forwarded remainder plus 30 seconds. The extra seconds let the in-sandbox turn report its own timeout first, so the host bound catches only a turn that stops answering.

These leave the OpenShell wait unbounded:

Expand Down
Loading
Loading