Skip to content

Commit df39e61

Browse files
committed
fix(channels): quiet disabled preview tool progress
1 parent 828d071 commit df39e61

5 files changed

Lines changed: 12 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Docs: https://docs.openclaw.ai
6262
- Google Meet: avoid treating repeated participant words as multiple assistant-overlap matches when suppressing realtime echo transcripts. Thanks @vincentkoc.
6363
- QA/cache: require the full `CACHE-OK <suffix>` marker before live cache probes stop retrying, so suffix-only prose cannot hide a broken probe response. Thanks @vincentkoc.
6464
- Slack/Matrix: avoid creating blank progress-draft messages when `streaming.progress.label=false` and progress tool lines are disabled. Thanks @vincentkoc.
65+
- Slack/Discord: suppress standalone tool-progress chatter when partial preview streaming has `streaming.preview.toolProgress: false`, matching the documented quiet-preview behavior. Thanks @vincentkoc.
6566
- QA/Matrix: keep the mock OpenAI tool-progress provider aligned with exact-marker Matrix prompts so the hardened live preview scenario still forces a deterministic read before final delivery. Thanks @vincentkoc.
6667
- Google Meet: make realtime talk-back agent-driven by default with `realtime.strategy: "agent"`, keep the previous direct bidirectional model behavior available as `realtime.strategy: "bidi"`, route the Meet tab speaker output to `BlackHole 2ch` automatically for local Chrome realtime joins, coalesce nearby speech transcript fragments before consulting the agent, and avoid cutting off agent speech from server VAD or stale playback pipe errors.
6768
- Google Meet: suppress queued assistant playback and assistant-like transcript echoes from the realtime input path, so the meeting does not hear the agent's own speech as a new user turn and loop or cut itself off.

extensions/discord/src/monitor/message-handler.process.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,7 +1561,7 @@ describe("processDiscordMessage draft streaming", () => {
15611561
expect(draftStream.forceNewMessage).not.toHaveBeenCalled();
15621562
});
15631563

1564-
it("keeps standalone Discord tool progress when partial preview lines are disabled", async () => {
1564+
it("suppresses standalone Discord tool progress when partial preview lines are disabled", async () => {
15651565
createMockDraftStreamForTest();
15661566

15671567
dispatchInboundMessage.mockImplementationOnce(async () => createNoQueuedDispatchResult());
@@ -1581,7 +1581,7 @@ describe("processDiscordMessage draft streaming", () => {
15811581

15821582
expect(
15831583
dispatchInboundMessage.mock.calls[0]?.[0]?.replyOptions?.suppressDefaultToolProgressMessages,
1584-
).toBeUndefined();
1584+
).toBe(true);
15851585
});
15861586

15871587
it("strips reply tags from preview partials", async () => {

extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,9 @@ vi.mock("openclaw/plugin-sdk/channel-streaming", () => ({
301301
if (entry?.streaming?.mode === "progress") {
302302
return true;
303303
}
304+
if (options?.draftStreamActive === true) {
305+
return true;
306+
}
304307
return options?.previewToolProgressEnabled ?? true;
305308
},
306309
isChannelProgressDraftWorkToolName: (name?: string) =>
@@ -765,7 +768,7 @@ describe("dispatchPreparedSlackMessage preview fallback", () => {
765768
expect(draftStream.update).not.toHaveBeenCalled();
766769
});
767770

768-
it("keeps standalone Slack tool progress when partial preview lines are disabled", async () => {
771+
it("suppresses standalone Slack tool progress when partial preview lines are disabled", async () => {
769772
mockedSlackStreamingMode = "partial";
770773
mockedSlackDraftMode = "replace";
771774
mockedDispatchSequence = [];
@@ -776,7 +779,7 @@ describe("dispatchPreparedSlackMessage preview fallback", () => {
776779
}),
777780
);
778781

779-
expect(capturedReplyOptions?.suppressDefaultToolProgressMessages).toBeUndefined();
782+
expect(capturedReplyOptions?.suppressDefaultToolProgressMessages).toBe(true);
780783
expect(capturedReplyOptions?.onItemEvent).toBeDefined();
781784
});
782785

src/plugin-sdk/channel-streaming.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ describe("channel-streaming", () => {
118118
{ streaming: { mode: "partial", preview: { toolProgress: false } } },
119119
{ draftStreamActive: true },
120120
),
121-
).toBe(false);
121+
).toBe(true);
122122
expect(
123123
resolveChannelStreamingSuppressDefaultToolProgressMessages(
124124
{ streaming: { mode: "partial", preview: { toolProgress: false } } },

src/plugin-sdk/channel-streaming.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,9 @@ export function resolveChannelStreamingSuppressDefaultToolProgressMessages(
448448
if (mode === "progress") {
449449
return true;
450450
}
451+
if (options?.draftStreamActive === true) {
452+
return true;
453+
}
451454
return options?.previewToolProgressEnabled ?? resolveChannelStreamingPreviewToolProgress(entry);
452455
}
453456

0 commit comments

Comments
 (0)