Commit Graph
3976 Commits
Author SHA1 Message Date
chengyongruandchengyongru e51ffc8978 fix(webui): make mutations reconnect-safe 2026-08-16 21:40:14 +08:00
Xubin Ren dec89a49a3 fix(settings): serialize gateway configuration updates 2026-08-16 11:50:56 +08:00
Xubin Ren 731b8fc2ed fix(models): synchronize canonical runtime selection 2026-08-16 11:50:56 +08:00
Xubin Ren 0a6ee1c539 fix(models): preserve preset rename compatibility 2026-08-16 11:50:56 +08:00
Xubin Ren a956fe1d60 fix(models): show inline preset name conflicts 2026-08-16 11:50:56 +08:00
Xubin Ren c15e6f2a37 fix(models): support atomic preset renames 2026-08-16 11:50:56 +08:00
Xubin Ren 3dc38f6396 refactor(models): unify preset names 2026-08-16 11:50:56 +08:00
Xubin Ren 8dc08853e4 fix(providers): preserve legacy OrcaRouter custom configs 2026-08-16 00:26:51 +08:00
Xubin Ren 656480546b test(providers): cover OrcaRouter WebUI integration 2026-08-16 00:26:51 +08:00
XiaoHuo888andXubin Ren fd2d419956 feat(providers): add OrcaRouter as a named gateway provider
Registers OrcaRouter (https://www.orcarouter.ai) as a built-in OpenAI-compatible gateway provider mirroring the OpenRouter wiring: registry spec (sk-orca- key prefix, default base URL), ProvidersConfig field, WebUI icon/brand + deferred model list, docs, and tests.
2026-08-16 00:26:51 +08:00
Xubin Ren 50391b2fb7 fix(webui): keep actions hidden while turn id resolves 2026-08-16 00:14:42 +08:00
ZhouandXubin Ren 48126f049d fix(webui): hide actions until turn end 2026-08-16 00:14:42 +08:00
Xubin Ren 5e84055dbb fix(plugins): verify content at skill read boundary 2026-08-16 00:01:54 +08:00
yu-xin-candXubin Ren e99b1a11aa fix(plugins): revalidate cached skill roots 2026-08-16 00:01:54 +08:00
Xubin Ren 2f19068eb0 fix(session): clear file state at deletion boundary 2026-08-15 23:49:20 +08:00
yu-xin-candXubin Ren 42afebb0cb fix(agent): bound per-session file state 2026-08-15 23:49:20 +08:00
Xubin Ren ecef2b055d fix(cron): prevent replay after persistence failure 2026-08-15 23:34:35 +08:00
f10renceandXubin Ren 8bdf5ed2b2 fix(cron): keep scheduler alive when job-store persistence fails
A single OSError from _save_store() (disk full, permission change, locked
file) escaped _on_timer's try/finally and killed the asyncio timer task,
because _arm_timer() sits outside the block. All scheduled jobs silently
stopped until restart or a manual re-arm via add_job/update_job/remove_job.

Move _arm_timer() into the finally block and guard the whole tick body
(including _load_store, which can persist during agent-binding migrations)
so a transient persistence failure is logged and retried on the next tick
instead of killing the scheduler.

Add test_save_store_failure_does_not_kill_scheduler to cover the failure
path that existing tests (which mock _arm_timer) never exercised.
2026-08-15 23:34:35 +08:00
Xubin Ren 577e6ea3b5 fix(webui): clarify model preset display names 2026-08-15 23:30:19 +08:00
Xubin Ren 86d228b38e fix(webui): include grouped tabs in range selection 2026-08-15 15:40:52 +08:00
Xubin Ren e630e78075 fix(webui): preserve range selection and turn timing 2026-08-15 15:40:52 +08:00
shen0122andchengyongru 4de728a555 fix(anthropic): treat stream idle timeout as inactivity only, not total time 2026-08-14 23:18:13 +08:00
Xubin Ren 1437d1a75a fix(webui): allow moving active group panes 2026-08-14 19:55:25 +09:00
Xubin Ren b378319d4a fix(webui): enforce localized group copy 2026-08-14 19:55:25 +09:00
Xubin Ren 4266ef2099 feat(webui): allow dragging panes out of groups 2026-08-14 19:55:25 +09:00
Xubin Ren 60993597de refactor(webui): unify shared shape system 2026-08-14 19:55:25 +09:00
Xubin Ren 7c04af86f9 style(webui): simplify delete confirmation icon 2026-08-14 19:55:25 +09:00
Xubin Ren cdf225cb89 feat(webui): allow dragging topics into groups 2026-08-14 19:55:25 +09:00
Xubin Ren 4d18dd2c30 fix(webui): align group rename dialog terminology 2026-08-14 19:55:25 +09:00
chengyongruandGitHub 221e8a4e4a feat(webui): polish sidebar and session transitions (#5393) 2026-08-14 17:03:11 +08:00
dajiaohuangandchengyongru 057c5e849b fix(session): restore state when file-cap archive fails 2026-08-14 11:22:22 +08:00
chengyongruandGitHub e226242dfc fix(session): serialize canonical file access (#5383) 2026-08-14 10:32:17 +08:00
Xubin Ren e3d1819a2b fix(webui): isolate folder picker environment 2026-08-14 04:03:54 +09:00
Xubin Ren 9703656b25 test(webui): make folder picker tests portable 2026-08-14 04:03:54 +09:00
Xubin Ren 26c9687b80 feat(webui): add native workspace folder picker 2026-08-14 04:03:54 +09:00
Xubin Ren 410e5e5121 test(websocket): isolate persisted runtime data 2026-08-14 03:46:01 +09:00
Xubin Ren 335808e525 fix(webui): bound restored session previews 2026-08-14 03:46:01 +09:00
Xubin Ren afad96af5f refactor(webui): simplify transcript discovery 2026-08-14 03:46:01 +09:00
Xubin Ren fd7eb8e046 fix(webui): restore transcript-only session history 2026-08-14 03:46:01 +09:00
Bobbyandchengyongru af582246f1 [Security] exec.allowPatterns shell-chain bypass allows unintended command execution
Closes #5306
2026-08-13 11:05:04 +08:00
aiguozhi123456andchengyongru e07ecc8cc5 fix(weixin): persist QR-login token to config.json on connect
When config.json has no channels configuration, the WebUI QR login
connect flow obtained a token but only saved it to account.json (state
file). The subsequent post-connect enable step (set_channel_config_enabled)
read config.json, found no weixin section, and wrote back a default
config with token="" - silently losing the freshly obtained credential.

Add _persist_connect_credentials to _commit_account so the token and
base_url are written to config.json before the enable step runs. This
covers both the WebUI connect flow and the CLI QR login path, mirroring
the established Feishu save_registration_result pattern.
2026-08-13 11:04:16 +08:00
arcdrake22andXubin Ren 0c684c5a99 fix(gemini): preserve imported tool history across model switches
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com>
2026-08-13 03:07:37 +09:00
yorkhellenandXubin Ren d3382d7e57 fix(exec): guard bare and named-user home paths
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com>
2026-08-13 02:50:58 +09:00
Xubin Renandshixi-li 76f629e925 fix(web): keep credential URLs out of failure logs
Co-authored-by: shixi-li <40780706+shixi-li@users.noreply.github.com>
2026-08-13 02:26:22 +09:00
Xubin Ren 5f916bbd3a fix(web): keep credential redirects away from Jina 2026-08-13 02:26:22 +09:00
shixi-liandXubin Ren 31a71d6cd5 fix(web): keep credential-bearing URLs away from the remote Jina reader 2026-08-13 02:26:22 +09:00
Xubin Renandyu-xin-c 498070d036 test(docker): separate host bwrap requirements
Co-authored-by: yu-xin-c <175149126+yu-xin-c@users.noreply.github.com>
2026-08-13 02:13:51 +09:00
Xubin Renandyu-xin-c b7f0ae95a9 test(docker): run bwrap check as final user
Co-authored-by: yu-xin-c <175149126+yu-xin-c@users.noreply.github.com>
2026-08-13 02:13:51 +09:00
Xubin Renandyu-xin-c b571d3b9ff fix(docker): prevent privilege regain after bootstrap
Co-authored-by: yu-xin-c <175149126+yu-xin-c@users.noreply.github.com>
2026-08-13 02:13:51 +09:00
yu-xin-candXubin Ren 3741ecda0b fix(docker): restore capabilities for privilege drop 2026-08-13 02:13:51 +09:00