fix(telegram): restore DM draft streaming

This commit is contained in:
Ayaan Zaidi
2026-03-08 08:18:01 +05:30
committed by Ayaan Zaidi
parent 56cd0084d9
commit e45fcc57ed
2 changed files with 34 additions and 10 deletions

View File

@@ -190,22 +190,19 @@ export const dispatchTelegramMessage = async ({
const draftReplyToMessageId =
replyToMode !== "off" && typeof msg.message_id === "number" ? msg.message_id : undefined;
const draftMinInitialChars = DRAFT_MIN_INITIAL_CHARS;
// Use message transport (sendMessage + editMessageText) for all lanes in
// DMs so that streamMessageId is tracked. Draft transport doesn't track a
// messageId, causing resolvePreviewTarget() to miss the preview on final
// delivery — which sends a duplicate message. (Fixes #33453)
const useMessagePreviewTransportForDm = threadSpec?.scope === "dm" && canStreamAnswerDraft;
const mediaLocalRoots = getAgentScopedMediaLocalRoots(cfg, route.agentId);
const archivedAnswerPreviews: ArchivedPreview[] = [];
const archivedReasoningPreviewIds: number[] = [];
const createDraftLane = (laneName: LaneName, enabled: boolean): DraftLaneState => {
const useMessagePreviewTransportForDmReasoning =
laneName === "reasoning" && threadSpec?.scope === "dm" && canStreamAnswerDraft;
const stream = enabled
? createTelegramDraftStream({
api: bot.api,
chatId,
maxChars: draftMaxChars,
thread: threadSpec,
previewTransport: useMessagePreviewTransportForDm ? "message" : "auto",
previewTransport: useMessagePreviewTransportForDmReasoning ? "message" : "auto",
replyToMessageId: draftReplyToMessageId,
minInitialChars: draftMinInitialChars,
renderText: renderDraftPreview,