Robin Waslander
3847ace25b
fix(telegram): preserve forum topic routing for /new and /reset ( #56654 )
...
Build a topic-qualified routing target (telegram:<chatId>:topic:<threadId>)
for native commands in forum groups so /new and /reset stay scoped to
the active topic instead of falling back to General.
General topic (threadId=1) correctly falls through to the base chat
target since Telegram rejects message_thread_id=1 on sends.
Add regression tests for topic routing and General topic edge case.
Fixes #35963
2026-03-29 00:21:41 +01:00
Robin Waslander
4d6c8edd74
fix(telegram): skip empty text replies instead of crashing with GrammyError 400 ( #56620 )
...
Filter whitespace-only text chunks at the bot delivery fan-in before
they reach sendTelegramText(). Covers normal text replies, follow-up
text, and voice fallback text paths.
Media-only replies are unaffected. message_sent hook still fires with
success: false for suppressed empty replies.
Fixes #37278
2026-03-28 22:27:56 +01:00
Robin Waslander
ab2ef7bbfc
fix(telegram): split long messages at word boundaries instead of mid-word ( #56595 )
...
Replace proportional text estimate with binary search for the largest
text prefix whose rendered Telegram HTML fits the character limit, then
split at the last whitespace boundary within that verified prefix.
Single words longer than the limit still hard-split (unavoidable).
Markdown formatting stays balanced across split points.
Fixes #36644
2026-03-28 21:24:59 +01:00
Robin Waslander
865160e572
fix(telegram): validate replyToMessageId before sending to Telegram API ( #56587 )
...
Add shared normalizeTelegramReplyToMessageId() that rejects non-numeric,
NaN, and mixed-content strings before they reach the Telegram Bot API.
Apply at all four API sinks: direct send, bot delivery, draft stream,
and bot helpers.
Prevents GrammyError 400 when non-numeric values from session metadata
slip through typed boundaries.
Fixes #37222
2026-03-28 20:47:10 +01:00
Saurabh Mishra
90e82fabb3
fix: display model name instead of ID in Telegram model selector ( #56165 ) ( #56175 )
...
* fix: display model name instead of ID in Telegram model selector (#56165 )
* fix(telegram): scope model display names by provider
Signed-off-by: sallyom <somalley@redhat.com>
---------
Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-03-28 09:23:09 -04:00
Ayaan Zaidi
5f82741d0f
test: align telegram thread binding seam coverage
2026-03-28 14:17:09 +05:30
Ayaan Zaidi
8366c74ccd
test: mock telegram conversation route seam
2026-03-28 13:17:57 +05:30
Peter Steinberger
2fd1a5274a
fix: add getChat to telegram media test harness
2026-03-28 07:14:48 +00:00
Peter Steinberger
5802d112da
refactor: narrow telegram test mocks off infra runtime
2026-03-28 06:56:41 +00:00
Peter Steinberger
61936938e9
refactor: move test harnesses off infra runtime
2026-03-28 06:52:06 +00:00
Peter Steinberger
922c90e9fa
refactor: add approval runtime sdk seam
2026-03-28 06:33:07 +00:00
Peter Steinberger
0d98ce1065
refactor: add diagnostic and error runtime sdk seams
2026-03-28 06:26:38 +00:00
Peter Steinberger
1db1c75a98
refactor: trim state persistence runtime seams
2026-03-28 06:08:18 +00:00
Peter Steinberger
c222a44e6f
refactor: add retry runtime sdk seam
2026-03-28 05:59:07 +00:00
Peter Steinberger
a126d23f0d
refactor: add fetch runtime sdk seam
2026-03-28 05:44:33 +00:00
Peter Steinberger
49f693d06a
refactor: widen webhook request guard sdk seam
2026-03-28 05:28:10 +00:00
Peter Steinberger
be31e7aa4c
fix: unblock telegram typing and topic runtime builds
2026-03-28 04:58:34 +00:00
Ayaan Zaidi
fe679f0a90
fix(telegram): tighten reaction typings
2026-03-28 10:28:24 +05:30
Peter Steinberger
dc87ffa46d
fix(ci): guard telegram native command auth typing
2026-03-28 04:55:26 +00:00
Peter Steinberger
090a767754
fix: tighten telegram runtime type guards
2026-03-28 04:53:26 +00:00
Peter Steinberger
222ba9f174
fix(ci): tighten telegram and typing test types
2026-03-28 04:49:21 +00:00
Peter Steinberger
324c621ebe
fix(ci): align telegram runtime and test drift
2026-03-28 04:41:23 +00:00
Tak Hoffman
84af16e9c7
fix(regression): handle telegram command error envelopes
2026-03-27 23:36:37 -05:00
Ayaan Zaidi
6949e17429
refactor(telegram): simplify transport typing
2026-03-28 10:05:11 +05:30
Tak Hoffman
411494faa8
fix(regression): guard malformed telegram reaction payloads
2026-03-27 23:34:09 -05:00
Ayaan Zaidi
8465ddc1cc
refactor(telegram): tighten helper field readers
2026-03-28 09:57:46 +05:30
Ayaan Zaidi
f9aa226d93
refactor(telegram): simplify action button parsing
2026-03-28 09:57:46 +05:30
Ayaan Zaidi
ed441b180b
refactor(telegram): simplify message helper parsing
2026-03-28 09:57:46 +05:30
Ayaan Zaidi
39829b5dc6
refactor(telegram): unify inline button capability parsing
2026-03-28 09:52:21 +05:30
Ayaan Zaidi
4a014083ff
refactor(telegram): tighten api result typings
2026-03-28 09:52:21 +05:30
Ayaan Zaidi
9905f39e9d
refactor(telegram): unify chat metadata parsing
2026-03-28 09:52:21 +05:30
Tak Hoffman
a4c64d82f8
fix(regression): preserve telegram pairing account context
2026-03-27 23:15:23 -05:00
Ayaan Zaidi
efef319496
refactor(telegram): tighten chat action typings
2026-03-28 09:41:18 +05:30
Ayaan Zaidi
4018d04d56
refactor(telegram): simplify runtime handler typing
2026-03-28 09:41:18 +05:30
Ayaan Zaidi
3a2bf0aa1f
refactor(telegram): share chat lookup types
2026-03-28 09:41:18 +05:30
Peter Steinberger
cc9b2df97c
test: stabilize telegram stalled-runner restart assertion
2026-03-28 03:51:16 +00:00
Peter Steinberger
550c51bb6e
refactor: route telegram bot deps through channel runtime
2026-03-28 03:42:37 +00:00
Peter Steinberger
b34b03dd9e
refactor: move channel dedupe helpers onto core sdk
2026-03-28 02:58:45 +00:00
Peter Steinberger
68416fdf83
refactor(acp): generalize message-channel binds
2026-03-28 02:53:54 +00:00
Peter Steinberger
491969efb0
refactor: route channel activity through channel runtime
2026-03-28 02:53:03 +00:00
Peter Steinberger
b171e42117
refactor: move telegram timing helpers onto runtime-env
2026-03-28 02:43:29 +00:00
Peter Steinberger
6a2c5b2b54
refactor: move telegram error formatting onto ssrf runtime
2026-03-28 02:38:02 +00:00
Peter Steinberger
6b4d097b25
refactor: route telegram env helpers through runtime-env
2026-03-28 02:34:11 +00:00
Peter Steinberger
4031bb1914
refactor: trim secret and ssrf helper runtime seams
2026-03-28 02:25:28 +00:00
Peter Steinberger
4ca07559ab
refactor: move provider seams behind plugin sdk surfaces
2026-03-27 23:26:26 +00:00
Peter Steinberger
992b30604d
refactor: move extension-owned tests to extensions
2026-03-27 21:37:09 +00:00
Peter Steinberger
d506eea076
fix(ci): restore contract plugin-sdk source loading
2026-03-27 21:33:32 +00:00
Tak Hoffman
9446ee8ea3
fix(regression): restore Telegram fallback probe coverage
2026-03-27 15:47:16 -05:00
Tak Hoffman
fc570934de
fix(regression): refresh Telegram probe test imports
2026-03-27 15:42:03 -05:00
Tak Hoffman
7772395618
fix(regression): isolate Telegram runtime helper tests
2026-03-27 15:42:03 -05:00