fix: keep channel typing active during long inference (#25886, thanks @stakeswky)

Co-authored-by: stakeswky <stakeswky@users.noreply.github.com>
This commit is contained in:
Peter Steinberger
2026-02-25 02:03:15 +00:00
parent dcd90438ec
commit e0201c2774
10 changed files with 111 additions and 16 deletions

View File

@@ -418,6 +418,18 @@ export const dispatchTelegramMessage = async ({
void statusReactionController.setThinking();
}
const typingCallbacks = createTypingCallbacks({
start: sendTyping,
onStartError: (err) => {
logTypingFailure({
log: logVerbose,
channel: "telegram",
target: String(chatId),
error: err,
});
},
});
try {
({ queuedFinal } = await dispatchReplyWithBufferedBlockDispatcher({
ctx: ctxPayload,
@@ -528,17 +540,9 @@ export const dispatchTelegramMessage = async ({
deliveryState.markNonSilentFailure();
runtime.error?.(danger(`telegram ${info.kind} reply failed: ${String(err)}`));
},
onReplyStart: createTypingCallbacks({
start: sendTyping,
onStartError: (err) => {
logTypingFailure({
log: logVerbose,
channel: "telegram",
target: String(chatId),
error: err,
});
},
}).onReplyStart,
onReplyStart: typingCallbacks.onReplyStart,
onIdle: typingCallbacks.onIdle,
onCleanup: typingCallbacks.onCleanup,
},
replyOptions: {
skillFilter,