diff --git a/src/channels/telegram/adapter.ts b/src/channels/telegram/adapter.ts index 340fd2a..b00f825 100644 --- a/src/channels/telegram/adapter.ts +++ b/src/channels/telegram/adapter.ts @@ -300,6 +300,7 @@ export class TelegramAdapter implements ChannelAdapter { const fileData = await this.downloadFileToBase64(voice.file_id); if (!fileData) { console.error(`Failed to download voice message ${voice.file_id}`); + await ctx.reply('Sorry, I couldn\'t download your voice message. Please try again.', { reply_parameters: { message_id: ctx.message.message_id } }); return; } @@ -337,6 +338,7 @@ export class TelegramAdapter implements ChannelAdapter { const fileData = await this.downloadFileToBase64(audio.file_id); if (!fileData) { console.error(`Failed to download audio message ${audio.file_id}`); + await ctx.reply('Sorry, I couldn\'t download your audio file. Please try again.', { reply_parameters: { message_id: ctx.message.message_id } }); return; } diff --git a/src/daemon/routing.ts b/src/daemon/routing.ts index fafa98e..39cd3ea 100644 --- a/src/daemon/routing.ts +++ b/src/daemon/routing.ts @@ -254,6 +254,9 @@ export function createMessageRouter(deps: { const transcript = await transcribeAudio(att, audioConfig); messageText = `[Voice message]: ${transcript}\n\n${messageText}`; } + } else { + // No transcription endpoint configured — inform the user gracefully + messageText = `[Voice message received but audio transcription is not configured. Please configure the audio section in config.yaml to enable voice message support.]`; } // Remove audio attachments so buildUserMessage doesn't create audio content parts attachments = (msg.attachments ?? []).filter((a: Attachment) => !isSupportedAudio(a));