Commit Graph

795 Commits

Author SHA1 Message Date
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
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
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
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
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
Re-bin
3f41e39c8d Merge PR #1083: feat(exec): add path_append config to extend PATH for subprocess 2026-02-25 15:57:50 +00:00
Re-bin
9eca7f339e docs: shorten pathAppend description in config table 2026-02-25 15:57:50 +00:00
Re-bin
e1a2ef4f29 Merge branch 'main' into pr-1083 2026-02-25 15:50:00 +00:00
VITOHJL
f2e0847d64 Fix assistant messages without tool calls not being saved to session 2026-02-25 23:27:41 +08:00
dxtime
6aed4265b7 Fix: The base64 images are stored in the session history, causing context overflow. 2026-02-25 20:58:59 +08:00
coldxiangyu
4768b9a09d fix: parallel subagent cancellation + register task before lock
- cancel_by_session: use asyncio.gather for parallel cancellation
  instead of sequential await per task
- _dispatch: register in _active_tasks before acquiring lock so /stop
  can find queued tasks (synced from #1179)
2026-02-25 18:21:46 +08:00
coldxiangyu
2466b8b843 feat: /stop cancels spawned subagents via session tracking
- SubagentManager tracks _session_tasks: session_key -> {task_id, ...}
- cancel_by_session() cancels all subagents for a session
- SpawnTool passes session_key through to SubagentManager
- /stop response reports subagent cancellation count
- Cleanup callback removes from both _running_tasks and _session_tasks

Builds on #1179
2026-02-25 17:53:54 +08:00
coldxiangyu
3c12efa728 feat: extensible command system + task-based dispatch with /stop
- Add commands.py with CommandDef registry, parse_command(), get_help_text()
- Refactor run() to dispatch messages as asyncio tasks (non-blocking)
- /stop is an 'immediate' command: handled inline, cancels active task
- Global processing lock serializes message handling (safe for shared state)
- _pending_tasks set prevents GC of dispatched tasks before lock acquisition
- _dispatch() registers/clears active tasks, catches CancelledError gracefully
- /help now auto-generated from COMMANDS registry

Closes #849
2026-02-25 17:51:00 +08:00
aiguozhi123456
a50a2c6868 fix(docs): clarify platform-specific path separator 2026-02-25 01:53:04 +00:00
aiguozhi123456
e959b13926 docs: add pathAppend option to exec config docs 2026-02-25 01:49:56 +00:00
Re-bin
9e806d7159 Merge PR #1074: fix: preserve reasoning_content in message sanitization for thinking models 2026-02-25 00:38:51 +00:00
Re-bin
8fffee124b Merge branch 'main' into pr-1074 2026-02-25 00:38:20 +00:00
rickthemad4
87a2084ee2 feat: add untrusted runtime context layer for stable prompt prefix 2026-02-24 16:38:29 +00:00
Re-bin
a3963bfba3 docs: update v0.1.4.post2 release news 2026-02-24 16:35:50 +00:00
Re-bin
637c200dee docs: update v0.1.4.post2 release news 2026-02-24 16:34:22 +00:00
Re-bin
17de3699ab chore: bump version to 0.1.4.post2 2026-02-24 16:24:47 +00:00
Re-bin
abc7b0aeb2 Merge PR #1107: fix(slack): post-process slackify_markdown output to catch leftover artifacts 2026-02-24 16:20:28 +00:00
Re-bin
96e1730af5 style: simplify _fixup_mrkdwn and trim docstring in SlackChannel 2026-02-24 16:20:28 +00:00
Re-bin
a3f7cce416 Merge branch 'main' into pr-1107 2026-02-24 16:19:14 +00:00