fix(channels): expose progress draft config hints · openclaw/openclaw@8beda86
vincentkoc
·
2026-05-04
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -30,6 +30,7 @@ Docs: https://docs.openclaw.ai
|
30 | 30 | |
31 | 31 | ### Fixes |
32 | 32 | |
| 33 | +- Channels/streaming: expose `streaming.progress.label`, `labels`, `maxLines`, and `toolProgress` in bundled channel config metadata so progress draft settings appear in config, docs, and control surfaces. Thanks @vincentkoc. |
33 | 34 | - Channels/streaming: normalize whitespace and case for `streaming.progress.label: "auto"` so progress draft labels keep using the built-in label pool instead of rendering a literal `auto` title. Thanks @vincentkoc. |
34 | 35 | - Gateway/install: prefer supported system Node over nvm/fnm/volta/asdf/mise when regenerating managed gateway services, so `gateway install --force` no longer recreates service definitions that doctor immediately flags as version-manager-backed. Fixes #76339. Thanks @brokemac79. |
35 | 36 | - Gateway/usage: serve `usage.cost` and `sessions.usage` from a durable transcript aggregate cache with lock-safe background refreshes and localized stale-cache status, so large usage views avoid repeated full scans. (#76650) Thanks @Marvinthebored. |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
1 | | -c165172059698df0d806ee9861b9ba1433c2055935bbf81497437897bfcc4e6f config-baseline.json |
| 1 | +b4cce06ca8c16774e277551ba027591289762ed9cf2490c993fec2051ac19c61 config-baseline.json |
2 | 2 | bfb7ade43e58c630d0480eaa215ef22bf0d5030136c3e24cdd2c2a4c73d1b663 config-baseline.core.json |
3 | | -f0e77e90432c987c27143194f70df649bac7595e78613b3708366ff32401369f config-baseline.channel.json |
| 3 | +7b207901b595ad527026b1f357f63a5cd33123a72eeb66bdac24a8f2e8bb1ac8 config-baseline.channel.json |
4 | 4 | 055fae0d0067a751dc10125af7421da45633f73519c94c982d02b0c4eb2bdf67 config-baseline.plugin.json |
| Original file line number | Diff line number | Diff line change |
|---|
@@ -65,6 +65,22 @@ export const discordChannelConfigUiHints = {
|
65 | 65 | label: "Discord Draft Tool Progress", |
66 | 66 | help: "Show tool/progress activity in the live draft preview message (default: true). Set false to keep tool updates as separate messages.", |
67 | 67 | }, |
| 68 | +"streaming.progress.label": { |
| 69 | +label: "Discord Progress Label", |
| 70 | +help: 'Initial progress draft title. Use "auto" for built-in single-word labels, a custom string, or false to hide the title.', |
| 71 | +}, |
| 72 | +"streaming.progress.labels": { |
| 73 | +label: "Discord Progress Label Pool", |
| 74 | +help: 'Candidate labels for streaming.progress.label="auto". Leave unset to use OpenClaw built-in progress labels.', |
| 75 | +}, |
| 76 | +"streaming.progress.maxLines": { |
| 77 | +label: "Discord Progress Max Lines", |
| 78 | +help: "Maximum number of compact progress lines to keep below the draft label (default: 8).", |
| 79 | +}, |
| 80 | +"streaming.progress.toolProgress": { |
| 81 | +label: "Discord Progress Tool Lines", |
| 82 | +help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery.", |
| 83 | +}, |
68 | 84 | "retry.attempts": { |
69 | 85 | label: "Discord Retry Attempts", |
70 | 86 | help: "Max retry attempts for outbound Discord API calls (default: 3).", |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
1 | 1 | import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers"; |
2 | | -import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-primitives"; |
3 | 2 | import type { ChannelPlugin } from "openclaw/plugin-sdk/channel-core"; |
4 | 3 | import { matrixConfigAdapter } from "./config-adapter.js"; |
5 | | -import { MatrixConfigSchema } from "./config-schema.js"; |
| 4 | +import { MatrixChannelConfigSchema } from "./config-schema.js"; |
6 | 5 | import { resolveMatrixAccount, type ResolvedMatrixAccount } from "./matrix/accounts.js"; |
7 | 6 | import { createMatrixSetupWizardProxy, matrixSetupAdapter } from "./setup-core.js"; |
8 | 7 | |
@@ -32,7 +31,7 @@ export const matrixSetupPlugin: ChannelPlugin<ResolvedMatrixAccount> = {
|
32 | 31 | media: true, |
33 | 32 | }, |
34 | 33 | reload: { configPrefixes: ["channels.matrix"] }, |
35 | | -configSchema: buildChannelConfigSchema(MatrixConfigSchema), |
| 34 | +configSchema: MatrixChannelConfigSchema, |
36 | 35 | config: { |
37 | 36 | ...matrixConfigAdapter, |
38 | 37 | isConfigured: (account) => account.configured, |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -3,7 +3,6 @@ import {
|
3 | 3 | adaptScopedAccountAccessor, |
4 | 4 | createScopedDmSecurityResolver, |
5 | 5 | } from "openclaw/plugin-sdk/channel-config-helpers"; |
6 | | -import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-primitives"; |
7 | 6 | import type { ChannelDoctorAdapter } from "openclaw/plugin-sdk/channel-contract"; |
8 | 7 | import { createChatChannelPlugin, type ChannelPlugin } from "openclaw/plugin-sdk/channel-core"; |
9 | 8 | import { |
@@ -33,7 +32,7 @@ import { matrixMessageActions } from "./actions.js";
|
33 | 32 | import { matrixApprovalCapability } from "./approval-native.js"; |
34 | 33 | import { createMatrixPairingText, createMatrixProbeAccount } from "./channel-account-paths.js"; |
35 | 34 | import { DEFAULT_ACCOUNT_ID, matrixConfigAdapter } from "./config-adapter.js"; |
36 | | -import { MatrixConfigSchema } from "./config-schema.js"; |
| 35 | +import { MatrixChannelConfigSchema } from "./config-schema.js"; |
37 | 36 | import { |
38 | 37 | legacyConfigRules as MATRIX_LEGACY_CONFIG_RULES, |
39 | 38 | normalizeCompatibilityConfig as normalizeMatrixCompatibilityConfig, |
@@ -341,7 +340,7 @@ export const matrixPlugin: ChannelPlugin<ResolvedMatrixAccount, MatrixProbe> =
|
341 | 340 | }, |
342 | 341 | }, |
343 | 342 | reload: { configPrefixes: ["channels.matrix"] }, |
344 | | -configSchema: buildChannelConfigSchema(MatrixConfigSchema), |
| 343 | +configSchema: MatrixChannelConfigSchema, |
345 | 344 | config: { |
346 | 345 | ...matrixConfigAdapter, |
347 | 346 | isConfigured: (account) => account.configured, |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-primitives"; |
1 | 2 | import { |
2 | 3 | AllowFromListSchema, |
3 | 4 | buildNestedDmConfigSchema, |
@@ -8,6 +9,7 @@ import {
|
8 | 9 | } from "openclaw/plugin-sdk/channel-config-schema"; |
9 | 10 | import { buildSecretInputSchema } from "openclaw/plugin-sdk/secret-input"; |
10 | 11 | import { z } from "openclaw/plugin-sdk/zod"; |
| 12 | +import { matrixChannelConfigUiHints } from "./config-ui-hints.js"; |
11 | 13 | |
12 | 14 | const matrixActionSchema = z |
13 | 15 | .object({ |
@@ -137,3 +139,7 @@ export const MatrixConfigSchema = z.object({
|
137 | 139 | rooms: z.object({}).catchall(matrixRoomSchema).optional(), |
138 | 140 | actions: matrixActionSchema, |
139 | 141 | }); |
| 142 | + |
| 143 | +export const MatrixChannelConfigSchema = buildChannelConfigSchema(MatrixConfigSchema, { |
| 144 | +uiHints: matrixChannelConfigUiHints, |
| 145 | +}); |
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import type { ChannelConfigUiHint } from "openclaw/plugin-sdk/channel-core"; |
| 2 | + |
| 3 | +export const matrixChannelConfigUiHints = { |
| 4 | +"streaming.progress.label": { |
| 5 | +label: "Matrix Progress Label", |
| 6 | +help: 'Initial progress draft title. Use "auto" for built-in single-word labels, a custom string, or false to hide the title.', |
| 7 | +}, |
| 8 | +"streaming.progress.labels": { |
| 9 | +label: "Matrix Progress Label Pool", |
| 10 | +help: 'Candidate labels for streaming.progress.label="auto". Leave unset to use OpenClaw built-in progress labels.', |
| 11 | +}, |
| 12 | +"streaming.progress.maxLines": { |
| 13 | +label: "Matrix Progress Max Lines", |
| 14 | +help: "Maximum number of compact progress lines to keep below the draft label (default: 8).", |
| 15 | +}, |
| 16 | +"streaming.progress.toolProgress": { |
| 17 | +label: "Matrix Progress Tool Lines", |
| 18 | +help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery.", |
| 19 | +}, |
| 20 | +} satisfies Record<string, ChannelConfigUiHint>; |
| Original file line number | Diff line number | Diff line change |
|---|
@@ -17,4 +17,16 @@ export const msTeamsChannelConfigUiHints = {
|
17 | 17 | label: "MS Teams Progress Label", |
18 | 18 | help: 'Initial progress title. Use "auto" for built-in single-word labels, a custom string, or false to hide the title.', |
19 | 19 | }, |
| 20 | +"streaming.progress.labels": { |
| 21 | +label: "MS Teams Progress Label Pool", |
| 22 | +help: 'Candidate labels for streaming.progress.label="auto". Leave unset to use OpenClaw built-in progress labels.', |
| 23 | +}, |
| 24 | +"streaming.progress.maxLines": { |
| 25 | +label: "MS Teams Progress Max Lines", |
| 26 | +help: "Maximum number of compact progress lines to keep below the progress title (default: 8).", |
| 27 | +}, |
| 28 | +"streaming.progress.toolProgress": { |
| 29 | +label: "MS Teams Progress Tool Lines", |
| 30 | +help: "Show compact tool/progress lines in progress mode (default: true). Set false to keep only the title until final delivery.", |
| 31 | +}, |
20 | 32 | } satisfies Record<string, ChannelConfigUiHint>; |
| Original file line number | Diff line number | Diff line change |
|---|
@@ -117,6 +117,22 @@ export const slackChannelConfigUiHints = {
|
117 | 117 | label: "Slack Draft Tool Progress", |
118 | 118 | help: "Show tool/progress activity in the live draft preview message (default: true). Set false to keep tool updates as separate messages.", |
119 | 119 | }, |
| 120 | +"streaming.progress.label": { |
| 121 | +label: "Slack Progress Label", |
| 122 | +help: 'Initial progress draft title. Use "auto" for built-in single-word labels, a custom string, or false to hide the title.', |
| 123 | +}, |
| 124 | +"streaming.progress.labels": { |
| 125 | +label: "Slack Progress Label Pool", |
| 126 | +help: 'Candidate labels for streaming.progress.label="auto". Leave unset to use OpenClaw built-in progress labels.', |
| 127 | +}, |
| 128 | +"streaming.progress.maxLines": { |
| 129 | +label: "Slack Progress Max Lines", |
| 130 | +help: "Maximum number of compact progress lines to keep below the draft label (default: 8).", |
| 131 | +}, |
| 132 | +"streaming.progress.toolProgress": { |
| 133 | +label: "Slack Progress Tool Lines", |
| 134 | +help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery.", |
| 135 | +}, |
120 | 136 | "thread.historyScope": { |
121 | 137 | label: "Slack Thread History Scope", |
122 | 138 | help: 'Scope for Slack thread history context ("thread" isolates per thread; "channel" reuses channel history).', |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -73,6 +73,22 @@ export const telegramChannelConfigUiHints = {
|
73 | 73 | label: "Telegram Draft Tool Progress", |
74 | 74 | help: "Show tool/progress activity in the live draft preview message (default: true when preview streaming is active). Set false to keep tool updates out of the edited Telegram preview.", |
75 | 75 | }, |
| 76 | +"streaming.progress.label": { |
| 77 | +label: "Telegram Progress Label", |
| 78 | +help: 'Initial progress draft title. Use "auto" for built-in single-word labels, a custom string, or false to hide the title.', |
| 79 | +}, |
| 80 | +"streaming.progress.labels": { |
| 81 | +label: "Telegram Progress Label Pool", |
| 82 | +help: 'Candidate labels for streaming.progress.label="auto". Leave unset to use OpenClaw built-in progress labels.', |
| 83 | +}, |
| 84 | +"streaming.progress.maxLines": { |
| 85 | +label: "Telegram Progress Max Lines", |
| 86 | +help: "Maximum number of compact progress lines to keep below the draft label (default: 8).", |
| 87 | +}, |
| 88 | +"streaming.progress.toolProgress": { |
| 89 | +label: "Telegram Progress Tool Lines", |
| 90 | +help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery.", |
| 91 | +}, |
76 | 92 | "retry.attempts": { |
77 | 93 | label: "Telegram Retry Attempts", |
78 | 94 | help: "Max retry attempts for outbound Telegram API calls (default: 3).", |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。