Re-bin
8410f859f7
refactor: use WeakValueDictionary for consolidation locks — auto-cleanup, no manual pop
2026-02-28 08:26:55 +00:00
Re-bin
e1832e75b5
Merge PR #1286 : fix Windows path regex truncation in ExecTool
2026-02-28 08:09:56 +00:00
Re-bin
b89b5a7e2c
refactor: compress _extract_absolute_paths comments
2026-02-28 08:09:56 +00:00
Re-bin
05e0d271fc
Merge remote-tracking branch 'origin/main' into pr-1286
2026-02-28 08:07:07 +00:00
Re-bin
b1f0335090
Merge PR #1294 : fix tool hint crash when arguments is a list (Kimi K2.5)
2026-02-28 08:06:20 +00:00
Re-bin
89c0f4cae9
refactor: compress tool hint args handling to two lines
2026-02-28 08:06:20 +00:00
Re-bin
90eb90335a
Merge remote-tracking branch 'origin/main' into pr-1294
2026-02-28 08:01:04 +00:00
Xubin Ren
08752fab2f
Merge PR #1307 to pass msg_id in QQ C2C reply
...
fix: pass msg_id in QQ C2C reply to avoid proactive message permissio…
2026-02-28 15:54:39 +08:00
Xubin Ren
44e120dd0b
Merge PR #1317 : modify Feishu bot permissions in README
...
Modify Feishu bot permissions in README
2026-02-28 15:48:59 +08:00
Re-bin
72b47446eb
Merge PR #1323 : fix Feishu interactive card content extraction
2026-02-28 07:40:31 +00:00
Re-bin
7bb7b85788
Merge remote-tracking branch 'origin/main' into pr-1323
2026-02-28 07:36:31 +00:00
Re-bin
1bbc5a6f89
Merge PR #1314 : prevent session poisoning from null/error LLM responses
2026-02-28 07:35:07 +00:00
Re-bin
0036116e0b
fix: filter empty assistant messages in _save_turn instead of patching at send time
2026-02-28 07:35:07 +00:00
Re-bin
069f93f6f5
Merge remote-tracking branch 'origin/main' into pr-1314
2026-02-28 07:29:04 +00:00
阿正
e440aa72c5
fix the interactive message text cannot be extracted
2026-02-28 15:10:35 +08:00
Yan-ke Guo
936e094a7f
Modify Feishu bot permissions in README
...
Updated permissions for Feishu bot setup instructions.
2026-02-28 14:03:36 +08:00
Xubin Ren
32f42df7ef
Merge PR #1316 to remove overly broad "codex" keyword from openai_codex provider
...
fix: remove overly broad "codex" keyword from openai_codex provider
2026-02-28 12:14:30 +08:00
Nikolas de Hor
cc8864dc1f
fix: remove overly broad "codex" keyword from openai_codex provider
...
The bare keyword "codex" causes false positive matches when any model
name happens to contain "codex" (e.g. "gpt-5.3-codex" on a custom
provider). This incorrectly routes the request through the OAuth-based
OpenAI Codex provider, producing "OAuth credentials not found" errors
even when a valid custom api_key and api_base are configured.
Keep only the explicit "openai-codex" keyword so that auto-detection
requires the canonical prefix. Users can still set provider: "custom"
to force the custom endpoint, but auto-detection should not collide.
Closes #1311
2026-02-28 01:01:20 -03:00
Nikolas de Hor
66063abb8c
fix: prevent session poisoning from null/error LLM responses
...
When an LLM returns content: null on a plain assistant message (no
tool_calls), the null gets saved to session history and causes
permanent 400 errors on every subsequent request.
- Sanitize None content on plain assistant messages to "(empty)" in
_sanitize_empty_content(), matching the existing empty-string handling
- Skip persisting error responses (finish_reason="error") to the
message history in _run_agent_loop(), preventing poison loops
Closes #1303
2026-02-28 00:57:08 -03:00
GabrielWithTina
8842fb2b4d
fix: pass msg_id in QQ C2C reply to avoid proactive message permission error
...
QQ's bot API requires a msg_id (original inbound message ID) to send a
passive reply. Without it the request is treated as a proactive message
and fails with error 40034102 (无权限). The message_id was already stored
in InboundMessage.metadata and forwarded to OutboundMessage, but was never
read in send().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-28 09:44:28 +08:00
Michael-lhh
11f1880c02
fix: handle list-type tool arguments in _tool_hint
...
Some models (e.g., Kimi K2.5 via OpenRouter) return tool call arguments
as a list instead of a dict. This caused an AttributeError when trying
to call .values() on the list.
The fix checks if arguments is a list and extracts the first element
before accessing .values().
Made-with: Cursor
2026-02-28 00:18:00 +08:00
Xubin Ren
a4d95fd064
Merge PR #1293 to generate short alphanumeric tool_call_id for Mistral compatibility
...
fix: generate short alphanumeric tool_call_id for Mistral compatibility
2026-02-28 00:15:52 +08:00
Re-bin
1fe94898f6
fix: generate short alphanumeric tool_call_id for Mistral compatibility
2026-02-27 16:13:26 +00:00
Xubin Ren
ef09add825
Merge PR #1278 to guide llm grep using timestamp
...
Fix(prompt): guide llm grep using timestamp
2026-02-27 23:42:05 +08:00
fengxiaohu
7229d86bb3
fix(shell): parse full Windows absolute paths in workspace guard
2026-02-27 21:46:46 +08:00
aiguozhi123456
db4185c8b7
Add timestamp format hint for HISTORY.md grep searching
2026-02-27 11:11:42 +00:00
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