fix(models): mark local Ollama rows available#97491
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 28, 2026, 1:50 PM ET / 17:50 UTC. Summary PR surface: Source +1376, Tests +2117, Docs +17, Generated 0, Other 0. Total +3510 across 50 files. Reproducibility: yes. at source level: current main can render a loopback Ollama row as local while leaving Review metrics: 2 noteworthy metrics.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Rebase onto current main, keep the focused model-row fix and regression/live Ollama proof, and have a maintainer explicitly accept the local-marker availability semantics before merge. Do we have a high-confidence way to reproduce the issue? Yes at source level: current main can render a loopback Ollama row as local while leaving Is this the best way to solve the issue? Yes, this is the narrowest maintainable fix if AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 2e5e5e5af905. Label changesLabel justifications:
Evidence reviewedPR surface: Source +1376, Tests +2117, Docs +17, Generated 0, Other 0. Total +3510 across 50 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review I updated the PR body with additional CLI evidence from commit
The body also keeps the remaining proof gap explicit: this Windows host does not currently have a real Ollama daemon, |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review I updated the PR body with real Ollama daemon proof for commit New evidence added:
Remaining gap is only that I did not install native Windows Ollama or use the user's normal model store; this is a real Dockerized Ollama daemon with a pulled local model, not the earlier loopback-compatible mock proof. |
|
Merged via squash.
|
* fix(models): mark local Ollama rows available * fix(models): mark local Ollama rows available --------- Co-authored-by: Vincent Koc <[email protected]>
* fix(models): mark local Ollama rows available * fix(models): mark local Ollama rows available --------- Co-authored-by: Vincent Koc <[email protected]>
* fix(models): mark local Ollama rows available * fix(models): mark local Ollama rows available --------- Co-authored-by: Vincent Koc <[email protected]>
* fix(models): mark local Ollama rows available * fix(models): mark local Ollama rows available --------- Co-authored-by: Vincent Koc <[email protected]> (cherry picked from commit a10add7)
* fix(models): mark local Ollama rows available * fix(models): mark local Ollama rows available --------- Co-authored-by: Vincent Koc <[email protected]>
Closes #92224
What Problem This Solves
Fixes an issue where users running
openclaw models list --jsoncould see a reachable local Ollama model reported withlocal: truebutavailable: falsewhen registry model-level availability did not include that exact model key.Why This Change Was Made
Local model rows already classify loopback/local
baseUrlvalues, and the models CLI documents availability/auth as provider-level metadata from local-provider markers rather than a live per-model execution probe. This change treats local provider rows as available from that local marker while preserving registry model-key availability and provider-auth fallback for non-local rows.User Impact
Users with local Ollama models now get model-list output that matches the local-provider auth semantics: configured local Ollama rows no longer look unavailable solely because registry discovery omitted the exact model key.
Evidence
local: trueandavailable: trueon the patched branch.docker run -d --rm --name openclaw-ollama-proof -p 11434:11434 alpine/ollama:latest-> started a real Ollama daemon reachable athttp://127.0.0.1:11434.docker exec openclaw-ollama-proof ollama pull smollm2:135m-> pulled a local model into that daemon.curl.exe -sS http://127.0.0.1:11434/api/tags-> returnedsmollm2:135mfrom the daemon.node --import tsx src/entry.ts models list --json --provider ollamaat commitb5390f5c15, with isolatedOPENCLAW_HOME, isolatedOPENCLAW_CONFIG_PATH, andOLLAMA_API_KEY=ollama-local-> passed.node scripts/run-vitest.mjs src/commands/models/list.model-row.test.ts --reporter=verbose-> passed, 4 tests.node scripts/run-vitest.mjs src/commands/models/list.rows.test.ts --reporter=verbose-> passed, 4 tests.git diff --check-> passed.python .agents\skills\autoreview\scripts\autoreview --mode local-> clean, no accepted/actionable findings.expected false to be true, then passes after local base URL rows are included in row availability.{ "count": 1, "models": [ { "key": "ollama/smollm2:135m", "name": "smollm2:135m", "input": "text", "contextWindow": 8192, "local": true, "available": true, "tags": [], "missing": false } ] }available: trueforollama/qwen3.6:35b-a3b.