diff --git a/extensions/telegram/src/outbound-adapter.ts b/extensions/telegram/src/outbound-adapter.ts index 6b187718ee51..9297c1f1e319 100644 --- a/extensions/telegram/src/outbound-adapter.ts +++ b/extensions/telegram/src/outbound-adapter.ts @@ -35,7 +35,7 @@ import { loadTelegramSendModule, type TelegramSendModule } from "./send-runtime. import { normalizeTelegramOutboundTarget, parseTelegramTarget } from "./targets.js"; export const TELEGRAM_TEXT_CHUNK_LIMIT = 4000; -const TELEGRAM_POLL_OPTION_LIMIT = 10; +const TELEGRAM_POLL_OPTION_LIMIT = 12; type TelegramSendFn = typeof import("./send.js").sendMessageTelegram; type TelegramSendOpts = Parameters[2]; diff --git a/extensions/telegram/src/send.test.ts b/extensions/telegram/src/send.test.ts index 057073eef4b6..8c40bb82cb0f 100644 --- a/extensions/telegram/src/send.test.ts +++ b/extensions/telegram/src/send.test.ts @@ -4425,6 +4425,21 @@ describe("editMessageTelegram", () => { }); describe("sendPollTelegram", () => { + it("sends polls with 12 options", async () => { + const api = { + sendPoll: vi.fn(async () => ({ message_id: 123, chat: { id: 555 }, poll: { id: "p1" } })), + }; + const options = Array.from({ length: 12 }, (_, index) => `Option ${index + 1}`); + + await sendPollTelegram( + "123", + { question: "Q", options }, + { cfg: TELEGRAM_TEST_CFG, token: "t", api: api as unknown as Bot["api"] }, + ); + + expect(firstMockCall(api.sendPoll, "send poll call")[2]).toEqual(options); + }); + it("propagates gateway client scopes when resolving legacy poll targets", async () => { const api = { getChat: vi.fn(async () => ({ id: -100321 })), diff --git a/extensions/telegram/src/send.ts b/extensions/telegram/src/send.ts index 9cc00b2f88a3..d3de6878f1dc 100644 --- a/extensions/telegram/src/send.ts +++ b/extensions/telegram/src/send.ts @@ -2384,7 +2384,7 @@ async function sendPollTelegramWithContext( }); // Normalize the poll input (validates question, options, maxSelections) - const normalizedPoll = normalizePollInput(poll, { maxOptions: 10 }); + const normalizedPoll = normalizePollInput(poll, { maxOptions: 12 }); const threadParams = buildTelegramThreadReplyParams({ thread: resolveTelegramSendThreadSpec({ diff --git a/extensions/telegram/src/telegram-outbound.test.ts b/extensions/telegram/src/telegram-outbound.test.ts index dafd980db88b..68fdcc1289ef 100644 --- a/extensions/telegram/src/telegram-outbound.test.ts +++ b/extensions/telegram/src/telegram-outbound.test.ts @@ -30,7 +30,7 @@ describe("telegramPlugin outbound", () => { expect(telegramOutbound.presentationCapabilities?.limits?.text?.markdownDialect).toBe( "markdown", ); - expect(telegramOutbound.pollMaxOptions).toBe(10); + expect(telegramOutbound.pollMaxOptions).toBe(12); }); it("strips assistant-visible tool traces before outbound delivery", () => {