openclaw/src/media
thepagent 0ee11d3321
feat: add --force-document to message.send for Telegram (bypass sendPhoto + image optimizer) (#45111)
* feat: add --force-document to message.send for Telegram

Adds --force-document CLI flag to bypass sendPhoto and use sendDocument
instead, avoiding Telegram image compression for PNG/image files.

- TelegramSendOpts: add forceDocument field
- send.ts: skip sendPhoto when forceDocument=true (mediaSender pattern)
- ChannelOutboundContext: add forceDocument field
- telegramOutbound.sendMedia: pass forceDocument to sendMessageTelegram
- ChannelHandlerParams / DeliverOutboundPayloadsCoreParams: add forceDocument
- createChannelOutboundContextBase: propagate forceDocument
- outbound-send-service.ts: add forceDocument to executeSendAction params
- message-action-runner.ts: read forceDocument from params
- message.ts: add forceDocument to MessageSendParams
- register.send.ts: add --force-document CLI option

* fix: pass forceDocument through telegram action dispatch path

The actual send path goes through dispatchChannelMessageAction ->
telegramMessageActions.handleAction -> handleTelegramAction, not
deliverOutboundPayloads. forceDocument was not being read in
readTelegramSendParams or passed to sendMessageTelegram.

* fix: apply forceDocument to GIF branch to avoid sendAnimation

* fix: add disable_content_type_detection=true to sendDocument for --force-document

* fix: add forceDocument to buildSendSchema for agent discoverability

* fix: scope telegram force-document detection

* test: fix heartbeat target helper typing

* fix: skip image optimization when forceDocument is set

* fix: persist forceDocument in WAL queue for crash-recovery replay

* test: tighten heartbeat target test entry typing

---------

Co-authored-by: thepagent <thepagent@users.noreply.github.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-03-14 19:43:49 +08:00
..
audio-tags.ts
audio.test.ts
audio.ts
base64.test.ts
base64.ts
constants.ts
fetch.telegram-network.test.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
fetch.test.ts
fetch.ts
ffmpeg-exec.test.ts
ffmpeg-exec.ts
ffmpeg-limits.ts
host.test.ts
host.ts
image-ops.helpers.test.ts
image-ops.ts
inbound-path-policy.test.ts
inbound-path-policy.ts
input-files.fetch-guard.test.ts
input-files.ts
load-options.test.ts
load-options.ts feat: add --force-document to message.send for Telegram (bypass sendPhoto + image optimizer) (#45111) 2026-03-14 19:43:49 +08:00
local-roots.ts
mime.test.ts
mime.ts
outbound-attachment.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
parse.test.ts
parse.ts
pdf-extract.ts
png-encode.ts
read-response-with-limit.test.ts
read-response-with-limit.ts
server.outside-workspace.test.ts
server.test.ts
server.ts
sniff-mime-from-base64.ts
store.outside-workspace.test.ts
store.redirect.test.ts
store.test.ts
store.ts
temp-files.ts