From a057f2f03adf1e2614253c2894cce9f397e79dec Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Fri, 13 Mar 2026 13:31:17 -0700 Subject: [PATCH] Telegram: prefix native command menu callbacks --- src/telegram/bot-native-commands.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/telegram/bot-native-commands.ts b/src/telegram/bot-native-commands.ts index 2bcbebe63fa..3d4dd482cb7 100644 --- a/src/telegram/bot-native-commands.ts +++ b/src/telegram/bot-native-commands.ts @@ -74,6 +74,7 @@ import { resolveTelegramGroupPromptSettings } from "./group-config-helpers.js"; import { buildInlineKeyboard } from "./send.js"; const EMPTY_RESPONSE_FALLBACK = "No response generated. Please try again."; +const TELEGRAM_NATIVE_COMMAND_CALLBACK_PREFIX = "tgcmd:"; type TelegramNativeCommandContext = Context & { match?: string }; @@ -142,6 +143,18 @@ type RegisterTelegramNativeCommandsParams = { opts: { token: string }; }; +export function buildTelegramNativeCommandCallbackData(commandText: string): string { + return `${TELEGRAM_NATIVE_COMMAND_CALLBACK_PREFIX}${commandText}`; +} + +export function parseTelegramNativeCommandCallbackData(data: string): string | null { + if (!data.startsWith(TELEGRAM_NATIVE_COMMAND_CALLBACK_PREFIX)) { + return null; + } + const commandText = data.slice(TELEGRAM_NATIVE_COMMAND_CALLBACK_PREFIX.length).trim(); + return commandText || null; +} + async function resolveTelegramCommandAuth(params: { msg: NonNullable; bot: Bot; @@ -632,7 +645,9 @@ export const registerTelegramNativeCommands = ({ }; return { text: choice.label, - callback_data: buildCommandTextFromArgs(commandDefinition, args), + callback_data: buildTelegramNativeCommandCallbackData( + buildCommandTextFromArgs(commandDefinition, args), + ), }; }), );