diff --git a/docs/channels/googlechat.md b/docs/channels/googlechat.md index 8701c11455f..4b16e209019 100644 --- a/docs/channels/googlechat.md +++ b/docs/channels/googlechat.md @@ -161,7 +161,7 @@ Configure your tunnel's ingress rules to only route the webhook path: - Spaces use session key `agent::googlechat:group:`. 4. DM access is pairing by default. Unknown senders receive a pairing code; approve with: - `openclaw pairing approve googlechat ` -5. Group spaces require @-mention by default. Use `botUser` if mention detection needs the app’s user name. +5. Group spaces require @-mention by default. Use `botUser` if mention detection needs the app's user name. ## Targets @@ -210,7 +210,7 @@ Notes: - Service account credentials can also be passed inline with `serviceAccount` (JSON string). - `serviceAccountRef` is also supported (env/file SecretRef), including per-account refs under `channels.googlechat.accounts..serviceAccountRef`. -- Default webhook path is `/googlechat` if `webhookPath` isn’t set. +- Default webhook path is `/googlechat` if `webhookPath` isn't set. - `dangerouslyAllowNameMatching` re-enables mutable email principal matching for allowlists (break-glass compatibility mode). - Reactions are available via the `reactions` tool and `channels action` when `actions.reactions` is enabled. - Message actions expose `send` for text and `upload-file` for explicit attachment sends. `upload-file` accepts `media` / `filePath` / `path` plus optional `message`, `filename`, and thread targeting. diff --git a/docs/channels/irc.md b/docs/channels/irc.md index f06d6b0b6c1..4dfa0d3b3e3 100644 --- a/docs/channels/irc.md +++ b/docs/channels/irc.md @@ -47,7 +47,7 @@ openclaw gateway run ## Access control -There are two separate “gates” for IRC channels: +There are two separate "gates" for IRC channels: 1. **Channel access** (`groupPolicy` + `groups`): whether the bot accepts messages from a channel at all. 2. **Sender access** (`groupAllowFrom` / per-channel `groups["#channel"].allowFrom`): who is allowed to trigger the bot inside that channel. @@ -68,7 +68,7 @@ If you see logs like: - `irc: drop group sender alice!ident@host (policy=allowlist)` -…it means the sender wasn’t allowed for **group/channel** messages. Fix it by either: +...it means the sender wasn't allowed for **group/channel** messages. Fix it by either: - setting `channels.irc.groupAllowFrom` (global for all channels), or - setting per-channel sender allowlists: `channels.irc.groups["#channel"].allowFrom` diff --git a/docs/nodes/audio.md b/docs/nodes/audio.md index 912ccdce5d7..06a32ae96d9 100644 --- a/docs/nodes/audio.md +++ b/docs/nodes/audio.md @@ -9,7 +9,7 @@ title: "Audio and voice notes" ## What works -- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected), OpenClaw: +- **Media understanding (audio)**: If audio understanding is enabled (or auto-detected), OpenClaw: 1. Locates the first audio attachment (local path or URL) and downloads it if needed. 2. Enforces `maxBytes` before sending to each model entry. 3. Runs the first eligible model entry in order (provider or CLI). @@ -20,7 +20,7 @@ title: "Audio and voice notes" ## Auto-detection (default) -If you **don’t configure models** and `tools.media.audio.enabled` is **not** set to `false`, +If you **don't configure models** and `tools.media.audio.enabled` is **not** set to `false`, OpenClaw auto-detects in this order and stops at the first working option: 1. **Active reply model** when its provider supports audio understanding. diff --git a/docs/nodes/voicewake.md b/docs/nodes/voicewake.md index dbacca885e2..d91a5e3b11c 100644 --- a/docs/nodes/voicewake.md +++ b/docs/nodes/voicewake.md @@ -67,14 +67,14 @@ Route targets support exactly one of: Who receives it: - All WebSocket clients (macOS app, WebChat, etc.) -- All connected nodes (iOS/Android), and also on node connect as an initial “current state” push. +- All connected nodes (iOS/Android), and also on node connect as an initial "current state" push. ## Client behavior ### macOS app - Uses the global list to gate `VoiceWakeRuntime` triggers. -- Editing “Trigger words” in Voice Wake settings calls `voicewake.set` and then relies on the broadcast to keep other clients in sync. +- Editing "Trigger words" in Voice Wake settings calls `voicewake.set` and then relies on the broadcast to keep other clients in sync. ### iOS node diff --git a/docs/platforms/mac/signing.md b/docs/platforms/mac/signing.md index f1e066cd0b5..4a2eb79c42f 100644 --- a/docs/platforms/mac/signing.md +++ b/docs/platforms/mac/signing.md @@ -40,11 +40,11 @@ When signing with `SIGN_IDENTITY="-"` (ad-hoc), the script automatically disable - `OpenClawBuildTimestamp`: ISO8601 UTC at package time - `OpenClawGitCommit`: short git hash (or `unknown` if unavailable) -The About tab reads these keys to show version, build date, git commit, and whether it’s a debug build (via `#if DEBUG`). Run the packager to refresh these values after code changes. +The About tab reads these keys to show version, build date, git commit, and whether it's a debug build (via `#if DEBUG`). Run the packager to refresh these values after code changes. ## Why -TCC permissions are tied to the bundle identifier _and_ code signature. Unsigned debug builds with changing UUIDs were causing macOS to forget grants after each rebuild. Signing the binaries (ad‑hoc by default) and keeping a fixed bundle id/path (`dist/OpenClaw.app`) preserves the grants between builds, matching the VibeTunnel approach. +TCC permissions are tied to the bundle identifier _and_ code signature. Unsigned debug builds with changing UUIDs were causing macOS to forget grants after each rebuild. Signing the binaries (ad-hoc by default) and keeping a fixed bundle id/path (`dist/OpenClaw.app`) preserves the grants between builds, matching the VibeTunnel approach. ## Related diff --git a/docs/platforms/mac/voice-overlay.md b/docs/platforms/mac/voice-overlay.md index 8abc854cf3f..84593512d83 100644 --- a/docs/platforms/mac/voice-overlay.md +++ b/docs/platforms/mac/voice-overlay.md @@ -16,7 +16,7 @@ Audience: macOS app contributors. Goal: keep the voice overlay predictable when ## Implemented (Dec 9, 2025) -- Overlay sessions now carry a token per capture (wake-word or push-to-talk). Partial/final/send/dismiss/level updates are dropped when the token doesn’t match, avoiding stale callbacks. +- Overlay sessions now carry a token per capture (wake-word or push-to-talk). Partial/final/send/dismiss/level updates are dropped when the token doesn't match, avoiding stale callbacks. - Push-to-talk adopts any visible overlay text as a prefix (so pressing the hotkey while the wake overlay is up keeps the text and appends new speech). It waits up to 1.5s for a final transcript before falling back to the current text. - Chime/overlay logging is emitted at `info` in categories `voicewake.overlay`, `voicewake.ptt`, and `voicewake.chime` (session start, partial, final, send, dismiss, chime reason). @@ -35,7 +35,7 @@ Audience: macOS app contributors. Goal: keep the voice overlay predictable when 4. **Unified send path** - On `endCapture`: if trimmed text is empty → dismiss; else `performSend(session:)` (plays send chime once, forwards, dismisses). - Push-to-talk: no delay; wake-word: optional delay for auto-send. - - Apply a short cooldown to the wake runtime after push-to-talk finishes so wake-word doesn’t immediately retrigger. + - Apply a short cooldown to the wake runtime after push-to-talk finishes so wake-word doesn't immediately retrigger. 5. **Logging** - Coordinator emits `.info` logs in subsystem `ai.openclaw`, categories `voicewake.overlay` and `voicewake.chime`. - Key events: `session_started`, `adopted_by_push_to_talk`, `partial`, `finalized`, `send`, `dismiss`, `cancel`, `cooldown`.