470 Commits

Author SHA1 Message Date
Re-bin
ffbb264a5d fix: consistent sender_id for Telegram command allowlist matching 2026-02-16 12:11:03 +00:00
Re-bin
ba923c0205 Merge branch 'main' into pr-701 2026-02-16 12:07:58 +00:00
Re-bin
e8e7215d3e refactor: simplify Slack markdown-to-mrkdwn conversion 2026-02-16 11:57:55 +00:00
Re-bin
3706903978 Merge branch 'main' into pr-704 2026-02-16 11:52:02 +00:00
Re-bin
1ce586e9f5 fix: resolve Codex provider bugs and simplify implementation 2026-02-16 11:43:36 +00:00
Re-bin
9e5f7348fe Merge branch 'main' into pr-151 2026-02-16 09:19:40 +00:00
Aleksander W. Oleszkiewicz (Alek)
fe0341da5b
Fix regex for URL formatting in Slack channel 2026-02-16 09:58:38 +01:00
Aleksander W. Oleszkiewicz (Alek)
5d683da38f
Fix regex for URL and image URL formatting 2026-02-16 09:53:20 +01:00
Aleksander W. Oleszkiewicz (Alek)
90be900448
Enhance Slack message formatting with new regex rules
Added regex substitutions for strikethrough, URL formatting, and image URLs in Slack message conversion.
2026-02-16 09:49:44 +01:00
Thomas Lisankie
51d22b7ef4 Fix: _forward_command now builds sender_id with username for allowlist matching 2026-02-16 00:14:34 -05:00
zhouzhuojie
9bfc86af41 refactor(telegram): extract message splitting into helper function
- Added _split_message() helper for cleaner separation of concerns
- Simplified send() method by using the helper
- Net -18 lines for the message splitting feature
2026-02-15 22:49:01 +00:00
zhouzhuojie
203aa154d4 fix(telegram): split long messages to avoid Message is too long error
Telegram has a 4096 character limit per message. This fix:
- Splits messages longer than 4000 chars into multiple chunks
- Prefers breaking at newline boundaries to preserve formatting
- Falls back to space boundaries if no newlines available
- Forces split at max length if no good boundaries exist
- Adds comprehensive tests for message splitting logic
2026-02-15 22:39:31 +00:00
Re-bin
a5265c263d docs: update readme structure 2026-02-15 16:41:27 +00:00
Aleksander W. Oleszkiewicz (Alek)
7e2d801ffc
Implement markdown conversion for Slack messages
Add markdown conversion for Slack messages including italics, bold, and table formatting.
2026-02-15 15:51:19 +01:00
Re-bin
82074a7715 docs: update news section 2026-02-15 14:03:51 +00:00
Xubin Ren
69f80ec634
Merge pull request #664 to use json_repair for robust LLM response parsing
fix: use json_repair for robust LLM response parsing
2026-02-15 16:12:47 +08:00
Re-bin
49fec3684a fix: use json_repair for robust LLM response parsing 2026-02-15 08:11:33 +00:00
Re-bin
728874179c Merge PR #554: add MCP support 2026-02-15 07:03:08 +00:00
Re-bin
52cf1da30a fix: store original MCP tool name, make close_mcp public 2026-02-15 07:00:27 +00:00
Re-bin
54d5f637e7 merge main into pr-554 2026-02-15 06:12:15 +00:00
Re-bin
e2ef1f9d48 docs: add custom provider guideline 2026-02-15 06:02:45 +00:00
Re-bin
fd480bb6f5 Merge branch 'main' into pr-625 2026-02-15 05:27:16 +00:00
Xubin Ren
3411035447
Merge pull request #617 from themavik/fix/523-clamp-max-tokens
fix(providers): clamp max_tokens to >= 1 before calling LiteLLM
2026-02-14 18:02:20 +08:00
Xubin Ren
6e3f86714c
Merge pull request #629 from C-Li/feishu_optmize
增加支持飞书富文本内容接收。Add support for receiving Feishu rich text content.
2026-02-14 17:51:10 +08:00
Zhiwei Li
66cd21e6ec feat: add SiliconFlow provider support
Add SiliconFlow (硅基流动) as an OpenAI-compatible gateway provider.
SiliconFlow hosts multiple models (Qwen, DeepSeek, etc.) via an
OpenAI-compatible API at https://api.siliconflow.cn/v1.

Changes:
- Add ProviderSpec for siliconflow in providers/registry.py
- Add siliconflow field to ProvidersConfig in config/schema.py

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-14 20:27:10 +11:00
Ahwei
5e082690d8 refactor(feishu): support both direct and localized post content formats 2026-02-14 14:37:23 +08:00
Ahwei
4e4eb21d23 feat(feishu): Add rich text message content extraction feature
Newly added the _extract_post_text function to extract plain text content from Feishu rich text messages, supporting the parsing of titles, text, links, and @mentions.
2026-02-14 12:14:31 +08:00
Ahwei
d3f6c95ceb refactor(cron): simplify timezone logic and merge conditional branches
With tz: Use the specified timezone (e.g., "Asia/Shanghai").
Without tz: Use the local timezone (datetime.now().astimezone().tzinfo) instead of defaulting to UTC
2026-02-14 10:27:09 +08:00
Ahwei
153c83e340 fix(cron): add timezone support for accurate next run time calculation
When schedule.tz is present, use the specified timezone to calculate the next execution time, ensuring scheduled tasks trigger correctly across different timezones.
2026-02-14 10:23:54 +08:00
Re-bin
f821e95d3c fix: wire max_tokens/temperature to all chat calls, clean up redundant comments 2026-02-14 01:40:37 +00:00
Re-bin
155fc48b29 merge: resolve conflict with main, keep extracted _run_agent_loop with temperature 2026-02-14 01:22:17 +00:00
Re-bin
59d5e3cc4f docs: update line count 2026-02-14 01:14:47 +00:00
Re-bin
2f2c55f921 fix: add missing comma and type annotation for temperature param 2026-02-14 01:13:49 +00:00
Re-bin
9a83301ea6 Merge branch 'main' into pr-560 2026-02-14 01:10:51 +00:00
Re-bin
d6d73c8167 docs: update .gitignore to remove tests 2026-02-14 01:03:16 +00:00
Re-bin
3b580fd6c8 tests: update test_commands.py 2026-02-14 01:02:58 +00:00
Re-bin
12540ba8cb feat: improve onboard with merge-or-overwrite prompt 2026-02-14 00:58:43 +00:00
Re-bin
835a10e1a9 merge: resolve conflict with main, keep load-merge-save approach 2026-02-14 00:51:29 +00:00
The Mavik
10e9e0cdc9 fix(providers): clamp max_tokens to >= 1 before calling LiteLLM (#523) 2026-02-13 17:08:10 -05:00
Xubin Ren
bc045fae1f
Merge pull request #604 to add custom provider and non-destructive onboard
feat: add custom provider and non-destructive onboard
2026-02-14 00:08:40 +08:00
Re-bin
b76cf05c3a feat: add custom provider and non-destructive onboard 2026-02-13 16:05:00 +00:00
chengyongru
a3f4bb74ff fix: increase max_messages to 500 as temporary workaround
Temporarily increase default max_messages from 50 to 500 to allow
more context in conversations until a proper consolidation strategy
is implemented.
2026-02-13 22:10:53 +08:00
Luke Milby
bd55bf5278 cleaned up logic for onboarding 2026-02-13 08:56:37 -05:00
Luke Milby
a9d911c80d
Merge branch 'HKUDS:main' into feature/onboard_workspace 2026-02-13 08:45:31 -05:00
Luke Milby
8a11490798 updated logic for onboard function not ask for to overwrite workspace since the logic already ensures nothing will be overwritten. Added onboard command tests and removed tests from gitignore 2026-02-13 08:43:49 -05:00
qiupinhua
442136a313 fix: remove uv.lock 2026-02-13 18:52:43 +08:00
qiupinhua
1ae47058d9 fix: refactor code structure for improved readability and maintainability 2026-02-13 18:51:30 +08:00
qiupinhua
09c7e7aded feat: change OAuth login command for providers 2026-02-13 18:37:21 +08:00
Xubin Ren
3f59a8e234
Merge pull request #593 from C-Li/feishu_fix
Optimize the display of Markdown titles in Lark card information.
2026-02-13 17:02:27 +08:00
chengyongru
afc8d50659 test: add comprehensive tests for consolidate offset functionality
Add 26 new test cases covering:
- Consolidation trigger conditions (exceed window, within keep count, no new messages)
- last_consolidated edge cases (exceeds message count, negative value, new messages after consolidation)
- archive_all mode (/new command behavior)
- Cache immutability (messages list never modified during consolidation)
- Slice logic (messages[last_consolidated:-keep_count])
- Empty and boundary sessions (empty, single message, exact keep count, very large)

Refactor tests with helper functions to reduce code duplication by 25%:
- create_session_with_messages() - creates session with specified message count
- assert_messages_content() - validates message content range
- get_old_messages() - encapsulates standard slice logic

All 35 tests passing.
2026-02-13 16:30:43 +08:00