Skip to content

Commit 7fcb0a6

Browse files
Auto-merge upstream openclaw/openclaw
2 parents 2115521 + 9d7fe7c commit 7fcb0a6

53 files changed

Lines changed: 1262 additions & 220 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ Docs: https://docs.openclaw.ai
110110
- Agents/exec: restore `host=node` routing for node-pinned and `host=auto` sessions, while still blocking sandboxed `auto` sessions from jumping to gateway. (#60788) Thanks @openperf.
111111
- Agents/compaction: keep assistant tool calls and displaced tool results in the same compaction chunk so strict summarization providers stop rejecting orphaned tool pairs. (#58849) Thanks @openperf.
112112
- Outbound/sanitizer: strip leaked `<tool_call>`, `<function_calls>`, and model special tokens from shared user-visible assistant text, including truncated tool-call streams, so internal scaffolding no longer bleeds into replies across surfaces. (#60619) Thanks @oliviareid-svg.
113+
- Control UI/avatar: honor `ui.assistant.avatar` when serving `/avatar/:agentId` so Appearance UI avatar paths stop falling back to initials placeholders. (#60778) Thanks @hannasdev.
114+
- Control UI/Overview: prevent gateway access token/password visibility toggle buttons from overlapping their inputs at narrow widths. (#56924) Thanks @bbddbb1.
115+
- Control UI/cron: highlight the Cron refresh button while refresh is in flight so the page's loading state stays visible even when prior data remains on screen. (#60394) Thanks @coder-zhuzm.
113116

114117
## 2026.4.2
115118

docs/.i18n/glossary.zh-CN.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@
6767
"source": "BytePlus (International)",
6868
"target": "BytePlus(国际版)"
6969
},
70+
{
71+
"source": "Anthropic (API + Claude CLI)",
72+
"target": "Anthropic(API + Claude CLI)"
73+
},
7074
{
7175
"source": "Moonshot AI",
7276
"target": "Moonshot AI"

docs/channels/slack.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,24 @@ openclaw gateway
218218

219219
- `botToken` + `appToken` are required for Socket Mode.
220220
- HTTP mode requires `botToken` + `signingSecret`.
221+
- `botToken`, `appToken`, `signingSecret`, and `userToken` accept plaintext
222+
strings or SecretRef objects.
221223
- Config tokens override env fallback.
222224
- `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` env fallback applies only to the default account.
223225
- `userToken` (`xoxp-...`) is config-only (no env fallback) and defaults to read-only behavior (`userTokenReadOnly: true`).
224226
- Optional: add `chat:write.customize` if you want outgoing messages to use the active agent identity (custom `username` and icon). `icon_emoji` uses `:emoji_name:` syntax.
225227

228+
Status snapshot behavior:
229+
230+
- Slack account inspection tracks per-credential `*Source` and `*Status`
231+
fields (`botToken`, `appToken`, `signingSecret`, `userToken`).
232+
- Status is `available`, `configured_unavailable`, or `missing`.
233+
- `configured_unavailable` means the account is configured through SecretRef
234+
or another non-inline secret source, but the current command/runtime path
235+
could not resolve the actual value.
236+
- In HTTP mode, `signingSecretStatus` is included; in Socket Mode, the
237+
required pair is `botTokenStatus` + `appTokenStatus`.
238+
226239
<Tip>
227240
For actions/directory reads, user token can be preferred when configured. For writes, bot token remains preferred; user-token writes are only allowed when `userTokenReadOnly: false` and bot token is unavailable.
228241
</Tip>
@@ -624,6 +637,12 @@ openclaw pairing list slack
624637

625638
<Accordion title="Socket mode not connecting">
626639
Validate bot + app tokens and Socket Mode enablement in Slack app settings.
640+
641+
If `openclaw channels status --probe --json` shows `botTokenStatus` or
642+
`appTokenStatus: "configured_unavailable"`, the Slack account is
643+
configured but the current runtime could not resolve the SecretRef-backed
644+
value.
645+
627646
</Accordion>
628647

629648
<Accordion title="HTTP mode not receiving events">
@@ -634,6 +653,10 @@ openclaw pairing list slack
634653
- Slack Request URLs (Events + Interactivity + Slash Commands)
635654
- unique `webhookPath` per HTTP account
636655

656+
If `signingSecretStatus: "configured_unavailable"` appears in account
657+
snapshots, the HTTP account is configured but the current runtime could not
658+
resolve the SecretRef-backed signing secret.
659+
637660
</Accordion>
638661

639662
<Accordion title="Native/slash commands not firing">

docs/channels/troubleshooting.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ Full troubleshooting: [/channels/discord#troubleshooting](/channels/discord#trou
7070

7171
### Slack failure signatures
7272

73-
| Symptom | Fastest check | Fix |
74-
| -------------------------------------- | ----------------------------------------- | ------------------------------------------------- |
75-
| Socket mode connected but no responses | `openclaw channels status --probe` | Verify app token + bot token and required scopes. |
76-
| DMs blocked | `openclaw pairing list slack` | Approve pairing or relax DM policy. |
77-
| Channel message ignored | Check `groupPolicy` and channel allowlist | Allow the channel or switch policy to `open`. |
73+
| Symptom | Fastest check | Fix |
74+
| -------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
75+
| Socket mode connected but no responses | `openclaw channels status --probe` | Verify app token + bot token and required scopes; watch for `botTokenStatus` / `appTokenStatus = configured_unavailable` on SecretRef-backed setups. |
76+
| DMs blocked | `openclaw pairing list slack` | Approve pairing or relax DM policy. |
77+
| Channel message ignored | Check `groupPolicy` and channel allowlist | Allow the channel or switch policy to `open`. |
7878

7979
Full troubleshooting: [/channels/slack#troubleshooting](/channels/slack#troubleshooting)
8080

docs/cli/channels.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Notes:
9595

9696
- Run `openclaw status --deep` for a broad probe.
9797
- Use `openclaw doctor` for guided fixes.
98-
- `openclaw channels list` prints `Claude: HTTP 403 ... user:profile` → usage snapshot needs the `user:profile` scope. Use `--no-usage`, or provide a claude.ai session key (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), or re-auth via Claude Code CLI.
98+
- `openclaw channels list` prints `Claude: HTTP 403 ... user:profile` → usage snapshot needs the `user:profile` scope. Use `--no-usage`, or provide a claude.ai session key (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), or re-auth via Claude CLI.
9999
- `openclaw channels status` falls back to config-only summaries when the gateway is unreachable. If a supported channel credential is configured via SecretRef but unavailable in the current command path, it reports that account as configured with degraded notes instead of showing it as not configured.
100100

101101
## Capabilities probe

docs/cli/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,7 +1495,7 @@ openclaw models auth login --provider anthropic --method cli --set-default
14951495

14961496
Onboarding shortcut: `openclaw onboard --auth-choice anthropic-cli`
14971497

1498-
Existing legacy Anthropic token profiles still run if already configured, but
1498+
Existing Anthropic OAuth/token profiles still run if already configured, but
14991499
OpenClaw no longer offers Anthropic setup-token as a new auth path.
15001500

15011501
Legacy alias note: `claude-cli` is the deprecated onboarding auth-choice alias.
@@ -1609,7 +1609,7 @@ Notes:
16091609
- `setup-token` and `paste-token` are generic token commands for providers that expose token auth methods.
16101610
- `setup-token` requires an interactive TTY and runs the provider's token-auth method.
16111611
- `paste-token` prompts for the token value and defaults to auth profile id `<provider>:manual` when `--profile-id` is omitted.
1612-
- Anthropic legacy token profiles still run if already configured, but Anthropic no longer supports `setup-token` or `paste-token` as a new OpenClaw auth path.
1612+
- Anthropic OAuth/token profiles still run if already configured, but Anthropic no longer supports `setup-token` or `paste-token` as a new OpenClaw auth path.
16131613

16141614
### `models auth order get|set|clear`
16151615

docs/cli/models.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ openclaw models auth login --provider openai-codex --set-default
119119
Notes:
120120

121121
- `login --provider anthropic --method cli --set-default` reuses a local Claude
122-
CLI login and rewrites the main Anthropic default-model path to `claude-cli/...`.
122+
CLI login and rewrites the main Anthropic default-model path to a canonical
123+
`claude-cli/claude-*` ref.
123124
- `setup-token` and `paste-token` remain generic token commands for providers
124125
that expose token auth methods.
125126
- `setup-token` requires an interactive TTY and runs the provider's token-auth
@@ -131,4 +132,4 @@ Notes:
131132
- `paste-token --expires-in <duration>` stores an absolute token expiry from a
132133
relative duration such as `365d` or `12h`.
133134
- Anthropic billing note: Anthropic changed third-party harness billing on **April 4, 2026 at 12:00 PM PT / 8:00 PM BST**. Anthropic says Claude subscription limits no longer cover OpenClaw, and Claude CLI traffic in OpenClaw now requires **Extra Usage** billed separately from the subscription.
134-
- Existing legacy Anthropic token profiles still run if already configured, but Anthropic no longer supports `setup-token` or `paste-token` as a new OpenClaw auth path.
135+
- Existing Anthropic OAuth/token profiles still run if already configured, but Anthropic no longer supports `setup-token` or `paste-token` as a new OpenClaw auth path.

docs/concepts/delegate-architecture.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,13 @@ The delegate's `AGENTS.md` defines its autonomous authority — what it may do w
285285
If you grant `sessions_history`, remember it is a bounded, safety-filtered
286286
recall view. OpenClaw redacts credential/token-like text, truncates long
287287
content, strips thinking tags / `<relevant-memories>` scaffolding / plain-text
288-
tool-call XML payloads (including `<tool_calls>` and truncated tool-call
289-
blocks) / downgraded tool-call scaffolding / leaked ASCII/full-width model
290-
control tokens / malformed MiniMax tool-call XML from assistant recall, and
291-
can replace oversized rows with `[sessions_history omitted: message too
292-
large]` instead of returning a raw transcript dump.
288+
tool-call XML payloads (including `<tool_call>...</tool_call>`,
289+
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
290+
`<function_calls>...</function_calls>`, and truncated tool-call blocks) /
291+
downgraded tool-call scaffolding / leaked ASCII/full-width model control
292+
tokens / malformed MiniMax tool-call XML from assistant recall, and can
293+
replace oversized rows with `[sessions_history omitted: message too large]`
294+
instead of returning a raw transcript dump.
293295

294296
## Scaling pattern
295297

docs/concepts/model-providers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,8 @@ OpenClaw ships with the pi‑ai catalog. These providers require **no**
255255
- Example model: `anthropic/claude-opus-4-6`
256256
- CLI: `openclaw onboard --auth-choice apiKey` or `openclaw onboard --auth-choice anthropic-cli`
257257
- Direct public Anthropic requests support the shared `/fast` toggle and `params.fastMode`, including API-key and OAuth-authenticated traffic sent to `api.anthropic.com`; OpenClaw maps that to Anthropic `service_tier` (`auto` vs `standard_only`)
258-
- Billing note: Anthropic changed third-party harness billing on **April 4, 2026 at 12:00 PM PT / 8:00 PM BST**. Anthropic says Claude subscription limits no longer cover OpenClaw, and Claude CLI traffic now requires **Extra Usage** billed separately from the subscription.
259-
- Existing legacy Anthropic token profiles still run if already configured, but new setup is no longer offered through onboarding or auth commands.
258+
- Billing note: Anthropic changed third-party harness billing on **April 4, 2026 at 12:00 PM PT / 8:00 PM BST**. Anthropic says Claude subscription limits no longer cover OpenClaw, and Anthropic OAuth/subscription traffic now requires **Extra Usage** billed separately from the subscription.
259+
- Existing Anthropic OAuth/token profiles still run if already configured, but new setup is no longer offered through onboarding or auth commands.
260260

261261
```json5
262262
{

docs/concepts/models.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ If explicit `auth.order.<provider>` omits a stored profile, probe reports
184184
model can be resolved for that provider, probe reports `status: no_model`.
185185

186186
Auth choice is provider/account dependent. For always-on gateway hosts, API
187-
keys are usually the most predictable; Claude CLI reuse and existing legacy
188-
Anthropic token profiles are also supported.
187+
keys are usually the most predictable; Claude CLI reuse and existing Anthropic
188+
OAuth/token profiles are also supported.
189189

190190
Example (Claude CLI):
191191

0 commit comments

Comments
 (0)