Peter Steinberger
b8f861364c
fix(telegram): preserve unsent media while deduplicating streamed replies ( #121141 )
...
* fix(telegram): preserve unsent media while deduplicating streamed replies
## What Problem This Solves
A Telegram final reply could resend an attachment already delivered in a streamed block when the legacy mediaUrl still referenced that sent attachment while another mediaUrls item remained. Conversely, unsent legacy-only attachments must not be discarded.
## Why This Change Was Made
The Telegram media-deduplication owner now clears mediaUrl only when its normalized attachment was actually sent, preserving independently unsent legacy attachments and preventing downstream outbound planning from restoring delivered media.
## User Impact
Telegram replies retain every unsent attachment exactly once and no longer duplicate already streamed images in mixed final-message payloads.
## Context
Seven zero-dependency scenarios passed against the actual media owner and outbound planner, including mixed legacy/vector attachments, whitespace normalization, visible-send handling, and remaining-media preservation. The exact frozen campaign baseline passed 844 tests. Existing oxfmt formatting and staged whitespace checks passed; focused Vitest CI remains pending.
* refactor(telegram): inline legacy media dedup check
2026-08-09 22:57:21 -07:00
..
2026-08-09 06:00:06 -07:00
2026-08-09 03:05:47 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 07:37:52 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 15:30:38 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 02:09:01 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 20:45:15 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 18:48:49 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 08:48:48 -07:00
2026-08-08 11:01:34 -07:00
2026-08-09 16:32:18 -07:00
2026-08-08 21:14:16 -07:00
2026-08-09 19:50:50 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 08:48:48 -07:00
2026-08-09 10:46:09 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 11:51:34 -07:00
2026-08-09 18:48:49 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 18:23:15 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 06:00:06 -07:00
2026-08-09 08:48:48 -07:00
2026-08-09 07:21:35 -07:00
2026-08-09 18:28:14 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 18:23:15 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 19:01:38 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 02:21:33 -07:00
2026-08-09 04:50:18 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 07:37:52 -07:00
2026-08-09 18:48:49 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 08:48:48 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 13:33:30 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 11:44:18 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 13:29:18 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 18:48:49 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 22:01:44 -07:00
2026-08-09 07:07:47 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 19:01:38 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 13:30:18 -07:00
2026-08-09 18:48:49 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 20:40:11 -07:00
2026-08-09 06:00:06 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 18:59:23 -07:00
2026-08-07 18:44:12 -07:00
2026-08-10 10:39:22 +05:30
2026-08-07 18:44:12 -07:00
2026-08-08 22:01:44 -07:00
2026-08-08 17:51:31 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 18:23:15 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 22:42:45 -07:00
2026-08-09 11:16:59 -07:00
2026-08-09 19:01:38 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 06:00:06 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 21:14:16 -07:00
2026-08-09 03:05:47 -07:00
2026-08-07 18:44:12 -07:00
2026-08-10 10:14:24 +08:00
2026-08-07 18:44:12 -07:00
2026-08-09 20:18:31 +05:30
2026-08-07 18:44:12 -07:00
2026-08-09 06:00:06 -07:00
2026-08-08 20:28:58 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 23:09:24 -07:00
2026-08-10 03:42:59 +00:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 13:29:18 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 19:43:49 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 02:13:17 -07:00
2026-08-09 22:57:21 -07:00
2026-08-07 18:44:12 -07:00
2026-08-08 22:01:44 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 08:48:48 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 11:44:18 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 08:48:48 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 18:48:49 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-07 18:44:12 -07:00
2026-08-09 15:46:18 -07:00
2026-08-08 20:28:58 -07:00
2026-08-09 19:01:49 -06:00
2026-08-08 21:14:16 -07:00
2026-08-08 21:14:16 -07:00
2026-08-09 17:22:00 -07:00
2026-08-08 20:28:58 -07:00
2026-08-09 02:13:17 -07:00
2026-07-25 21:51:47 -07:00
2026-08-01 09:11:09 -07:00
2026-08-09 19:01:49 -06:00
2026-07-25 21:51:47 -07:00