zeroclaw/docs
reidliu41 3a38c80c05 feat(config): add model_support_vision override for per-model vision control
`supports_vision` is currently hardcoded per-provider. The same Ollama instance can run `llava` (vision) or
  `codellama` (no vision), but the code fixes vision support at the provider level with no user override.

  This adds a top-level `model_support_vision: Option<bool>` config key — tri-state:
  - **Unset (default):** provider's built-in value, zero behavior change
  - **`true`:** force vision on (e.g. Ollama + llava)
  - **`false`:** force vision off

  Follows the exact same pattern as `reasoning_enabled`. Override is applied at the wrapper layer (`ReliableProvider` /
   `RouterProvider`) — no concrete provider code is touched.

  ## Changes

  **Config surface:**
  - Top-level `model_support_vision` field in `Config` struct with `#[serde(default)]`
  - Env override: `ZEROCLAW_MODEL_SUPPORT_VISION` / `MODEL_SUPPORT_VISION`

  **Provider wrappers (core logic):**
  - `ReliableProvider`: `vision_override` field + `with_vision_override()` builder + `supports_vision()` override
  - `RouterProvider`: same pattern

  **Wiring (1-line each):**
  - `ProviderRuntimeOptions` struct + factory functions
  - 5 construction sites: `loop_.rs`, `channels/mod.rs`, `gateway/mod.rs`, `tools/mod.rs`, `onboard/wizard.rs`

  **Docs (i18n parity):**
  - `config-reference.md` — Core Keys table
  - `providers-reference.md` — new "Ollama Vision Override" section
  - Vietnamese sync: `docs/i18n/vi/` + `docs/vi/` (4 files)

  ## Non-goals

  - Does not change any concrete provider implementation
  - Does not auto-detect model vision capability

  ## Test plan

  - [x] `cargo fmt --all -- --check`
  - [x] `cargo clippy --all-targets -- -D warnings` (no new errors)
  - [x] 5 new tests passing:
    - `model_support_vision_deserializes` — TOML parse + default None
    - `env_override_model_support_vision` — env var override + invalid value ignored
    - `vision_override_forces_true` — ReliableProvider override
    - `vision_override_forces_false` — ReliableProvider override
    - `vision_override_none_defers_to_provider` — passthrough behavior

  ## Risk and Rollback

  - **Risk:** Low. `None` default = zero behavior change for existing users.
  - **Rollback:** Revert commit. Field is `#[serde(default)]` so old configs without it will deserialize fine.

(cherry picked from commit a1b8dee785)
2026-02-25 10:56:31 +08:00
..
contributing docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
datasheets docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
getting-started docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
hardware docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
i18n feat(config): add model_support_vision override for per-model vision control 2026-02-25 10:56:31 +08:00
operations docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
project docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
reference docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
security docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-22 21:32:34 -05:00
structure docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
vi feat(config): add model_support_vision override for per-model vision control 2026-02-25 10:56:31 +08:00
actions-source-policy.md ci(security): add manual vorpal reviewdog workflow (#1256) 2026-02-21 09:19:12 -05:00
adding-boards-and-tools.md fix(gateway): switch default port to 42617 across runtime and docs (#1179) 2026-02-21 02:28:56 -05:00
agnostic-security.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
android-setup.md feat(release): add Android target support (armv7 + aarch64) (#1456) 2026-02-23 08:05:44 -05:00
architecture.svg refactor: simplify CLI commands and update architecture docs 2026-02-14 05:17:16 -05:00
arduino-uno-q-setup.md fix(gateway): switch default port to 42617 across runtime and docs (#1179) 2026-02-21 02:28:56 -05:00
audit-event-schema.md feat(ci): complete security audit governance and resilient CI control lanes 2026-02-24 16:25:53 +08:00
audit-logging.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
cargo-slicer-speedup.md fix(ci): run fast-build checks for workflow-only changes 2026-02-21 21:58:35 +08:00
channels-reference.md feat(matrix): add mention_only gate for group messages 2026-02-25 00:23:22 +08:00
ci-map.md feat(ci): complete security audit governance and resilient CI control lanes 2026-02-24 16:25:53 +08:00
commands-reference.md ci: add provider connectivity probes matrix and runbook 2026-02-24 14:38:08 +08:00
commands-reference.vi.md docs(i18n): introduce canonical docs/i18n/vi tree with compatibility shims 2026-02-21 12:12:26 +08:00
config-reference.md feat(config): add model_support_vision override for per-model vision control 2026-02-25 10:56:31 +08:00
config-reference.vi.md docs(i18n): introduce canonical docs/i18n/vi tree with compatibility shims 2026-02-21 12:12:26 +08:00
custom-providers.md feat: replay custom provider api mode, route max_tokens, and lark image support 2026-02-24 15:59:49 +08:00
doc-template.md feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
docker-setup.md docs: add Docker setup guide (#1690) 2026-02-24 18:40:43 -05:00
docs-audit-2026-02-24.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
docs-inventory.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
frictionless-security.md chore: Remove more blocking io calls 2026-02-19 18:04:55 +08:00
Hardware_architecture.jpg Ehu shubham shaw contribution --> Hardware support (#306) 2026-02-16 11:40:10 -05:00
hardware-peripherals-design.md Ehu shubham shaw contribution --> Hardware support (#306) 2026-02-16 11:40:10 -05:00
i18n-coverage.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
i18n-gap-backlog.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
i18n-guide.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
langgraph-integration.md docs(docs): align navigation inventory and model examples for #774 2026-02-18 22:53:21 +08:00
matrix-e2ee-guide.md fix(matrix): send markdown replies and improve e2ee diagnostics 2026-02-19 10:23:10 +08:00
mattermost-setup.md docs(mattermost): document mention_only behavior 2026-02-18 21:25:28 +08:00
network-deployment.md fix(gateway): switch default port to 42617 across runtime and docs (#1179) 2026-02-21 02:28:56 -05:00
nextcloud-talk-setup.md feat(channel): add native nextcloud talk webhook integration 2026-02-20 23:28:18 +08:00
nucleo-setup.md fix(gateway): switch default port to 42617 across runtime and docs (#1179) 2026-02-21 02:28:56 -05:00
one-click-bootstrap.md feat: add SELinux relabel and correct user namespace mapping for podman 2026-02-21 02:23:53 +08:00
one-click-bootstrap.vi.md docs(i18n): introduce canonical docs/i18n/vi tree with compatibility shims 2026-02-21 12:12:26 +08:00
operations-runbook.md feat(ci): complete security audit governance and resilient CI control lanes 2026-02-24 16:25:53 +08:00
pr-workflow.md docs(ci): document workflow owner default allowlist 2026-02-24 14:02:42 +08:00
project-triage-snapshot-2026-02-18.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
providers-reference.md feat(config): add model_support_vision override for per-model vision control 2026-02-25 10:56:31 +08:00
proxy-agent-playbook.md feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
README.el.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.fr.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.ja.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.ru.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.vi.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
README.zh-CN.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
release-process.md ci(release): add bot-owned Homebrew publish workflow (#1323) 2026-02-21 20:18:08 -05:00
resource-limits.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
reviewer-playbook.md feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
sandboxing.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
security-roadmap.md docs: overhaul docs IA and multilingual navigation 2026-02-18 18:06:13 +08:00
SUMMARY.el.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
SUMMARY.fr.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
SUMMARY.ja.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
SUMMARY.md docs: add Docker setup guide (#1690) 2026-02-24 18:40:43 -05:00
SUMMARY.ru.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
SUMMARY.vi.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
SUMMARY.zh-CN.md docs(i18n): unify greek localization and docs structure parity 2026-02-25 00:08:28 +08:00
troubleshooting.md fix(gateway): switch default port to 42617 across runtime and docs (#1179) 2026-02-21 02:28:56 -05:00
troubleshooting.vi.md docs(i18n): introduce canonical docs/i18n/vi tree with compatibility shims 2026-02-21 12:12:26 +08:00
zai-glm-setup.md fix(providers): harden tool fallback and refresh model catalogs 2026-02-18 22:50:02 +08:00

ZeroClaw Documentation Hub

This page is the primary entry point for the documentation system.

Last refreshed: February 21, 2026.

Localized hubs: 简体中文 · 日本語 · Русский · Français · Tiếng Việt · Ελληνικά.

Start Here

I want to… Read this
Install and run ZeroClaw quickly README.md (Quick Start)
Bootstrap in one command one-click-bootstrap.md
Set up on Android (Termux/ADB) android-setup.md
Update or uninstall on macOS getting-started/macos-update-uninstall.md
Find commands by task commands-reference.md
Check config defaults and keys quickly config-reference.md
Configure custom providers/endpoints custom-providers.md
Configure Z.AI / GLM provider zai-glm-setup.md
Use LangGraph integration patterns langgraph-integration.md
Apply proxy scope safely proxy-agent-playbook.md
Operate runtime (day-2 runbook) operations-runbook.md
Operate provider connectivity probes in CI operations/connectivity-probes-runbook.md
Troubleshoot install/runtime/channel issues troubleshooting.md
Run Matrix encrypted-room setup and diagnostics matrix-e2ee-guide.md
Build deterministic SOP procedures sop/README.md
Browse docs by category SUMMARY.md
See project PR/issue docs snapshot project-triage-snapshot-2026-02-18.md
Perform i18n completion for docs changes i18n-guide.md

Quick Decision Tree (10 seconds)

By Audience

Users / Operators

Contributors / Maintainers

Security / Reliability

Note: this area includes proposal/roadmap docs. For current behavior, start with config-reference.md, operations-runbook.md, and troubleshooting.md.

System Navigation & Governance