Preserve native Telegram quote attribution in agent-visible input and terminate quotes before following ordinary text.
Co-authored-by: Peter Steinberger <steipete@macos.shared>
Keep Telegram native and typed callback routes under their owning handlers. Expired or malformed typed buttons now clear their controls and return visible unavailable feedback while legacy raw plugin callbacks remain compatible.
Verify Telegram accepted-message topics before follow-up sends, preserving partial-delivery evidence instead of trusting requested routing.
Co-authored-by: Lu Wang <7668944+wangwllu@users.noreply.github.com>
Defer Telegram final-mode text until speech settles, then deliver one captioned voice note or a proven-safe text fallback.
Co-authored-by: Jerry-Xin <jerryxin0@gmail.com>
Prevent stale top-level buttons arguments from silently sending text-only Telegram messages. Point model guidance and docs to typed presentation actions, and reject retired input before delivery.
Require a short-lived, owner-bound launch ticket before minting a Control UI bootstrap token.
Co-authored-by: Val Alexander <68980965+BunsDev@users.noreply.github.com>
Track final delivery outcomes at the Telegram native-command owner so failed finals produce a visible fallback without overriding intentional suppression or partial delivery.
Route public poll votes through Telegram’s authorized inbound turn path while preserving chat/topic origin and durable ordering. Surface unsupported routing without duplicating sent polls.
Co-authored-by: clawSean <260045960+clawSean@users.noreply.github.com>
* fix(telegram): reject malformed table spans
* fix(telegram): preserve spaced fallback colspans
* fix(telegram): simplify strict table-span parsing
Preserve the original contributor fix while reusing the existing strict numeric owner, enforcing complete-decimal span attributes on both Telegram paths, and strengthening sibling regressions. Production LOC remains net zero.
Co-authored-by: qingminlong <0668001063@xydigit.com>
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Release Telegram’s chat lane after structured Codex device-code delivery while account-owned authentication completes safely in the background.
Co-authored-by: Arthur Lacoste <arthurlacoste@users.noreply.github.com>
Use the explicit topic selected by Telegram sends when recording delivery correlation, preventing successful message, poll, and sticker actions from leaving the matching inbound event falsely undelivered.
Preserve readable fallbacks and tell the model when Telegram drops unencodable controls, including recovery guidance.\n\nCo-authored-by: Guoji-XYDT <li.guoji@xydigit.com>
Recover Telegram forum reaction topics from provider-observed message context before authorization, and drop unknown topics instead of routing them to General. Serialize each forum message with its reaction update to avoid cache races. Thanks @vovapetry.
Prevent Telegram long replies from silently losing their tail after definite per-chunk rejections. Preserve accepted message IDs and explicit partial-delivery state across durable, rich fallback, and streamed replies.
Co-authored-by: alfredjbclaw <alfredjbclaw@users.noreply.github.com>
Measure Telegram polling deadlines with a monotonic clock so wall-clock corrections cannot trigger false restarts or negative durations. Preserve the worker deadline and continued-stall recovery.
Co-authored-by: Galin Iliev <Galin.Iliev@microsoft.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
Keep Telegram Bot API deadlines and cancellation active until grammY finishes consuming each response body. Cancel discarded HTTP 421 bodies before retry and cover the stalled group-dispatch boundary with typed socket and live Telegram proof.
Record every accepted Telegram automatic delivery in the scoped sent-message ledger, including finalized streaming previews. This restores bot-owned reaction checks and removes the per-send full-ledger expiry scan.
Preserve already-visible Telegram partial replies when a later run failure occurs. Finalize the same draft with the terminal notice while keeping the reply operation in run_failed state.
Co-authored-by: Dinesh Suthar <dineshsld20@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
* fix(telegram): honor zero DM history while preserving replies
* fix(telegram): apply effective DM history limit end to end
* fix(telegram): keep DM history default private
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
* fix(telegram): apply group media policy before inbound downloads
* test(telegram): consolidate inbound media owner regression matrix
* fix(telegram): format media group ingest
* test(telegram): restore media group policy coverage
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared>