chengyongru and GitHub
4d204ba077
feat(tui): support pasting clipboard images ( #5563 )
...
* feat(tui): support pasting clipboard images
* fix(tui): keep image placeholders atomic
* fix(tui): reconcile duplicate image placeholders
* fix(tui): retain highlighted image placeholders
* fix(tui): preserve image placeholder layout
* fix(tui): keep image display state local
* fix(tui): reject images in commands
2026-08-27 20:37:43 +08:00
chengyongru and GitHub
b9e7c7f6fe
fix: queue concurrent subagents ( #5566 )
...
* fix: queue concurrent subagents
* chore: keep spawn schema concise
2026-08-27 17:53:28 +08:00
chengyongru and GitHub
39de4594d7
refactor(agent): decouple loop from message tool state ( #5559 )
...
* refactor(agent): decouple loop from message tool state
* refactor(agent): scope message delivery tracking per run
* refactor(agent): clarify message delivery scope name
2026-08-27 17:23:16 +08:00
chengyongru and GitHub
3a62b0b744
fix(tui): surface chat connection failures ( #5543 )
...
* fix(tui): surface chat connection failures
* fix(tui): keep connection copy implementation-agnostic
* test(tui): avoid millisecond timing boundary
* fix(tui): use gateway health for connection status
* fix(tui): use product-level readiness copy
2026-08-27 11:37:30 +08:00
chengyongru and GitHub
d8b4f612f2
fix(gateway): recover degraded WebSocket listener ( #5544 )
...
* fix(gateway): recover degraded WebSocket listener
* test(websocket): model listener readiness in startup stub
* fix(tui): keep launcher alive during gateway recovery
* test(websocket): colocate listener lifecycle coverage
2026-08-27 10:23:35 +08:00
chengyongru and GitHub
f9d449ef6c
refactor(webui): isolate websocket application orchestration ( #5548 )
...
* refactor(webui): extract session attach projection
* refactor(webui): isolate websocket application orchestration
* refactor(webui): tighten websocket application boundary
* test(webui): assert module logger for fork failures
2026-08-26 18:04:38 +08:00
chengyongru and GitHub
9d34fc5af2
refactor(agent): remove loop iteration state ( #5549 )
...
* refactor(agent): remove loop iteration state
* docs(my): remove stale iteration guidance
2026-08-26 15:57:47 +08:00
chengyongru and GitHub
4f6c0aedfa
refactor(agent): make run usage explicit ( #5546 )
...
* refactor(agent): make run usage explicit
* fix(api): capture usage per run
2026-08-26 15:18:53 +08:00
chengyongru and GitHub
0c84725b13
fix(gateway): retry MCP readiness before turns ( #5535 )
2026-08-26 11:29:48 +08:00
chengyongru and GitHub
42f37dc4c0
fix(provider): stabilize Codex prompt cache routing ( #5540 )
2026-08-26 01:36:00 +08:00
chengyongru and GitHub
3ee3791626
refactor(tui): clarify active composer actions ( #5538 )
...
* fix(tui): queue busy submissions on Enter
* fix(tui): remove Tab queue shortcut
* refactor(tui): clarify active composer actions
* refactor(tui): simplify active composer hint
2026-08-26 00:46:31 +08:00
chengyongru and GitHub
4b2965c8f3
feat: add demand-driven document retrieval ( #5525 )
2026-08-25 15:34:48 +08:00
chengyongru and GitHub
5cf78540a4
fix(agent): wait for exec sessions without polling ( #5526 )
2026-08-25 14:46:02 +08:00
chengyongru and GitHub
04974b7607
fix(webui): preserve causal message order (NAN-29) ( #5503 )
2026-08-24 15:08:22 +08:00
chengyongru and GitHub
7f288a49fc
fix(tui): preserve shell after Ctrl+C ( #5502 )
2026-08-24 14:32:48 +08:00
chengyongru and GitHub
7604dc47f9
fix(webui): keep iOS PWA controls inside safe area ( #5477 )
...
* fix(webui): keep iOS PWA controls inside safe area
* fix(webui): blend iOS PWA chrome into dark canvas
* fix(webui): sync PWA chrome with app theme
2026-08-22 01:11:20 +08:00
chengyongru and GitHub
26764f2423
feat(tui): add /detach command ( #5461 )
...
* feat(tui): add detach command
* fix(tui): print exact detached gateway stop command
2026-08-21 15:50:07 +08:00
chengyongru and GitHub
221e8a4e4a
feat(webui): polish sidebar and session transitions ( #5393 )
2026-08-14 17:03:11 +08:00
chengyongru and GitHub
e226242dfc
fix(session): serialize canonical file access ( #5383 )
2026-08-14 10:32:17 +08:00
chengyongru and GitHub
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
chengyongru and GitHub
4b5319b760
feat(webui): add tabbed pane workbench ( #5322 )
2026-08-12 14:45:12 +08:00
chengyongru and GitHub
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru and GitHub
57d81bc1cd
fix(providers): preserve nanobot tools with OpenRouter server tools ( #5335 )
...
* fix(providers): preserve functions with extra body tools
* docs(providers): clarify extra body tool merging
2026-08-11 18:23:27 +08:00
chengyongru and GitHub
52e0a6a1e3
refactor(webui): split settings backend by domain ( #5323 )
2026-08-11 11:23:27 +08:00
chengyongru and GitHub
8e77f3f8a4
feat(mcp): add browser OAuth for remote servers ( #5316 )
2026-08-10 23:44:37 +08:00
chengyongru and GitHub
c281e090d0
refactor(webui): make gateway own settings services ( #5321 )
2026-08-10 18:10:55 +08:00
chengyongru and GitHub
85a452e5c7
refactor(agent): replace reflective runtime state access ( #5319 )
2026-08-10 16:44:26 +08:00
chengyongru and GitHub
71a99b0780
fix(webui): improve UX recovery and empty states ( #5315 )
2026-08-10 15:22:25 +08:00
chengyongru and GitHub
66316f21da
docs: refresh WebUI user guidance ( #5312 )
2026-08-10 11:47:58 +08:00
chengyongru and GitHub
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
chengyongru and GitHub
411d6061ae
fix(webui): explain HTTPS requirement for voice input ( #5304 )
2026-08-09 21:17:57 +08:00
chengyongru and GitHub
4e063f5695
fix(webui): prevent image hover clipping ( #5294 )
2026-08-08 18:05:00 +08:00
chengyongru and GitHub
332c159b93
fix(weixin): harden protocol delivery, streaming, and login ( #5263 )
2026-08-07 16:53:31 +08:00
chengyongru and GitHub
ff6deda178
fix: modernize dependency recovery guidance ( #5282 )
2026-08-07 13:58:13 +08:00
chengyongru and GitHub
a95fd0ee82
perf(webui): reduce cold-start payload ( #5262 )
2026-08-06 13:24:34 +08:00
chengyongru and GitHub
67805f5db8
feat: add provider-native request switches ( #5254 )
2026-08-05 18:26:39 +08:00
chengyongru and GitHub
5a1ab44baa
fix(whatsapp): detect outbound media content before dispatch ( #5203 )
2026-08-05 15:44:23 +08:00
chengyongru and GitHub
9098ffd38f
refactor(webui): improve visual consistency ( #5249 )
2026-08-05 13:24:45 +08:00
chengyongru and GitHub
6e9ae5bd05
refactor(session): remove request-scoped access grants ( #5238 )
2026-08-05 10:18:46 +08:00
chengyongru and GitHub
5770329542
fix(webui): render markdown in prompt rail previews ( #5244 )
2026-08-04 18:24:54 +08:00
chengyongru and GitHub
287fd88fe4
fix(webui): refine inline token highlights ( #5241 )
2026-08-04 16:40:41 +08:00
chengyongru and GitHub
2fe135db3e
feat(webui): add integrated Vite dev mode ( #5239 )
2026-08-04 16:14:32 +08:00
chengyongru and GitHub
4e8702a47b
fix(anthropic): support Opus 5 effort controls ( #5236 )
2026-08-04 13:38:54 +08:00
chengyongru and GitHub
f11710a578
fix(webui): show actual local trigger messages ( #5228 )
2026-08-03 16:43:01 +08:00
chengyongru and GitHub
580824a15a
perf(webui): accelerate JSONL session list and thread loading ( #5194 )
2026-08-03 09:51:35 +08:00
chengyongru and GitHub
cdb75f8e7d
feat(providers): support DeepSeek Responses API ( #5197 )
2026-08-01 11:53:51 +08:00
chengyongru and GitHub
971b977a84
fix(weixin): recover refreshed state after session expiry ( #5196 )
2026-08-01 00:28:21 +08:00
chengyongru and GitHub
172fe4f991
fix(webui): preserve user scroll ownership near tail ( #5193 )
2026-07-31 23:37:26 +08:00
chengyongru and GitHub
6a1a45d07a
feat: preserve Responses reasoning state and compact context ( #5172 )
2026-07-30 22:39:43 +08:00
chengyongru and GitHub
606ac56e8f
feat(webui): support remote Codex OAuth login ( #5174 )
2026-07-30 15:06:34 +08:00
chengyongru and GitHub
e2563e2e74
refactor(cli): split commands into focused modules ( #5175 )
2026-07-30 15:01:35 +08:00
chengyongru and GitHub
ad6900e56c
refactor(session): separate persistence behind SessionStore ( #5170 )
2026-07-30 11:51:13 +08:00
chengyongru and GitHub
c33c188afb
fix(session): preserve history during idle compaction ( #5167 )
2026-07-30 10:45:45 +08:00
chengyongru and GitHub
11fcd9cc5f
fix(webui): prevent redundant thread and media reloads ( #5164 )
2026-07-30 10:25:22 +08:00
chengyongru and GitHub
129b74b4cf
feat(webui): track optimistic message delivery status ( #5162 )
2026-07-29 23:15:45 +08:00
chengyongru and GitHub
757ad9c764
refactor: enforce BasedPyright strict type checking ( #5158 )
2026-07-29 21:37:11 +08:00
e703481755
fix(memory): expose media references to session consolidation ( #5157 )
...
Co-authored-by: shakewingo <yaoyingshakewin@gmail.com >
Co-authored-by: bingqilinweimaotai <111987281+bingqilinweimaotai@users.noreply.github.com >
2026-07-29 15:18:44 +08:00
chengyongru and GitHub
393d429e0a
fix(ci): stabilize and speed up CI ( #5145 )
2026-07-28 22:55:59 +08:00
chengyongru and GitHub
019d7816a7
fix(webui): animate reasoning drawer transitions ( #5143 )
2026-07-28 19:13:16 +08:00
chengyongru and GitHub
24a392b671
fix(webui): open threads at latest message ( #5142 )
2026-07-28 18:52:34 +08:00
chengyongru and GitHub
0c6c0438d4
feat(config): add actionable startup diagnostics and WebUI recovery ( #5110 )
2026-07-28 18:52:05 +08:00
chengyongru and GitHub
76ab04ac48
fix(webui): keep streaming tail visible ( #5140 )
2026-07-28 18:18:44 +08:00
chengyongru and GitHub
12f828ea3d
fix(agent): read document attachments on demand ( #5122 )
2026-07-28 13:33:06 +08:00
chengyongru and GitHub
ef9e687f19
refactor(core): remove redundant runtime scaffolding ( #5127 )
2026-07-28 11:07:58 +08:00
chengyongru
4c77126b3d
docs: improve README landing page
2026-07-28 01:48:34 +08:00
chengyongru and GitHub
6bc454dab4
fix(webui): prevent composer resize scroll jitter ( #5121 )
2026-07-28 01:01:49 +08:00
chengyongru and GitHub
f78ad59ed0
fix(memory): preserve Dream input integrity ( #5114 )
2026-07-27 21:37:13 +08:00
chengyongru and GitHub
c13df29457
feat(memory): restore Dream model preset override ( #5107 )
2026-07-27 14:43:25 +08:00
chengyongru and GitHub
281b4b7f0b
chore: remove expired v0.3.1 compatibility shims ( #5106 )
2026-07-27 13:53:04 +08:00
chengyongru and GitHub
ee93725e83
fix(webui): restore file edit diff display ( #5096 )
2026-07-26 19:05:53 +08:00
chengyongru and GitHub
b0ef759e2c
Smooth WebUI streaming with state-driven viewport motion ( #4696 )
2026-07-26 00:18:24 +08:00
chengyongru and GitHub
6e0eb46705
feat: launch first-time setup in webui ( #5078 )
2026-07-24 21:16:43 +08:00
chengyongru and GitHub
d3e4b35f2b
fix(webui): honor custom gateway port with Vite ( #5076 )
2026-07-24 18:40:09 +08:00
chengyongru and GitHub
5be176a6a0
feat(webui): switch model presets from the composer ( #5077 )
2026-07-24 17:34:26 +08:00
chengyongru
9aab94c766
Revert "fix: preserve pending message runtime context"
...
This reverts commit cad368f585 .
2026-07-24 14:47:50 +08:00
chengyongru and GitHub
9957de5226
fix(webui): show quoted context after follow-up send ( #5071 )
2026-07-24 14:19:33 +08:00
chengyongru and GitHub
aae259c790
feat(webui): simplify model preset settings ( #5061 )
2026-07-24 00:55:06 +08:00
chengyongru and GitHub
4b1547db7d
style(webui): unify settings and dark mode surfaces ( #5058 )
2026-07-23 17:47:20 +08:00
chengyongru and GitHub
96eb965aae
feat(webui): show the actual fallback model ( #5017 )
2026-07-23 15:57:13 +08:00
chengyongru and GitHub
01cdfc8100
fix(telegram): expose proxy setup in WebUI ( #5033 )
2026-07-23 14:18:49 +08:00
chengyongru and GitHub
9cf2fb19c2
feat(xai): surface hosted X Search activity ( #5050 )
2026-07-23 13:42:09 +08:00
chengyongru and GitHub
c7393c785e
feat(providers): add xAI Grok OAuth with capability-gated X Search ( #5035 )
2026-07-23 11:55:16 +08:00
chengyongru and GitHub
c22efb5f7a
feat(agent): make model presets session-scoped ( #4866 )
2026-07-23 00:38:49 +08:00
chengyongru and GitHub
66690fdb0c
fix(webui): deliver late subagent results as new turns ( #4992 )
2026-07-22 23:04:36 +08:00
chengyongru and GitHub
b189a37648
fix(agent): preserve agent-owned state in project workspaces ( #4945 )
2026-07-22 17:25:22 +08:00
chengyongru and GitHub
254497c02e
fix(webui): improve mobile composer layout ( #5030 )
2026-07-22 14:59:56 +08:00
chengyongru and GitHub
96abb4d2c4
style(webui): clarify surface hierarchy ( #5029 )
2026-07-22 14:33:58 +08:00
chengyongru and GitHub
63bc6e98a7
fix(webui): detect Chrome voice recording support ( #5027 )
2026-07-22 14:10:09 +08:00
chengyongru and GitHub
3748f664b2
feat(config): watch runtime configuration changes ( #5026 )
2026-07-22 13:08:39 +08:00
chengyongru and GitHub
7bf7469d90
feat(webui): show pin indicators for pinned chats ( #5025 )
2026-07-22 11:47:45 +08:00
chengyongru and GitHub
9db0d9f3c9
refactor(agent): unify internal turn lifecycle ( #4993 )
2026-07-21 00:14:27 +08:00
chengyongru and GitHub
8423cf3eeb
fix(channels): complete dependency manifest migration ( #4995 )
...
* fix(channels): complete dependency manifest migration
* docs(docker): clarify custom uid dependency installs
* fix(channels): keep dependency preinstall internal
* refactor(channels): move dependency installer to scripts
* fix(docker): limit runtime write access
2026-07-20 15:24:57 +08:00
chengyongru and GitHub
76f3eead42
style(webui): simplify Markdown code blocks ( #5002 )
2026-07-20 14:41:23 +08:00
chengyongru and GitHub
462a0dfb0f
refactor(channels): make built-in channels self-contained ( #4908 )
...
* refactor(channels): own setup and instance contracts
* refactor(channels): isolate management contracts
* refactor(channels): normalize activation contracts
* fix(channels): enforce management contracts
* refactor(channels): finish setup ownership migration
* fix(channels): harden management contracts
* fix(channels): enforce lazy loading and runtime ownership
* fix(feishu): make multi-instance startup idempotent
* fix(webui): render channel setup contracts cleanly
* fix(feishu): stop websocket clients cleanly
* fix(channels): enforce persistence and activation gates
* fix(channels): preserve global feature action scope
* fix(channels): apply defaults for single plugins
* fix(channels): enforce management contract boundaries
* refactor(feishu): remove identity helper indirection
* fix(channels): preserve management setup contracts
* refactor(channels): generalize instance settings UI
* refactor(channels): package channel plugins with web UI metadata
* refactor(channels): make built-ins self-contained packages
* test(channels): colocate tests with channel packages
* fix(dingtalk): use official brand icon
* feat(channels): colocate webui translations
* docs(channels): clarify plugin ownership
* test(exec): remove output wait race
* refactor(channels): unify plugin descriptors
* fix(channels): enforce descriptor-owned contracts
* refactor(channels): finish package-owned plugin setup
* refactor(channels): use repository-owned packages only
* fix(channels): self-describe dependencies and runtime state
* fix(channels): warn about legacy entry points
2026-07-19 23:30:49 +08:00
chengyongru and GitHub
a6b68178aa
fix(whatsapp): allow group ids in allowFrom ( #4834 )
2026-07-19 19:16:37 +08:00
chengyongru and GitHub
2099cb009e
fix(providers): fail over across provider failure domains
2026-07-19 17:37:55 +08:00
chengyongru and GitHub
ba86dccc8d
fix(webui): correct activity timer duration ( #4649 )
2026-07-15 16:46:05 +08:00
chengyongru and GitHub
5ed28a6744
fix(webui): validate inferred file paths before preview ( #4935 )
2026-07-15 10:45:40 +08:00
chengyongru and GitHub
aa70aa48f9
fix(cli): point onboarding to the WebUI launcher ( #4938 )
2026-07-15 10:34:46 +08:00
chengyongru and GitHub
88c38e9b38
fix(restart): deliver completion after channel reconnects ( #4931 )
2026-07-15 01:08:39 +08:00