Re-bin
60751909cb
Merge PR #959 : fix(email): evict oldest half of dedup set instead of clearing entirely
2026-02-22 15:48:49 +00:00
Re-bin
4e8c8cc227
fix(email): fix misleading comment and simplify uid eviction
2026-02-22 15:48:49 +00:00
Re-bin
d82c292c99
Merge branch 'main' into pr-959
2026-02-22 15:41:09 +00:00
Re-bin
598f7dafd1
Merge PR #958 : fix(session): handle errors in legacy session migration
2026-02-22 15:40:17 +00:00
Re-bin
71de1899e6
fix(session): use logger.exception and move import to top
2026-02-22 15:40:17 +00:00
Re-bin
b8a06f8d19
Merge branch 'main' into pr-958
2026-02-22 15:39:09 +00:00
Re-bin
b161628ad7
Merge PR #957 : fix(slack): add exception handling to socket listener
2026-02-22 15:38:19 +00:00
Re-bin
b93b77a485
fix(slack): use logger.exception to capture full traceback
2026-02-22 15:38:19 +00:00
Re-bin
c53deecdb1
Merge branch 'main' into pr-957
2026-02-22 15:35:26 +00:00
Re-bin
ef64739736
Merge PR #956 : fix(security): prevent path traversal bypass via startswith check
2026-02-22 15:34:36 +00:00
Re-bin
e0743d6345
Merge branch 'main' into pr-956
2026-02-22 15:33:28 +00:00
Xubin Ren
fff6207c6b
Merge PR #982 to add DingTalk, QQ, and Email to channels status output
...
feat(cli): add DingTalk, QQ, and Email to channels status output
2026-02-22 14:57:44 +08:00
Yingwen Luo-LUOYW
b323087631
feat(cli): add DingTalk, QQ, and Email to channels status output
2026-02-22 12:42:33 +08:00
andienguyen-ecoligo
ba66c64750
fix(email): evict oldest half of dedup set instead of clearing entirely
...
When _processed_uids exceeds 100k entries, the entire set was cleared
with .clear(), allowing all previously seen emails to be re-processed.
Now evicts the oldest 50% of entries, keeping recent UIDs to prevent
duplicate processing while still bounding memory usage.
Fixes #890
2026-02-21 12:36:04 -05:00
andienguyen-ecoligo
54a0f3d038
fix(session): handle errors in legacy session migration
...
shutil.move() in _load() can fail due to permissions, disk full, or
concurrent access. Without error handling, the exception propagates up
and prevents the session from loading entirely.
Wrap in try/except so migration failures are logged as warnings and the
session falls back to loading from the legacy path on next attempt.
Fixes #863
2026-02-21 12:35:21 -05:00
andienguyen-ecoligo
ef96619039
fix(slack): add exception handling to socket listener
...
_handle_message() in _on_socket_request() had no try/except. If it
throws (bus full, permission error, etc.), the exception propagates up
and crashes the Socket Mode event loop, causing missed messages.
Other channels like Telegram already have explicit error handlers.
Fixes #895
2026-02-21 12:34:50 -05:00
andienguyen-ecoligo
5c9cb3a208
fix(security): prevent path traversal bypass via startswith check
...
`startswith` string comparison allows bypassing directory restrictions.
For example, `/home/user/workspace_evil` passes the check against
`/home/user/workspace` because the string starts with the allowed path.
Replace with `Path.relative_to()` which correctly validates that the
resolved path is actually inside the allowed directory tree.
Fixes #888
2026-02-21 12:34:14 -05:00
Re-bin
0040c62b74
Merge PR #939 : Remove redundant tools description from system prompt
2026-02-21 17:07:02 +00:00
Re-bin
13d768cd93
Merge branch 'main' into pr-939
2026-02-21 17:06:05 +00:00
Xubin Ren
6a9152f0c4
Merge PR #947 to Fix 'Missing reasoning_content field' error for deepseek provider.
...
fix(context): Fix 'Missing `reasoning_content` field' error for deepseek provider.
2026-02-22 00:47:58 +08:00
Xubin Ren
9b4273f6a4
Merge PR #951 to change VolcEngine litellm prefix from openai to volcengine
...
fix: change VolcEngine litellm prefix from openai to volcengine
2026-02-22 00:45:49 +08:00
init-new-world
deae84482d
fix: change VolcEngine litellm prefix from openai to volcengine
2026-02-22 00:42:41 +08:00
Re-bin
edc671a8a3
docs: update format of news section
2026-02-21 16:39:26 +00:00
nanobot-bot
01c835aac2
fix(context): Fix 'Missing reasoning_content field' error for deepseek provider.
2026-02-21 23:11:30 +08:00
Re-bin
88ca2e0530
docs: update v.0.1.4.post1 release news
2026-02-21 13:20:55 +00:00
Re-bin
af71ccf051
release: v0.1.4.post1
2026-02-21 13:05:14 +00:00
vincentchen
b3acd19c7b
Remove redundant tools description (because tools information is passed in with each self.provider.chat() call)
2026-02-21 20:28:42 +08:00
Re-bin
9c61e1389c
docs: update nanobot news
2026-02-21 08:33:31 +00:00
Re-bin
ec4bdb651f
docs: update nanobot news
2026-02-21 08:33:02 +00:00
Re-bin
f89f8a972c
Merge pull request #926 : fix(agent): skip empty fallback outbound for non-cli channels
2026-02-21 08:27:54 +00:00
Re-bin
0b30f514b4
style(loop): compact empty outbound message construction
2026-02-21 08:27:49 +00:00
Re-bin
012a5e78e5
Merge branch 'main' into pr-926
2026-02-21 08:21:17 +00:00
Xubin Ren
4dca2872bf
Merge pull request #930 to slim down agent loop
...
refactor: extract memory consolidation to MemoryStore, slim down agent loop
2026-02-21 16:19:08 +08:00
Re-bin
ab026c5131
refactor: extract memory consolidation to MemoryStore, slim down AgentLoop
2026-02-21 08:14:46 +00:00
Re-bin
668dd6e2f5
Merge pull request #866 : refactor(memory): use tool call instead of JSON text for memory consolidation
2026-02-21 08:02:03 +00:00
Re-bin
8c15454379
Merge branch 'main' into pr-866
2026-02-21 07:46:25 +00:00
Xubin Ren
6076f98527
Merge pull request #928 to remove interim text retry, use system prompt constraint instead
...
refactor(loop): remove interim text retry, use system prompt constraint instead
2026-02-21 15:35:35 +08:00
Re-bin
aeb07d3450
refactor(loop): remove interim text retry, use system prompt constraint instead
2026-02-21 07:32:58 +00:00
Re-bin
a0820eceee
Merge pull request #887 : fix(loop): preserve interim content as fallback when retry produces empty response
2026-02-21 07:17:35 +00:00
Re-bin
8bb849470b
Merge branch 'main' into pr-887
2026-02-21 07:12:58 +00:00
Alexander Minges
c4bee640b8
fix(agent): skip empty fallback outbound for non-cli channels
2026-02-21 07:51:28 +01:00
Re-bin
900604e9ca
Merge pull request #921 : fix(tools): provide diff hint when edit_file old_text not found
2026-02-21 06:39:14 +00:00
Re-bin
4f5cb7d1e4
style(filesystem): simplify best-match loop
2026-02-21 06:39:04 +00:00
Re-bin
09a45f8993
Merge pull request #921 : fix(tools): provide diff hint when edit_file old_text not found
2026-02-21 06:35:14 +00:00
Re-bin
e0edb904bd
style(filesystem): move difflib import to top level
2026-02-21 06:35:10 +00:00
Re-bin
7bc77c1b41
Merge branch 'main' into pr-921
2026-02-21 06:32:57 +00:00
Re-bin
6f266f1a8a
Merge pull request #922 : feat(feishu): multimedia download and share card parsing
2026-02-21 06:30:31 +00:00
Re-bin
8125d9b6bc
fix(feishu): fix double recursion, English placeholders, top-level Path import
2026-02-21 06:30:26 +00:00
coldxiangyu
b9c3f8a5a3
feat(feishu): add share card and interactive message parsing
...
- Add content extraction for share cards (chat, user, calendar event)
- Add recursive parsing for interactive card elements
- Fix image download API to use GetMessageResourceRequest with message_id
- Handle BytesIO response from message resource API
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-02-21 14:08:25 +08:00
coldxiangyu
98ef57e370
feat(feishu): add multimedia download support for images, audio and files
...
Add download functionality for multimedia messages in Feishu channel,
enabling agents to process images, audio recordings, and file attachments
sent through Feishu.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 12:56:57 +08:00