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
XiaoHuo888 and Xubin 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
Zhou and Xubin 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-c and Xubin 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-c and Xubin 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
f10rence and Xubin 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
shen0122 and chengyongru
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
chengyongru and GitHub
221e8a4e4a
feat(webui): polish sidebar and session transitions ( #5393 )
2026-08-14 17:03:11 +08:00
dajiaohuang and chengyongru
057c5e849b
fix(session): restore state when file-cap archive fails
2026-08-14 11:22:22 +08:00
chengyongru and GitHub
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
Bobby and chengyongru
af582246f1
[Security] exec.allowPatterns shell-chain bypass allows unintended command execution
...
Closes #5306
2026-08-13 11:05:04 +08:00
aiguozhi123456 and chengyongru
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
arcdrake22 and Xubin 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
yorkhellen and Xubin 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 Ren and shixi-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-li and Xubin Ren
31a71d6cd5
fix(web): keep credential-bearing URLs away from the remote Jina reader
2026-08-13 02:26:22 +09:00
Xubin Ren and yu-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 Ren and yu-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 Ren and yu-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-c and Xubin Ren
3741ecda0b
fix(docker): restore capabilities for privilege drop
2026-08-13 02:13:51 +09:00
chengyongru and chengyongru
edec29e997
feat(providers): support DeepSeek V4 Pro Responses
2026-08-13 01:02:41 +08:00
Xubin Ren and santhreal
01c7323d74
fix(exec): parse shell path boundaries safely
...
Co-authored-by: santhreal <64453045+santhreal@users.noreply.github.com >
2026-08-13 01:53:38 +09:00
Xubin Ren
001a7492c2
fix(exec): guard POSIX double-slash absolute paths
2026-08-13 01:53:38 +09:00
santhreal and Xubin Ren
6fc0807fbf
fix(tools): handle redirection and grouping delimiters in ExecTool path guard
2026-08-13 01:53:38 +09:00
Xubin Ren and lmzopq
cd7480945b
fix(session): preserve history across storage relocation
...
Co-authored-by: lmzopq <1646888+lmzopq@users.noreply.github.com >
2026-08-13 01:41:10 +09:00