From 0b11ee48f81daa087b335e134a4b7f948ae6534e Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Thu, 19 Mar 2026 10:31:20 -0700 Subject: [PATCH] docs: fix 26 broken anchor links across 18 files --- docs/automation/hooks.md | 2 +- docs/channels/groups.md | 2 +- docs/channels/matrix.md | 2 ++ docs/channels/signal.md | 2 +- docs/channels/troubleshooting.md | 4 ++-- docs/concepts/memory.md | 2 +- docs/concepts/messages.md | 2 +- docs/concepts/models.md | 6 +++--- docs/concepts/oauth.md | 2 +- docs/gateway/configuration.md | 6 +++--- docs/gateway/sandboxing.md | 2 +- docs/gateway/security/index.md | 4 ++-- docs/help/environment.md | 2 +- docs/help/faq.md | 22 +++++++++++----------- docs/help/index.md | 2 +- docs/install/docker.md | 2 +- docs/providers/anthropic.md | 4 ++-- docs/tools/browser.md | 2 +- docs/tools/multi-agent-sandbox-tools.md | 2 +- 19 files changed, 37 insertions(+), 35 deletions(-) diff --git a/docs/automation/hooks.md b/docs/automation/hooks.md index a470bef8540..4d7dbd02533 100644 --- a/docs/automation/hooks.md +++ b/docs/automation/hooks.md @@ -1046,4 +1046,4 @@ node -e "import('./path/to/handler.ts').then(console.log)" - [CLI Reference: hooks](/cli/hooks) - [Bundled Hooks README](https://github.com/openclaw/openclaw/tree/main/src/hooks/bundled) - [Webhook Hooks](/automation/webhook) -- [Configuration](/gateway/configuration#hooks) +- [Configuration](/gateway/configuration-reference#hooks) diff --git a/docs/channels/groups.md b/docs/channels/groups.md index a6bd8621784..8895cdd18f9 100644 --- a/docs/channels/groups.md +++ b/docs/channels/groups.md @@ -116,7 +116,7 @@ Want “groups can only see folder X” instead of “no host access”? Keep `w Related: -- Configuration keys and defaults: [Gateway configuration](/gateway/configuration#agentsdefaultssandbox) +- Configuration keys and defaults: [Gateway configuration](/gateway/configuration-reference#agents-defaults-sandbox) - Debugging why a tool is blocked: [Sandbox vs Tool Policy vs Elevated](/gateway/sandbox-vs-tool-policy-vs-elevated) - Bind mounts details: [Sandboxing](/gateway/sandboxing#custom-bind-mounts) diff --git a/docs/channels/matrix.md b/docs/channels/matrix.md index d6ec40ff4db..360bc706748 100644 --- a/docs/channels/matrix.md +++ b/docs/channels/matrix.md @@ -204,6 +204,8 @@ Bootstrap cross-signing and verification state: openclaw matrix verify bootstrap ``` +Multi-account support: use `channels.matrix.accounts` with per-account credentials and optional `name`. See [Configuration reference](/gateway/configuration-reference#multi-account-all-channels) for the shared pattern. + Verbose bootstrap diagnostics: ```bash diff --git a/docs/channels/signal.md b/docs/channels/signal.md index cfc050b6e75..fb5747dc417 100644 --- a/docs/channels/signal.md +++ b/docs/channels/signal.md @@ -99,7 +99,7 @@ Example: } ``` -Multi-account support: use `channels.signal.accounts` with per-account config and optional `name`. See [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) for the shared pattern. +Multi-account support: use `channels.signal.accounts` with per-account config and optional `name`. See [`gateway/configuration`](/gateway/configuration-reference#multi-account-all-channels) for the shared pattern. ## Setup path B: register dedicated bot number (SMS, Linux) diff --git a/docs/channels/troubleshooting.md b/docs/channels/troubleshooting.md index a7850801948..106710ca926 100644 --- a/docs/channels/troubleshooting.md +++ b/docs/channels/troubleshooting.md @@ -38,7 +38,7 @@ Healthy baseline: | Group messages ignored | Check `requireMention` + mention patterns in config | Mention the bot or relax mention policy for that group. | | Random disconnect/relogin loops | `openclaw channels status --probe` + logs | Re-login and verify credentials directory is healthy. | -Full troubleshooting: [/channels/whatsapp#troubleshooting-quick](/channels/whatsapp#troubleshooting-quick) +Full troubleshooting: [/channels/whatsapp#troubleshooting](/channels/whatsapp#troubleshooting) ## Telegram @@ -90,7 +90,7 @@ Full troubleshooting: [/channels/slack#troubleshooting](/channels/slack#troubles Full troubleshooting: -- [/channels/imessage#troubleshooting-macos-privacy-and-security-tcc](/channels/imessage#troubleshooting-macos-privacy-and-security-tcc) +- [/channels/imessage#troubleshooting](/channels/imessage#troubleshooting) - [/channels/bluebubbles#troubleshooting](/channels/bluebubbles#troubleshooting) ## Signal diff --git a/docs/concepts/memory.md b/docs/concepts/memory.md index 2649125dc45..e020d4a9a49 100644 --- a/docs/concepts/memory.md +++ b/docs/concepts/memory.md @@ -208,7 +208,7 @@ out to QMD for retrieval. Key points: `commandTimeoutMs`, `updateTimeoutMs`, `embedTimeoutMs`). - `limits`: clamp recall payload (`maxResults`, `maxSnippetChars`, `maxInjectedChars`, `timeoutMs`). -- `scope`: same schema as [`session.sendPolicy`](/gateway/configuration#session). +- `scope`: same schema as [`session.sendPolicy`](/gateway/configuration-reference#session). Default is DM-only (`deny` all, `allow` direct chats); loosen it to surface QMD hits in groups/channels. - `match.keyPrefix` matches the **normalized** session key (lowercased, with any diff --git a/docs/concepts/messages.md b/docs/concepts/messages.md index 4930002187e..e94092e7bbc 100644 --- a/docs/concepts/messages.md +++ b/docs/concepts/messages.md @@ -151,4 +151,4 @@ Outbound message formatting is centralized in `messages`: - `messages.responsePrefix`, `channels..responsePrefix`, and `channels..accounts..responsePrefix` (outbound prefix cascade), plus `channels.whatsapp.messagePrefix` (WhatsApp inbound prefix) - Reply threading via `replyToMode` and per-channel defaults -Details: [Configuration](/gateway/configuration#messages) and channel docs. +Details: [Configuration](/gateway/configuration-reference#messages) and channel docs. diff --git a/docs/concepts/models.md b/docs/concepts/models.md index 0a32e1b5d8b..d9a76cabc64 100644 --- a/docs/concepts/models.md +++ b/docs/concepts/models.md @@ -58,7 +58,7 @@ Model refs are normalized to lowercase. Provider aliases like `z.ai/*` normalize to `zai/*`. Provider configuration examples (including OpenCode) live in -[/gateway/configuration](/gateway/configuration#opencode). +[/providers/opencode](/providers/opencode). ## "Model is not allowed" (and why replies stop) @@ -82,9 +82,9 @@ Example allowlist config: ```json5 { agent: { - model: { primary: "anthropic/claude-sonnet-4-5" }, + model: { primary: "anthropic/claude-sonnet-4-6" }, models: { - "anthropic/claude-sonnet-4-5": { alias: "Sonnet" }, + "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "anthropic/claude-opus-4-6": { alias: "Opus" }, }, }, diff --git a/docs/concepts/oauth.md b/docs/concepts/oauth.md index 4766687ad51..2589dcaa8f9 100644 --- a/docs/concepts/oauth.md +++ b/docs/concepts/oauth.md @@ -50,7 +50,7 @@ Legacy import-only file (still supported, but not the main store): - `~/.openclaw/credentials/oauth.json` (imported into `auth-profiles.json` on first use) -All of the above also respect `$OPENCLAW_STATE_DIR` (state dir override). Full reference: [/gateway/configuration](/gateway/configuration#auth-storage-oauth--api-keys) +All of the above also respect `$OPENCLAW_STATE_DIR` (state dir override). Full reference: [/gateway/configuration](/gateway/configuration-reference#auth-storage) For static secret refs and runtime snapshot activation behavior, see [Secrets Management](/gateway/secrets). diff --git a/docs/gateway/configuration.md b/docs/gateway/configuration.md index b8977ca10ac..42977c2b6f1 100644 --- a/docs/gateway/configuration.md +++ b/docs/gateway/configuration.md @@ -112,11 +112,11 @@ When validation fails: agents: { defaults: { model: { - primary: "anthropic/claude-sonnet-4-5", + primary: "anthropic/claude-sonnet-4-6", fallbacks: ["openai/gpt-5.2"], }, models: { - "anthropic/claude-sonnet-4-5": { alias: "Sonnet" }, + "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "openai/gpt-5.2": { alias: "GPT" }, }, }, @@ -251,7 +251,7 @@ When validation fails: Build the image first: `scripts/sandbox-setup.sh` - See [Sandboxing](/gateway/sandboxing) for the full guide and [full reference](/gateway/configuration-reference#sandbox) for all options. + See [Sandboxing](/gateway/sandboxing) for the full guide and [full reference](/gateway/configuration-reference#agents-defaults-sandbox) for all options. diff --git a/docs/gateway/sandboxing.md b/docs/gateway/sandboxing.md index 736dc7c6261..12650357724 100644 --- a/docs/gateway/sandboxing.md +++ b/docs/gateway/sandboxing.md @@ -463,7 +463,7 @@ See [Multi-Agent Sandbox & Tools](/tools/multi-agent-sandbox-tools) for preceden ## Related docs - [OpenShell](/gateway/openshell) -- managed sandbox backend setup, workspace modes, and config reference -- [Sandbox Configuration](/gateway/configuration#agentsdefaults-sandbox) +- [Sandbox Configuration](/gateway/configuration-reference#agents-defaults-sandbox) - [Sandbox vs Tool Policy vs Elevated](/gateway/sandbox-vs-tool-policy-vs-elevated) -- debugging "why is this blocked?" - [Multi-Agent Sandbox & Tools](/tools/multi-agent-sandbox-tools) -- per-agent overrides and precedence - [Security](/gateway/security) diff --git a/docs/gateway/security/index.md b/docs/gateway/security/index.md index 8cea1b42766..26cfbc4d6df 100644 --- a/docs/gateway/security/index.md +++ b/docs/gateway/security/index.md @@ -5,7 +5,7 @@ read_when: title: "Security" --- -# Security 🔒 +# Security > [!WARNING] > **Personal assistant trust model:** this guidance assumes one trusted operator boundary per gateway (single-user/personal assistant model). @@ -25,7 +25,7 @@ This page explains hardening **within that model**. It does not claim hostile mu ## Quick check: `openclaw security audit` -See also: [Formal Verification (Security Models)](/security/formal-verification/) +See also: [Formal Verification (Security Models)](/security/formal-verification) Run this regularly (especially after changing config or exposing network surfaces): diff --git a/docs/help/environment.md b/docs/help/environment.md index 860129bde37..45faad7c66c 100644 --- a/docs/help/environment.md +++ b/docs/help/environment.md @@ -90,7 +90,7 @@ You can reference env vars directly in config string values using `${VAR_NAME}` } ``` -See [Configuration: Env var substitution](/gateway/configuration#env-var-substitution-in-config) for full details. +See [Configuration: Env var substitution](/gateway/configuration-reference#env-var-substitution) for full details. ## Secret refs vs `${ENV}` strings diff --git a/docs/help/faq.md b/docs/help/faq.md index 5e892da6a7b..9122af6119e 100644 --- a/docs/help/faq.md +++ b/docs/help/faq.md @@ -13,7 +13,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS, ## Table of contents - [Quick start and first-run setup] - - [I am stuck - fastest way to get unstuck](#i-am-stuck---fastest-way-to-get-unstuck) + - [I am stuck - fastest way to get unstuck](#i-am-stuck-fastest-way-to-get-unstuck) - [Recommended way to install and set up OpenClaw](#recommended-way-to-install-and-set-up-openclaw) - [How do I open the dashboard after onboarding?](#how-do-i-open-the-dashboard-after-onboarding) - [How do I authenticate the dashboard (token) on localhost vs remote?](#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote) @@ -449,7 +449,7 @@ section is the latest shipped version. Entries are grouped by **Highlights**, ** Some Comcast/Xfinity connections incorrectly block `docs.openclaw.ai` via Xfinity Advanced Security. Disable it or allowlist `docs.openclaw.ai`, then retry. More -detail: [Troubleshooting](/help/troubleshooting#docsopenclawai-shows-an-ssl-error-comcastxfinity). +detail: [Troubleshooting](/help/faq#docsopenclawai-shows-an-ssl-error-comcast-xfinity). Please help us unblock it by reporting here: [https://spa.xfinity.com/check_url_status](https://spa.xfinity.com/check_url_status). If you still can't reach the site, the docs are mirrored on GitHub: @@ -497,7 +497,7 @@ Rough guide: - **Onboarding:** 5-15 minutes depending on how many channels/models you configure If it hangs, use [Installer stuck](/help/faq#installer-stuck-how-do-i-get-more-feedback) -and the fast debug loop in [I am stuck](/help/faq#i-am-stuck---fastest-way-to-get-unstuck). +and the fast debug loop in [I am stuck](/help/faq#i-am-stuck-fastest-way-to-get-unstuck). ### How do I try the latest bits @@ -858,7 +858,7 @@ Third-party (less private): - DM `@userinfobot` or `@getidsbot`. -See [/channels/telegram](/channels/telegram#access-control-dms--groups). +See [/channels/telegram](/channels/telegram#access-control-and-activation). ### Can multiple people use one WhatsApp number with different OpenClaw instances @@ -1259,7 +1259,7 @@ Use `agents.defaults.sandbox.mode: "non-main"` so group/channel sessions (non-ma Setup walkthrough + example config: [Groups: personal DMs + public groups](/channels/groups#pattern-personal-dms-public-groups-single-agent) -Key config reference: [Gateway configuration](/gateway/configuration#agentsdefaultssandbox) +Key config reference: [Gateway configuration](/gateway/configuration-reference#agents-defaults-sandbox) ### How do I bind a host folder into the sandbox @@ -2293,7 +2293,7 @@ Aliases come from `agents.defaults.models..alias`. Example: model: { primary: "anthropic/claude-opus-4-6" }, models: { "anthropic/claude-opus-4-6": { alias: "opus" }, - "anthropic/claude-sonnet-4-5": { alias: "sonnet" }, + "anthropic/claude-sonnet-4-6": { alias: "sonnet" }, "anthropic/claude-haiku-4-5": { alias: "haiku" }, }, }, @@ -2311,8 +2311,8 @@ OpenRouter (pay-per-token; many models): { agents: { defaults: { - model: { primary: "openrouter/anthropic/claude-sonnet-4-5" }, - models: { "openrouter/anthropic/claude-sonnet-4-5": {} }, + model: { primary: "openrouter/anthropic/claude-sonnet-4-6" }, + models: { "openrouter/anthropic/claude-sonnet-4-6": {} }, }, }, env: { OPENROUTER_API_KEY: "sk-or-..." }, @@ -2635,7 +2635,7 @@ Service/supervisor logs (when the gateway runs via launchd/systemd): - Linux: `journalctl --user -u openclaw-gateway[-].service -n 200 --no-pager` - Windows: `schtasks /Query /TN "OpenClaw Gateway ()" /V /FO LIST` -See [Troubleshooting](/gateway/troubleshooting#log-locations) for more. +See [Troubleshooting](/gateway/troubleshooting) for more. ### How do I start/stop/restart the Gateway service @@ -2917,7 +2917,7 @@ If it is still noisy, check the session settings in the Control UI and set verbo to **inherit**. Also confirm you are not using a bot profile with `verboseDefault` set to `on` in config. -Docs: [Thinking and verbose](/tools/thinking), [Security](/gateway/security#reasoning--verbose-output-in-groups). +Docs: [Thinking and verbose](/tools/thinking), [Security](/gateway/security#reasoning-verbose-output-in-groups). ### How do I stopcancel a running task @@ -3000,7 +3000,7 @@ You can add options like `debounce:2s cap:25 drop:summarize` for followup modes. **Q: "What's the default model for Anthropic with an API key?"** -**A:** In OpenClaw, credentials and model selection are separate. Setting `ANTHROPIC_API_KEY` (or storing an Anthropic API key in auth profiles) enables authentication, but the actual default model is whatever you configure in `agents.defaults.model.primary` (for example, `anthropic/claude-sonnet-4-5` or `anthropic/claude-opus-4-6`). If you see `No credentials found for profile "anthropic:default"`, it means the Gateway couldn't find Anthropic credentials in the expected `auth-profiles.json` for the agent that's running. +**A:** In OpenClaw, credentials and model selection are separate. Setting `ANTHROPIC_API_KEY` (or storing an Anthropic API key in auth profiles) enables authentication, but the actual default model is whatever you configure in `agents.defaults.model.primary` (for example, `anthropic/claude-sonnet-4-6` or `anthropic/claude-opus-4-6`). If you see `No credentials found for profile "anthropic:default"`, it means the Gateway couldn't find Anthropic credentials in the expected `auth-profiles.json` for the agent that's running. --- diff --git a/docs/help/index.md b/docs/help/index.md index 80aa5d304e8..5d0942909b6 100644 --- a/docs/help/index.md +++ b/docs/help/index.md @@ -11,7 +11,7 @@ title: "Help" If you want a quick “get unstuck” flow, start here: - **Troubleshooting:** [Start here](/help/troubleshooting) -- **Install sanity (Node/npm/PATH):** [Install](/install#nodejs--npm-path-sanity) +- **Install sanity (Node/npm/PATH):** [Install](/install/node#troubleshooting) - **Gateway issues:** [Gateway troubleshooting](/gateway/troubleshooting) - **Logs:** [Logging](/logging) and [Gateway logging](/gateway/logging) - **Repairs:** [Doctor](/gateway/doctor) diff --git a/docs/install/docker.md b/docs/install/docker.md index f4913a5138a..f80d0809fc8 100644 --- a/docs/install/docker.md +++ b/docs/install/docker.md @@ -29,7 +29,7 @@ Sandboxing details: [Sandboxing](/gateway/sandboxing) - At least 2 GB RAM for image build (`pnpm install` may be OOM-killed on 1 GB hosts with exit 137) - Enough disk for images + logs - If running on a VPS/public host, review - [Security hardening for network exposure](/gateway/security#04-network-exposure-bind--port--firewall), + [Security hardening for network exposure](/gateway/security#0-4-network-exposure-bind-port-firewall), especially Docker `DOCKER-USER` firewall policy. ## Containerized Gateway (Docker Compose) diff --git a/docs/providers/anthropic.md b/docs/providers/anthropic.md index d16d76f6315..a1f2e212463 100644 --- a/docs/providers/anthropic.md +++ b/docs/providers/anthropic.md @@ -57,7 +57,7 @@ OpenClaw's shared `/fast` toggle also supports direct Anthropic API-key traffic. agents: { defaults: { models: { - "anthropic/claude-sonnet-4-5": { + "anthropic/claude-sonnet-4-6": { params: { fastMode: true }, }, }, @@ -228,7 +228,7 @@ openclaw onboard --auth-choice setup-token ## Notes - Generate the setup-token with `claude setup-token` and paste it, or run `openclaw models auth setup-token` on the gateway host. -- If you see “OAuth token refresh failed …” on a Claude subscription, re-auth with a setup-token. See [/gateway/troubleshooting#oauth-token-refresh-failed-anthropic-claude-subscription](/gateway/troubleshooting#oauth-token-refresh-failed-anthropic-claude-subscription). +- If you see “OAuth token refresh failed …” on a Claude subscription, re-auth with a setup-token. See [/gateway/troubleshooting](/gateway/troubleshooting). - Auth details + reuse rules are in [/concepts/oauth](/concepts/oauth). ## Troubleshooting diff --git a/docs/tools/browser.md b/docs/tools/browser.md index dc044450742..4797bc7409b 100644 --- a/docs/tools/browser.md +++ b/docs/tools/browser.md @@ -581,7 +581,7 @@ Notes: - `--format ai` (default when Playwright is installed): returns an AI snapshot with numeric refs (`aria-ref=""`). - `--format aria`: returns the accessibility tree (no refs; inspection only). - `--efficient` (or `--mode efficient`): compact role snapshot preset (interactive + compact + depth + lower maxChars). - - Config default (tool/CLI only): set `browser.snapshotDefaults.mode: "efficient"` to use efficient snapshots when the caller does not pass a mode (see [Gateway configuration](/gateway/configuration#browser-openclaw-managed-browser)). + - Config default (tool/CLI only): set `browser.snapshotDefaults.mode: "efficient"` to use efficient snapshots when the caller does not pass a mode (see [Gateway configuration](/gateway/configuration-reference#browser)). - Role snapshot options (`--interactive`, `--compact`, `--depth`, `--selector`) force a role-based snapshot with refs like `ref=e12`. - `--frame "