Commit Graph

1238 Commits

Author SHA1 Message Date
Peter Steinberger
7a954b6d61 refactor: move imessage caches to sqlite 2026-05-10 06:04:39 +01:00
Peter Steinberger
d3214957e5 refactor: migrate telegram message cache state 2026-05-10 06:04:39 +01:00
Peter Steinberger
a6193a7402 refactor: remove legacy session store remnants 2026-05-10 06:04:39 +01:00
Peter Steinberger
4c05af755f refactor: use transcript locator sdk helper 2026-05-10 06:04:39 +01:00
Peter Steinberger
89f401834f refactor: preserve sqlite topic transcript locators 2026-05-10 06:04:38 +01:00
Peter Steinberger
4db36bf370 refactor: drop legacy transcript path builders 2026-05-10 06:04:38 +01:00
Peter Steinberger
511ec9b28d refactor: clarify cron sqlite store keys 2026-05-10 06:04:36 +01:00
Peter Steinberger
b4c623c8af chore: clear sqlite session cleanup lint 2026-05-10 06:04:34 +01:00
Peter Steinberger
84fd7e7e5c refactor: use sqlite locators for transient sessions 2026-05-10 06:04:34 +01:00
Peter Steinberger
154cc124b8 refactor: use sqlite transcript locators 2026-05-10 06:04:34 +01:00
Peter Steinberger
dc23c2ee5b refactor: update cron jobs by sqlite row 2026-05-10 06:04:33 +01:00
Peter Steinberger
fdbfa1bffc refactor: finish database-first state migration 2026-05-10 06:04:32 +01:00
Peter Steinberger
5920fae89c test: remove extension session store path fixtures 2026-05-10 06:04:32 +01:00
Peter Steinberger
465c128c8f test: remove legacy session store fixtures 2026-05-10 06:04:30 +01:00
Peter Steinberger
003dfb4821 refactor: move channel pairing state to sqlite 2026-05-10 06:04:29 +01:00
Peter Steinberger
b707ab10a4 refactor: simplify session store loads 2026-05-10 06:04:28 +01:00
Peter Steinberger
115d0266eb refactor: move agent runtime state toward piless 2026-05-10 06:04:28 +01:00
Ayaan Zaidi
1b38f80088 fix(telegram): cool down unhealthy transports 2026-05-10 10:16:59 +05:30
Brandon Zarnitz
86b53aa2ca fix(telegram): suppress silent-reply rewrite in DM no-response turns (#78188)
When a Telegram turn ends with no visible final response, the dispatcher synthesized a NO_REPLY payload that silent-reply rewrite could turn into visible DM chatter such as "All quiet on my side."

Gate that synthesized fallback on group chats. DMs with no queued final response now stay quiet, while group/forum fallback behavior remains available when policy asks for a visible rewrite.

Tests:
- pnpm test extensions/telegram/src/bot-message-dispatch.test.ts
- pnpm check:changed
2026-05-10 09:56:00 +05:30
Peter Steinberger
a0fb7fb045 refactor: centralize channel ingress access 2026-05-10 00:18:36 -04:00
Ayaan Zaidi
175c42eacd fix(telegram): tighten select callback handling 2026-05-10 08:59:39 +05:30
Moeed Ahmed
3c5e68e80f fix: bound subagent completion context 2026-05-10 08:59:39 +05:30
Moeed Ahmed
243618e804 fix: handle telegram select callbacks safely 2026-05-10 08:59:39 +05:30
Ayaan Zaidi
6bf9185d27 fix(telegram): gate media dedup on visible delivery 2026-05-10 08:47:04 +05:30
Roger Deng
22e564da4b fix(telegram): track block media only after successful delivery
Move sentBlockMediaUrls recording from before sends to after successful
delivery completion. If a block send throws, the URL is not recorded,
so final fallback delivery retains the media attachment instead of
incorrectly deduplicating it.

Add regression tests for both success-path dedup and failure-path
media preservation.

Addresses ClawSweeper P2: block-failure → final-media-loss.
2026-05-10 08:47:04 +05:30
Roger Deng
bc3fd5bf0f fix(telegram): clear legacy mediaUrl when all mediaUrls deduped 2026-05-10 08:47:04 +05:30
Roger Deng
b5af229172 fix(telegram): use generic type in deduplicateBlockSentMedia
Preserve the full ReplyPayload type through deduplication so that
channelData and other properties are not lost.
2026-05-10 08:47:04 +05:30
Roger Deng
8ff38c0988 fix(telegram): deduplicate MEDIA attachments in non-streaming mode
Non-streaming Telegram delivers each MEDIA: attachment twice — once
from the media-only block reply and once from the final reply. Track
media URLs sent via block replies and filter duplicates from final
replies.

Closes #78372
2026-05-10 08:47:04 +05:30
Ayaan Zaidi
1367ec7461 fix(telegram): use partial stream deltas 2026-05-10 08:29:19 +05:30
Andy Ye
512a26c29b fix telegram partial progress coalescing 2026-05-10 08:29:19 +05:30
Andy Ye
0a4ef37f65 fix telegram partial draft fragments 2026-05-10 08:29:19 +05:30
Andrew Cunliffe
048ca8c765 fix(telegram): suppress 'no extra answer' placeholder when reply is in flight (#78929) 2026-05-10 08:28:31 +05:30
Ayaan Zaidi
760160c641 refactor(telegram): simplify chat action coalescing 2026-05-10 07:43:35 +05:30
VACInc
f5ad8e5b53 fix telegram topic bottleneck 2026-05-10 07:43:35 +05:30
Peter Steinberger
978334a83a test(telegram): satisfy transport stub contract 2026-05-09 23:25:27 +01:00
Peter Steinberger
195e721211 fix(release): stabilize full validation gates 2026-05-09 23:25:27 +01:00
Alexis Dagues
d44aeb6901 fix(telegram): mirror outbound replies to session transcript
Telegram's deliverReplies dispatches via Grammy SDK directly, bypassing
deliverOutboundPayloads where the channel-mirror writer runs. Outbound
assistant replies were never appended to the session transcript, leaving
Telegram .jsonl files empty (the sessions.json sessionFile path was
populated but the file was never created on disk).

Add an optional transcriptMirror callback param to deliverReplies and
populate it from bot-message-dispatch's deliveryBaseOptions. Reuses the
existing appendAssistantMessageToSessionTranscript helper that
deliverOutboundPayloads already calls. Also mirrors preview-finalized
replies so the transcript captures all final assistant output.

Plugin SDK boundary expansion: re-export
appendAssistantMessageToSessionTranscript from
plugin-sdk/agent-harness-runtime so extension code can call it without
reaching into core src/. API baseline regenerated.

Addresses openclaw#75991 for telegram + CLI runtime combinations.
Supersedes openclaw#77484 (incorporates reviewer feedback: preview-
finalized mirror + changelog entry).
2026-05-09 20:20:25 +05:30
Ayaan Zaidi
b6265c1504 fix(telegram): harden command menu cache keys 2026-05-09 20:03:47 +05:30
heejae chang
564ab9b89b Reduce Telegram command menu CPU work 2026-05-09 20:03:47 +05:30
Ayaan Zaidi
7d00183d44 fix(telegram): clean chat window prompt context 2026-05-09 18:28:50 +05:30
Ayaan Zaidi
b3afcc6eec fix(telegram): prioritize live chat context 2026-05-09 18:28:50 +05:30
Ayaan Zaidi
4cdf19eabe fix(telegram): add local chat context windows 2026-05-09 18:28:50 +05:30
Ayaan Zaidi
aec262034b perf(telegram): append reply-chain cache records 2026-05-09 17:57:16 +05:30
TSHOGX
1355701d73 fix(telegram): guard DM bindings from being parsed as topics 2026-05-09 07:18:42 -04:00
Shakker
234ea60c9d test: align telegram fast command callbacks 2026-05-09 12:05:59 +01:00
Peter Steinberger
4883a0e6c4 chore: update workspace dependencies 2026-05-09 10:58:36 +01:00
Peter Steinberger
9385eaaf88 chore(release): prepare 2026.5.8 2026-05-09 08:05:17 +01:00
Shakker
0d93faac54 test: fix telegram proxy send mock 2026-05-09 06:16:25 +01:00
Shakker
0fef42ddcc test: tighten plugin extension array assertions 2026-05-09 05:58:17 +01:00
Shakker
92d7ab6845 test: tighten channel empty array assertions 2026-05-09 04:58:00 +01:00