2506 Commits

Author SHA1 Message Date
chengyongru
d576804f23 feat(channels): enable tool hints by default 2026-07-26 21:22:12 +08:00
santhreal
7c94ba9643 fix(session): coerce null session metadata to empty dict 2026-07-26 17:47:16 +08:00
santhreal
745757cc37 fix(memory): skip non-dict history.jsonl lines when reading 2026-07-26 17:45:51 +08:00
santhreal
259d8a018c fix(skills): tolerate null requires/bins/env in skill metadata 2026-07-26 17:44:41 +08:00
Xubin Ren
9a7debcb48 chore: defer compatibility cleanup to v0.3.1 2026-07-25 21:07:33 +08:00
Xubin Ren
5328a95add chore(release): prepare v0.3.0 2026-07-25 15:46:46 +08:00
chengyongru
6e0eb46705
feat: launch first-time setup in webui (#5078) 2026-07-24 21:16:43 +08:00
Xubin Ren
e260d9b31c fix(agent): apply execution policy to existing workspaces 2026-07-24 19:25:52 +08:00
Xubin Ren
51f11a8548 docs(agent): execute authorized tasks through verification 2026-07-24 19:25:52 +08:00
Xubin Ren
7e15c4c447 fix(agent): track inline subagent lifecycle 2026-07-24 19:13:51 +08:00
Xubin Ren
3a400e0207 feat(agent): support inline subagent consultation 2026-07-24 19:13:51 +08:00
Xubin Ren
8e4fe9cfaf fix(providers): preserve non-multimodal tool lists 2026-07-24 18:58:32 +08:00
Xubin Ren
07a81d70be fix(providers): preserve multimodal tool outputs 2026-07-24 18:58:32 +08:00
chengyongru
9aab94c766 Revert "fix: preserve pending message runtime context"
This reverts commit cad368f58512b444a93aaede0c5741a3488c9d98.
2026-07-24 14:47:50 +08:00
hamb1y
cad368f585 fix: preserve pending message runtime context 2026-07-24 12:28:13 +08:00
George Pickett
0b38c48399 feat(webui): add Parallel Search MCP preset 2026-07-24 12:26:37 +08:00
chengyongru
aae259c790
feat(webui): simplify model preset settings (#5061) 2026-07-24 00:55:06 +08:00
seteiro
4490f8cfe4 fix(webui): allow media directory access when restrictToWorkspace is enabled
Add get_media_dir() as an extra allowed root in file_preview path resolution so uploaded images and documents remain previewable even with workspace restrictions on. Closes #5028
2026-07-24 00:30:49 +08:00
AxelRay
78f4c132d9
fix(exec): extract absolute paths after equals sign in shell guard (#4594) 2026-07-23 23:58:01 +08:00
santhreal
7e9426d9bd fix(telegram): hard-cut when fence body cut lands on the prefix
A leading space in the fenced body made the soft cut land at min_code_pos
and re-emit the same fence forever. Require progress past the fence line.
2026-07-23 23:56:18 +08:00
santhreal
98d661775e fix(telegram): hard-cut fence splits when the closer cannot fit
Adaptive HTML limits can shrink max_len to the fence prefix size. Treat
budget <= min_code_pos as a hard cut so the splitter still advances.
2026-07-23 23:56:18 +08:00
santhreal
017a4946e2 fix(telegram): advance markdown split on long single-line fences
When a fenced code body has no interior newlines, the splitter cut at the
opening fence line and re-emitted the same content forever. Prefer breaks
inside the body after the fence so long JSON/minified blocks still split.
2026-07-23 23:56:18 +08:00
KDB
648fc92673 fix(exec): retain stale sessions after cleanup failure
Only remove idle exec sessions after process termination succeeds so later cleanup and shutdown paths can retry failed kills.
2026-07-23 23:55:00 +08:00
KDB
274613f064 fix(session): tolerate files removed during listing 2026-07-23 23:53:56 +08:00
Xubin Ren
fc9d17eb7b fix(documents): bound nested DOCX table parsing 2026-07-23 16:53:59 +08:00
Xubin Ren
60ab580f8b fix(documents): preserve DOCX table content 2026-07-23 16:53:59 +08:00
chengyongru
96eb965aae
feat(webui): show the actual fallback model (#5017) 2026-07-23 15:57:13 +08:00
chengyongru
4188ffc88d chore: pin migration TODOs to v0.2.4 2026-07-23 15:40:44 +08:00
chengyongru
089216f9c7 chore(session): schedule legacy fallback removal for v0.2.4 2026-07-23 14:53:00 +08:00
axelray-dev
464f71b488 fix(session): fall back to legacy paths in metadata reads
Fixes #4940
2026-07-23 14:53:00 +08:00
chengyongru
15de6be0af fix(providers): fall back on authentication errors 2026-07-23 14:52:04 +08:00
chengyongru
01cdfc8100
fix(telegram): expose proxy setup in WebUI (#5033) 2026-07-23 14:18:49 +08:00
Arthur K.
3647875aba fix: add one second to retry after delays 2026-07-23 14:10:27 +08:00
santhreal
299bcf491b fix(cron): skip null runHistory elements when loading jobs.json
Null entries in state.runHistory raised TypeError and quarantined the
store. Skip non-dict elements like LocalTrigger.from_dict already does.
2026-07-23 14:07:06 +08:00
santhreal
0191c0db73 fix(pairing): treat null approved channel lists as empty
pairing.json with "telegram": null crashed is_approved during load.
Treat non-list channel entries as an empty allow-list.
2026-07-23 14:04:53 +08:00
santhreal
5851bd432a fix(slack): keep fenced markdown tables intact in _to_mrkdwn 2026-07-23 14:03:09 +08:00
santhreal
8195181783 fix(feishu): keep fenced markdown tables out of card tables 2026-07-23 14:02:33 +08:00
chengyongru
9cf2fb19c2
feat(xai): surface hosted X Search activity (#5050) 2026-07-23 13:42:09 +08:00
chengyongru
5f054c0e74 fix(agent): deliver non-streamed finalization responses 2026-07-23 13:16:47 +08:00
Xubin Ren
2f4f00bb9f refactor(image): reuse the model picker 2026-07-23 12:42:24 +08:00
Xubin Ren
1616fa9f14 feat(image): apply generation settings live 2026-07-23 12:42:24 +08:00
chengyongru
c7393c785e
feat(providers): add xAI Grok OAuth with capability-gated X Search (#5035) 2026-07-23 11:55:16 +08:00
chengyongru
c22efb5f7a
feat(agent): make model presets session-scoped (#4866) 2026-07-23 00:38:49 +08:00
chengyongru
66690fdb0c
fix(webui): deliver late subagent results as new turns (#4992) 2026-07-22 23:04:36 +08:00
Xubin Ren
aa8387fb4d feat(webui): polish agent output and app discovery 2026-07-22 22:42:31 +08:00
chengyongru
b189a37648
fix(agent): preserve agent-owned state in project workspaces (#4945) 2026-07-22 17:25:22 +08:00
chengyongru
80085085d9 fix(exec): retain failed owner session cleanup 2026-07-22 15:28:34 +08:00
yorkhellen
7b1d81a868 fix(subagent): cascade exec session termination on /stop
cancel_by_session() only cancelled asyncio tasks, leaving child
processes from exec sessions orphaned. Since each SubagentManager
now owns a dedicated ExecSessionManager, terminate those sessions
by owner_session_key after cancelling tasks.

Add ExecSessionManager.terminate_by_owner() to kill all sessions
for a given owner, and call it from cancel_by_session().
2026-07-22 15:28:34 +08:00
chengyongru
3748f664b2
feat(config): watch runtime configuration changes (#5026) 2026-07-22 13:08:39 +08:00
seteiro
79d9455313
fix(providers): add Qwen model-level thinking style mapping (#5023)
Add _QWEN_THINKING_MODELS to _MODEL_THINKING_STYLES with enable_thinking style. Prevents Qwen 3.5/3.6/3.7 models from exposing raw reasoning content in chat responses. Closes #4934
2026-07-22 10:46:22 +08:00