Skip to content

Commit 8941ca0

Browse files
fix(telegram): address progress preview review
1 parent d824862 commit 8941ca0

4 files changed

Lines changed: 36 additions & 24 deletions

File tree

docs/concepts/progress-drafts.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -95,29 +95,29 @@ normal block delivery. Use `streaming.block.enabled` or legacy
9595
Progress labels live under `channels.<channel>.streaming.progress`.
9696

9797
The default label is `auto`, which chooses from OpenClaw's built-in
98-
single-word-with-ellipsis label pool:
98+
single-word label pool:
9999

100100
```text
101101
Working
102-
Shelling...
103-
Scuttling...
104-
Clawing...
105-
Pinching...
106-
Molting...
107-
Bubbling...
108-
Tiding...
109-
Reefing...
110-
Cracking...
111-
Sifting...
112-
Brining...
113-
Nautiling...
114-
Krilling...
115-
Barnacling...
116-
Lobstering...
117-
Tidepooling...
118-
Pearling...
119-
Snapping...
120-
Surfacing...
102+
Shelling
103+
Scuttling
104+
Clawing
105+
Pinching
106+
Molting
107+
Bubbling
108+
Tiding
109+
Reefing
110+
Cracking
111+
Sifting
112+
Brining
113+
Nautiling
114+
Krilling
115+
Barnacling
116+
Lobstering
117+
Tidepooling
118+
Pearling
119+
Snapping
120+
Surfacing
121121
```
122122

123123
Use a fixed label:

extensions/telegram/src/bot-message-dispatch.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,9 @@ export const dispatchTelegramMessage = async ({
658658
return true;
659659
};
660660
const progressDraftGate = createChannelProgressDraftGate({
661-
onStart: () => renderProgressDraft({ flush: true }),
661+
onStart: async () => {
662+
await renderProgressDraft({ flush: true });
663+
},
662664
});
663665
const pushStreamToolProgress = async (
664666
line?: string | ChannelProgressDraftLine,

scripts/dev/channel-message-flows.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from "../../extensions/telegram/runtime-api.js";
1010
import { resolveTelegramAccount } from "../../extensions/telegram/src/accounts.js";
1111
import { normalizeTelegramApiRoot } from "../../extensions/telegram/src/api-root.js";
12+
import type { TelegramThreadSpec } from "../../extensions/telegram/src/bot/helpers.js";
1213
import {
1314
createTelegramDraftStream,
1415
type TelegramDraftStream,
@@ -226,6 +227,10 @@ function createTelegramFlowApi(params: { accountId?: string; cfg: OpenClawConfig
226227
} as Bot["api"];
227228
}
228229

230+
export function resolveTelegramFlowThreadSpec(threadId?: number): TelegramThreadSpec | undefined {
231+
return typeof threadId === "number" ? { id: threadId, scope: "forum" } : undefined;
232+
}
233+
229234
function createDefaultTelegramDraftStream(params: {
230235
accountId?: string;
231236
cfg: OpenClawConfig;
@@ -240,8 +245,7 @@ function createDefaultTelegramDraftStream(params: {
240245
parseMode: "HTML",
241246
text: renderTelegramHtmlText(text, { textMode: "markdown" }),
242247
}),
243-
thread:
244-
typeof params.threadId === "number" ? { id: params.threadId, scope: "forum" } : undefined,
248+
thread: resolveTelegramFlowThreadSpec(params.threadId),
245249
throttleMs: 250,
246250
});
247251
}
@@ -276,7 +280,7 @@ function createDefaultNativeToolProgressDraft(params: {
276280
const draft = createNativeTelegramToolProgressDraft({
277281
api: createTelegramNativeDraftApi(params),
278282
chatId: params.target,
279-
thread: typeof params.threadId === "number" ? { id: params.threadId, scope: "dm" } : undefined,
283+
thread: resolveTelegramFlowThreadSpec(params.threadId),
280284
});
281285
if (!draft) {
282286
throw new Error("Telegram Bot API client does not expose sendMessageDraft.");

test/scripts/channel-message-flows.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { describe, expect, it, vi } from "vitest";
22
import {
33
parseChannelMessageFlowArgs,
4+
resolveTelegramFlowThreadSpec,
45
runTelegramThinkingFinalFlow,
56
runTelegramWorkingFinalFlow,
67
} from "../../scripts/dev/channel-message-flows.ts";
@@ -174,4 +175,9 @@ describe("channel message flows dev runner", () => {
174175
expect(sleep).toHaveBeenCalledWith(2_000);
175176
expect(result.previewUpdates).toBe(7);
176177
});
178+
179+
it("maps flow thread ids to Telegram forum topic specs", () => {
180+
expect(resolveTelegramFlowThreadSpec(42)).toEqual({ id: 42, scope: "forum" });
181+
expect(resolveTelegramFlowThreadSpec()).toBeUndefined();
182+
});
177183
});

0 commit comments

Comments
 (0)