Feat/channels list show all and drop auth (#78456) · openclaw/openclaw@9170243
sliverp
·
2026-05-07
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -11,6 +11,7 @@ Docs: https://docs.openclaw.ai
|
11 | 11 | - Telegram: treat successful same-chat `message` tool outbound sends during an inbound telegram turn as delivered when deciding whether to emit the rewritten silent reply fallback (#78685). Thanks @neeravmakwana. |
12 | 12 | - Gateway/tasks: reconcile stale CLI run-context tasks whose live run context disappeared even when a child session row remains, and apply the default bounded reload deferral timeout to channel hot reloads so stale task records cannot block Discord/Slack/Telegram reloads forever. |
13 | 13 | - Discord/voice: make `openclaw channels capabilities --channel discord --target channel:<id>` and `channels status --probe` audit voice-channel permissions, including auto-join targets, so missing Connect/Speak/Read Message History permissions show up before `/vc join`. |
| 14 | +- Channels CLI: make `openclaw channels list` channel-only — drop the `Auth providers (OAuth + API keys)` block (use `openclaw models auth list`), drop the per-provider usage/quota fetch and the `--no-usage` flag (use `openclaw status` or `openclaw models list`), add `--all` to surface bundled-unconfigured, catalog-not-installed, and catalog-installed-but-unconfigured channels, and render explicit `installed` / `configured` / `enabled` tags per row plus an `origin` + `installed` field in JSON. Fixes WeCom-class catalog channels disappearing from `--all` when installed on disk but not yet configured. (#78456) |
14 | 15 | - CLI/cron: add computed `status` field to `cron list --json` and `cron show <id> --json` output, mirroring the human-readable status column (disabled/running/ok/error/skipped/idle) so external tooling can determine job state without re-deriving it from raw state fields. (#78701) Thanks @aweiker. |
15 | 16 | - Docs/iMessage: deprecate BlueBubbles for new OpenClaw setups, document the upstream server-release rationale, and point new iMessage deployments toward the native `imsg` path while keeping BlueBubbles as a supported legacy fallback. |
16 | 17 | - Discord/voice: make voice capture less choppy by extending the default post-speech silence grace to 2.5s, add `voice.captureSilenceGraceMs` for noisy Discord sessions, and tighten the spoken-output prompt around live STT fragments. Thanks @vincentkoc. |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -19,6 +19,7 @@ Related docs:
|
19 | 19 | |
20 | 20 | ```bash |
21 | 21 | openclaw channels list |
| 22 | +openclaw channels list --all |
22 | 23 | openclaw channels status |
23 | 24 | openclaw channels capabilities |
24 | 25 | openclaw channels capabilities --channel discord --target channel:123 |
@@ -27,6 +28,8 @@ openclaw channels resolve --channel slack "#general" "@jane"
|
27 | 28 | openclaw channels logs --channel all |
28 | 29 | ``` |
29 | 30 | |
| 31 | +`channels list` shows chat channels only: configured accounts by default, with `installed`, `configured`, and `enabled` status tags per account. Pass `--all` to also surface bundled channels that have no configured account yet and installable catalog channels that are not yet on disk. Auth providers (OAuth + API keys) and model-provider usage/quota snapshots are no longer printed here; use `openclaw models auth list` for provider auth profiles and `openclaw status` or `openclaw models list` for usage. |
| 32 | + |
30 | 33 | ## Status / capabilities / resolve / logs |
31 | 34 | |
32 | 35 | - `channels status`: `--probe`, `--timeout <ms>`, `--json` |
@@ -109,7 +112,7 @@ openclaw channels logout --channel whatsapp
|
109 | 112 | |
110 | 113 | - Run `openclaw status --deep` for a broad probe. |
111 | 114 | - Use `openclaw doctor` for guided fixes. |
112 | | -- `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. |
| 115 | +- `openclaw channels list` no longer prints model provider usage/quota snapshots. For those, use `openclaw status` (overview) or `openclaw models list` (per-provider). |
113 | 116 | - `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. |
114 | 117 | |
115 | 118 | ## Capabilities probe |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -115,8 +115,8 @@ export async function registerChannelsCli(
|
115 | 115 | |
116 | 116 | channels |
117 | 117 | .command("list") |
118 | | -.description("List configured channels + auth profiles") |
119 | | -.option("--no-usage", "Skip model provider usage/quota snapshots") |
| 118 | +.description("List chat channels (configured by default; pass --all for installable catalog)") |
| 119 | +.option("--all", "Include bundled and installable catalog channels", false) |
120 | 120 | .option("--json", "Output JSON", false) |
121 | 121 | .action(async (opts) => { |
122 | 122 | await runChannelsCommand(async () => { |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -251,7 +251,7 @@ export function parseModelsStatusRouteArgs(argv: string[]) {
|
251 | 251 | export function parseChannelsListRouteArgs(argv: string[]) { |
252 | 252 | return { |
253 | 253 | json: hasFlag(argv, "--json"), |
254 | | -usage: !hasFlag(argv, "--no-usage"), |
| 254 | +all: hasFlag(argv, "--all"), |
255 | 255 | }; |
256 | 256 | } |
257 | 257 | |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -115,11 +115,11 @@ describe("program routes", () => {
|
115 | 115 | |
116 | 116 | it("passes parsed channel read-only route flags through", async () => { |
117 | 117 | const listRoute = expectRoute(["channels", "list"]); |
118 | | -await expect( |
119 | | -listRoute?.run(["node", "openclaw", "channels", "list", "--json", "--no-usage"]), |
120 | | -).resolves.toBe(true); |
| 118 | +await expect(listRoute?.run(["node", "openclaw", "channels", "list", "--json"])).resolves.toBe( |
| 119 | +true, |
| 120 | +); |
121 | 121 | expect(channelsListCommandMock).toHaveBeenCalledWith( |
122 | | -{ json: true, usage: false }, |
| 122 | +{ json: true, all: false }, |
123 | 123 | expect.any(Object), |
124 | 124 | ); |
125 | 125 | |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。