Xubin Ren
91a9b7db24
Merge origin/main into fix/retry-after-robust
...
Made-with: Cursor
2026-04-03 19:07:30 +00:00
Xubin Ren
9840270f7f
test(tools): cover media dir access under workspace restriction
...
Made-with: Cursor
2026-04-04 03:03:58 +08:00
imfondof
896d578677
fix(restart): show restart completion with elapsed time across channels
2026-04-04 02:21:42 +08:00
imfondof
ba7c07ccf2
fix(restart): send completion notice after channel is ready and unify runtime keys
2026-04-04 02:21:42 +08:00
Lingao Meng
a05f83da89
test(providers): cover reasoning_content extraction in OpenAI compat provider
...
Add regression tests for the non-streaming (_parse dict branch) and
streaming (_parse_chunks dict and SDK-object branches) paths that extract
reasoning_content, ensuring the field is populated when present and None
when absent.
Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2026-04-04 02:09:57 +08:00
Xubin Ren
f409337fcf
Merge remote-tracking branch 'origin/main' into pr-2646
2026-04-03 17:53:52 +00:00
daliu858
06989fd65b
feat(qq): add configurable instant acknowledgment message ( #2561 )
...
Add ack_message config field to QQConfig (default: Processing...). When non-empty, sends an instant text reply before agent processing begins, filling the silence gap for users. Uses existing _send_text_only method; failure is logged but never blocks normal message handling.
Made-with: Cursor
2026-04-04 01:52:39 +08:00
Flo
49c40e6b31
feat(telegram): include author context in reply tags ( #2605 ) ( #2606 )
...
* feat(telegram): include author context in reply tags (#2605 )
* fix(telegram): handle missing attributes in reply_user safely
2026-04-04 01:52:39 +08:00
pikaxinge
5d1ea43858
fix: robust Retry-After extraction across provider backends
2026-04-02 18:39:24 +00:00
Xubin Ren
e4b335ce81
refactor: extract runtime response guards into utils runtime module
2026-04-02 13:54:40 +00:00
Xubin Ren
714a4c7bb6
fix(runtime): address review feedback on retry and cleanup
2026-04-02 10:57:12 +00:00
Xubin Ren
eefd7e60f2
Merge remote-tracking branch 'origin/main' into feat/runtime-hardening
2026-04-02 10:40:49 +00:00
Xubin Ren
3558fe4933
fix(cli): honor custom config path in channel commands
2026-04-02 18:37:46 +08:00
masterlyj
11ba733ab6
fix(test): update load_config mock to accept config_path parameter
2026-04-02 18:37:46 +08:00
haosenwang1018
7a6416bcb2
test(matrix): skip cleanly when optional deps are missing
2026-04-02 18:17:00 +08:00
cypggs
ca68a89ce6
merge: resolve conflicts with upstream/main, preserve typing indicator
2026-04-02 14:28:23 +08:00
Xubin Ren
cc33057985
refactor(providers): rename openai responses helpers
2026-04-02 13:43:34 +08:00
Xubin Ren
ded0967c18
fix(providers): sanitize azure responses input messages
2026-04-02 13:43:34 +08:00
Kunal Karmakar
61d7411238
Fix failing test
2026-04-02 13:43:34 +08:00
Kunal Karmakar
76226274bf
Failing test
2026-04-02 13:43:34 +08:00
Kunal Karmakar
e206cffd7a
Add tests and handle json
2026-04-02 13:43:34 +08:00
Kunal Karmakar
ac2ee58791
Add tests and logs
2026-04-02 13:43:34 +08:00
Kunal Karmakar
8c0607e079
Use SDK for stream
2026-04-02 13:43:34 +08:00
Kunal Karmakar
0417c3f03b
Use OpenAI responses API
2026-04-02 13:43:34 +08:00
Xubin Ren
9ba413c82e
test(cron): cover deliver flag on scheduled jobs
2026-04-02 13:03:46 +08:00
Xubin Ren
a3e4c77fff
fix(providers): normalize anthropic cached token usage
2026-04-02 12:51:45 +08:00
chengyongru
da08dee144
feat(provider): show cache hit rate in /status ( #2645 )
2026-04-02 12:51:45 +08:00
Xubin Ren
485c75e065
test(exec): verify windows drive-root workspace guard
2026-04-02 04:00:03 +08:00
zhangxiaoyu.york
bc2e474079
Fix ExecTool to block root directory paths when restrict_to_workspace is enabled
2026-04-02 04:00:03 +08:00
Xubin Ren
7e719f41cc
test(providers): cover github copilot lazy export
2026-04-02 03:46:40 +08:00
Xubin Ren
2ec68582eb
fix(sdk): route github copilot through oauth provider
2026-04-02 03:46:40 +08:00
RongLei
c5f0997381
fix: refresh copilot token before requests
...
Address PR review feedback by avoiding an async method reference as the OpenAI client api_key.
Initialize the client with a placeholder key, refresh the Copilot token before each chat/chat_stream call, and update the runtime client api_key before dispatch.
Add a regression test that verifies the client api_key is refreshed to a real string before chat requests.
Generated with GitHub Copilot, GPT-5.4.
2026-04-02 03:46:40 +08:00
RongLei
a37bc26ed3
fix: restore GitHub Copilot auth flow
...
Implement the real GitHub device flow and Copilot token exchange for the GitHub Copilot provider.
Also route github-copilot models through a dedicated backend and strip the provider prefix before API requests.
Add focused regression coverage for provider wiring and model normalization.
Generated with GitHub Copilot, GPT-5.4.
2026-04-02 03:46:40 +08:00
Xubin Ren
fbedf7ad77
feat: harden agent runtime for long-running tasks
2026-04-01 19:12:49 +00:00
chengyongru
69624779dc
fix(test): fix flaky test_fixed_session_requests_are_serialized
...
Remove the fragile barrier-based synchronization that could cause
deadlock when the second request is scheduled first. Instead, rely
on the session lock for serialization and handle either execution
order in assertions.
2026-03-31 21:50:33 +08:00
Xubin Ren
949a10f536
fix(weixin): reset QR poll host after refresh
2026-03-31 19:40:13 +08:00
xcosmosbox
2a6c616080
fix(WeiXin): fix full_url download error
2026-03-31 19:40:13 +08:00
xcosmosbox
1bcd5f9742
fix(weixin): fix test file version reader
2026-03-31 19:40:13 +08:00
xcosmosbox
26947db479
feat(weixin): add voice message, typing keepalive, getConfig cache, and QR polling resilience
2026-03-31 19:40:13 +08:00
xcosmosbox
0514233217
fix(weixin): align full_url AES key handling and quoted media fallback logic with reference
...
1. Fix full_url path for non-image media to require AES key and skip download when missing,
instead of persisting encrypted bytes as valid media.
2. Restrict quoted media fallback trigger to only when no top-level media item exists,
not when top-level media download/decryption fails.
2026-03-31 19:40:13 +08:00
xcosmosbox
345c393e53
feat(weixin): implement getConfig and sendTyping
2026-03-31 19:40:13 +08:00
xcosmosbox
faf2b07923
feat(weixin): add fallback logic for referenced media download
2026-03-31 19:40:13 +08:00
xcosmosbox
efd42cc236
feat(weixin): implement QR redirect handling
2026-03-31 19:40:13 +08:00
xcosmosbox
3823042290
fix(weixin): correct PKCS7 unpadding for AES-ECB; support full_url for media download
2026-03-31 19:40:13 +08:00
xcosmosbox
5bdb7a90b1
feat(weixin):
...
1.align protocol headers with package.json metadata
2.support upload_full_url with fallback to upload_param
2026-03-31 19:40:13 +08:00
Xubin Ren
f450c6ef6c
fix(channel): preserve threaded streaming context
2026-03-31 19:26:07 +08:00
Paresh Mathur
0506e6c1c1
feat(discord): Use discord.py for stable discord channel ( #2486 )
...
Co-authored-by: Pares Mathur <paresh.2047@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-31 19:26:07 +08:00
npodbielski
b94d4c0509
feat(matrix): streaming support ( #2447 )
...
* Added streaming message support with incremental updates for Matrix channel
* Improve Matrix message handling and add tests
* Adjust Matrix streaming edit interval to 2 seconds
---------
Co-authored-by: natan <natan@podbielski>
2026-03-31 19:26:07 +08:00
Xubin Ren
351e3720b6
test(agent): cover disabled subagent exec tool
...
Add a regression test for the maintainer fix so subagents cannot register ExecTool when exec support is disabled.
Made-with: Cursor
2026-03-31 12:14:28 +08:00
Xubin Ren
7fad14802e
feat: add Python SDK facade and per-session isolation
2026-03-31 11:26:43 +08:00