zeroclaw/src
NanFengCheong 02b1702a48
fix(telegram): send image attachments when finalizing draft messages
When using streaming mode with Telegram, the finalize_draft function
would only edit the message text and never send actual image attachments
marked with [IMAGE:path] syntax.

This fix:
- Parses attachment markers in finalize_draft
- Deletes the draft message when attachments are present
- Sends text and attachments as separate messages
- Maintains backward compatibility for text-only messages

Fixes: Telegram finalize_draft edit failed; falling back to sendMessage
2026-02-24 16:03:00 +08:00
..
agent feat(agent): log query classification route decisions 2026-02-24 16:02:59 +08:00
approval refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
auth refactor(auth): add Gemini OAuth and consolidate OAuth utilities (DRY) 2026-02-21 18:53:11 +08:00
channels fix(telegram): send image attachments when finalizing draft messages 2026-02-24 16:03:00 +08:00
config feat(config): warn on unknown config keys to prevent silent misconfig (#1410) 2026-02-24 16:02:59 +08:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
daemon fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
doctor Use channels(&self) and channels_except_webhook(&self) 2026-02-21 19:38:19 +08:00
gateway feat: add WATI WhatsApp Business API channel (#1472) 2026-02-23 08:02:00 -05:00
hardware fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
hooks fix(hooks): harden dispatch and outbound message guardrails 2026-02-21 13:34:09 +08:00
integrations feat(providers): add Novita AI as OpenAI-compatible provider (#1496) 2026-02-23 07:58:49 -05:00
memory fix(security): remove sensitive fields from Debug impls 2026-02-20 22:06:21 -08:00
observability fix(observability): add OTLP paths to OTel endpoints 2026-02-21 17:07:31 +08:00
onboard feat(models): add list, set, and status subcommands 2026-02-24 16:03:00 +08:00
peripherals fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
providers fix(ollama): handle blank responses without tool calls 2026-02-24 16:02:59 +08:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime docs(code): expand doc comments on security, observability, runtime, and peripheral traits 2026-02-19 13:19:46 -08:00
security fix(security): honor explicit command paths in allowed_commands 2026-02-24 16:02:59 +08:00
service fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills fix(skills): allow cross-skill references in open-skills audit 2026-02-24 16:02:59 +08:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tools fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tunnel feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs feat(skills): enforce static security audit for skill install/load 2026-02-21 22:54:55 +08:00
main.rs feat(models): add list, set, and status subcommands 2026-02-24 16:03:00 +08:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00