spartan077
c0ad986504
fix: add message deduplication to WhatsApp channel
...
Prevent infinite loops by tracking processed message IDs in WhatsApp
channel. The bridge may send duplicate messages which caused the bot
to respond repeatedly with the same generic message.
Changes:
- Add _processed_message_ids deque (max 2000) to track seen messages
- Skip processing if message_id was already processed
- Align WhatsApp dedup with other channels (Feishu, Email, Mochat, QQ)
This fixes the issue where WhatsApp gets stuck in a loop sending
identical responses repeatedly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-28 13:44:22 +05:30
Xubin Ren
e86cfcde22
Merge PR #1200 to update heartbeat tests to match two-phase tool-call architecture
...
fix: update heartbeat tests to match two-phase tool-call architecture
2026-02-27 18:10:35 +08:00
Re-bin
fdd2c25aed
Merge PR #1222 : fix runtime context leaking into session history
2026-02-27 10:07:22 +00:00
Re-bin
bc558d0592
refactor: merge user-role branches in _save_turn
2026-02-27 10:07:22 +00:00
Re-bin
6bdb590028
Merge remote-tracking branch 'origin/main' into pr-1222
2026-02-27 09:57:45 +00:00
Re-bin
a6aa5fbd7c
Merge PR #1239 : register Matrix channel in manager and schema
2026-02-27 09:53:31 +00:00
Re-bin
12f3365103
fix: remove duplicate import, tidy MatrixConfig comments
2026-02-27 09:53:31 +00:00
Re-bin
2d33371366
Merge remote-tracking branch 'origin/main' into pr-1239
2026-02-27 09:51:33 +00:00
Re-bin
858a62dd9b
refactor: slim down helpers.py — remove dead code, compress docstrings
2026-02-27 09:50:12 +00:00
Re-bin
21e9644944
Merge PR #1253 : auto-sync workspace templates on startup
2026-02-27 09:46:57 +00:00
Re-bin
d5808bf586
refactor: streamline workspace template sync
2026-02-27 09:46:57 +00:00
Re-bin
e260219ce6
Merge remote-tracking branch 'origin/main' into pr-1253
2026-02-27 09:41:13 +00:00
Re-bin
b7561848e1
Merge PR #1257 : feat(feishu): make reaction emoji configurable
2026-02-27 09:32:20 +00:00
Re-bin
969b15dbce
Merge remote-tracking branch 'origin/main' into pr-1257
2026-02-27 09:31:12 +00:00
Re-bin
32ecfd32f3
Merge PR #1258 : fix Telegram media-group aggregation
2026-02-27 09:30:01 +00:00
Re-bin
aa2987be3e
refactor: streamline Telegram media-group buffering
2026-02-27 09:30:01 +00:00
Tanish Rajput
568a54ae3e
Initialize Matrix channel in ChannelManager when enabled in config
2026-02-27 11:39:01 +05:30
Kim
a3e0543eae
chore(telegram): keep media-group fix without unrelated formatting changes
2026-02-27 12:16:51 +08:00
Kim
aa774733ea
fix(telegram): aggregate media-group images into a single inbound turn
2026-02-27 12:08:48 +08:00
kimkitsuragi26
6641bad337
feat(feishu): make reaction emoji configurable
...
Replace hardcoded THUMBSUP with configurable react_emoji field
in FeishuConfig, consistent with SlackConfig.react_emoji pattern.
Default remains THUMBSUP for backward compatibility.
2026-02-27 11:45:44 +08:00
Re-bin
cab901b2fb
Merge PR #1228 : fix(web): use self.api_key instead of undefined api_key
2026-02-27 02:44:19 +00:00
Re-bin
b24df8afeb
Merge remote-tracking branch 'origin/main' into pr-1228
2026-02-27 02:43:37 +00:00
Re-bin
ec8dee802c
refactor: simplify message tool suppress and inline consolidation locks
2026-02-27 02:39:38 +00:00
Hon Jia Xuan
cb999ae826
feat: implement automatic workspace template synchronization
2026-02-27 10:39:05 +08:00
Re-bin
c3a0c7c9eb
Merge PR #1206 : fix message tool suppress for cross-channel sends
2026-02-27 02:27:18 +00:00
Re-bin
29e6709e26
refactor: simplify message tool suppress — bool check instead of target tracking
2026-02-27 02:27:18 +00:00
Re-bin
ac1c40db91
Merge remote-tracking branch 'origin/main' into pr-1206
2026-02-27 02:17:04 +00:00
Yongfeng Huang
7a3788fee9
fix(web): use self.api_key instead of undefined api_key
...
Made-with: Cursor
2026-02-26 15:43:04 +08:00
Kim
286e67ddef
style(agent): remove inline comment in runtime-context history filter
2026-02-26 14:21:44 +08:00
Kim
45ae410f05
fix(agent): do not persist runtime context metadata in session history
2026-02-26 14:12:37 +08:00
Re-bin
cc425102ac
docs: update Matrix channel guideline and schema
2026-02-26 03:08:00 +00:00
Re-bin
a1e930d942
Merge PR #420 : feat: add Matrix (Element) channel
2026-02-26 03:04:13 +00:00
Re-bin
988a85d8de
refactor: optimize matrix channel — optional deps, trim comments, simplify methods
2026-02-26 03:04:01 +00:00
Re-bin
84f2f3c316
Merge remote-tracking branch 'origin/main' into pr-420
2026-02-26 02:48:21 +00:00
Re-bin
a77add9d8c
Merge PR #1191 : fix base64 images stored in session history causing context overflow
2026-02-26 02:43:50 +00:00
Re-bin
a1440cf4cb
refactor: inline base64 image stripping in _save_turn
2026-02-26 02:43:45 +00:00
Re-bin
0a9bb1d8df
Merge remote-tracking branch 'origin/main' into pr-1191
2026-02-26 02:39:53 +00:00
Re-bin
4eb44cfb5c
Merge PR #1198 : fix assistant messages without tool calls not being saved to session
2026-02-26 02:33:38 +00:00
Re-bin
3902e31165
refactor: drop redundant tool_calls=None in final assistant message
2026-02-26 02:33:38 +00:00
Re-bin
23b9880478
Merge remote-tracking branch 'origin/main' into pr-1198
2026-02-26 02:29:45 +00:00
Re-bin
7e1a08d33c
docs: add provider option to Quick Start config example
2026-02-26 02:23:07 +00:00
Xubin Ren
cffba8d0be
Merge PR #1214 to support explicit provider selection in config
...
feat: support explicit provider selection in config
2026-02-26 10:17:08 +08:00
Re-bin
65477e4bf3
feat: support explicit provider selection in config
2026-02-26 02:15:42 +00:00
Re-bin
39ab89cbd1
Merge PR #1180 : feat: /stop command with task-based dispatch
2026-02-25 17:04:19 +00:00
Re-bin
cdbede2fa8
refactor: simplify /stop dispatch, inline commands, trim verbose docstrings
2026-02-25 17:04:08 +00:00
chengyongru
fafd8d4eb8
fix(agent): only suppress final reply when message tool sends to same target
...
A refactoring in commit 132807a introduced a regression where the final
response was silently discarded whenever the message tool was used,
regardless of the target. This restored the original logic from PR #832
that only suppresses the final reply when the message tool sends to the
same (channel, chat_id) as the original message.
Changes:
- message.py: Replace _sent_in_turn: bool with _turn_sends: list[tuple]
to track actual send targets, add get_turn_sends() method
- loop.py: Check if (msg.channel, msg.chat_id) is in sent_targets before
suppressing final reply. Also move the "Response to" log after the
suppress check to avoid misleading logs.
- Add unit tests for the suppress logic
This ensures:
- Email sent via message tool → Feishu still gets confirmation
- Message tool sends to same Feishu chat → No duplicate (suppressed)
2026-02-26 00:32:48 +08:00
Re-bin
149f26af32
Merge branch 'main' into pr-1180
2026-02-25 16:16:18 +00:00
Re-bin
becb0a4b87
Merge PR #1126 : feat: add untrusted runtime context layer for stable prompt prefix
2026-02-25 16:13:48 +00:00
Re-bin
d55a850357
refactor: simplify runtime context injection — drop JSON/dedup, keep untrusted tag
2026-02-25 16:13:48 +00:00
Re-bin
b19c729eee
Merge branch 'main' into pr-1126
2026-02-25 16:04:06 +00:00