* fix(ollama): resolve web search secret refs
* fix(ollama): preserve blocked search secret refs
* fix(ollama): share web search credential policy
* fix(ollama): resolve web search secret refs via shared resolver
Route configured models.providers.ollama.apiKey resolution through the
existing shared resolveWebSearchProviderCredential helper so env-backed
SecretRefs resolve for web search, and resolve the ambient OLLAMA_API_KEY
independently of the configured selected-host key so mixed setups still
reach the Ollama Cloud fallback after both selected-host attempts fail
(regression fixed at web-search-provider.ts:195).
Drop the two optional plugin-SDK resolver hooks (provider normalization
and unavailable-configured-ref callback) added earlier: the fix does not
depend on them, so the shared resolver and its generated plugin-SDK
baseline stay identical to main and no new plugin-SDK contract surface is
introduced. Ollama applies its own non-secret-marker filter locally on
the resolver output instead.
Add a mixed-credential regression test (configured host key plus a
distinct ambient OLLAMA_API_KEY reaching the cloud fallback) and drop the
tests for the removed fail-closed-throw behavior.
* fix(ollama): fail closed on unavailable web search refs
* fix(web-search): resolve env shorthand secret refs
* docs(changelog): note Ollama web-search SecretRef fix
* chore(changelog): remove release-owned entry
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
* fix(ollama): do not advertise tools when /api/show fails
Failed show responses left capabilities undefined, which
buildOllamaModelDefinition treats as optimistic supportsTools.
Match setup inspect: return empty capabilities instead.
* test(ollama): cover show-fail tools gate including L3 live HTTP
Unit paths for HTTP error/throw plus real 127.0.0.1 server proving
buildOllamaProvider keeps supportsTools false when /api/show 500s.
* fix(ollama): keep reasoning heuristics when /api/show fails
Distinguish failed inspection from authoritative empty capabilities
so tools stay conservative without suppressing model-name reasoning.
* test(ollama): cover three capability states for tools and reasoning
Failed show keeps reasoning heuristics; authoritative [] disables both.
* fix(ollama): propagate showInspectionFailed through setup configs
Setup inspection failures now use the three-state marker instead of
authoritative empty capabilities, keeping tools off and reasoning heuristics.
* test(ollama): setup show-fail keeps tools off and reasoning heuristics
Cover interactive setup when /api/show returns 500 for deepseek-r1.
* fix(ollama): propagate showInspectionFailed through dynamic model resolve
/models add dynamic path now builds failed-show definitions with tools
off while preserving reasoning name heuristics.
* test(ollama): dynamic resolve covers failed /api/show three-state behavior
Mock builder matches production tools/reasoning contract for inspection failure.
* fix(ollama): keep catalog-missing dynamic resolve fail-closed on show failure
Failed /api/show is an existence probe for unresolved models; return undefined so typos/404s stay rejected. Tag-discovered and setup paths keep showInspectionFailed tools-off behavior.
* chore(changelog): remove release-owned entry
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Retain the existing guarded-fetch timeout callback while consuming native Ollama NDJSON. Prove active slow HTTP streams remain alive and genuine stalls still expire.
Reconstructed from the independently reviewed contributor fix for #94251.
Co-authored-by: Henry <henrybrewer93@icloud.com>
* feat(plugins): catch code-mode drift between catalogs sharing one model
Adds a contract test that groups bundled catalog rows by shared upstream
model and requires every row in a group to declare compat.codeMode once any
sibling does. Rows sharing a model id group automatically; rows under
different ids opt in with the new manifest-only `upstreamModel` marker.
Moves the kimi catalog into its manifest so the scan can see it, and records
the tier reseller catalogs were silently missing as explicit "capable".
* docs: regenerate docs map for the shared-model code-mode section