chengyongru and GitHub
6cd7063682
refactor(agent): defer transcript assembly to runner ( #5608 )
...
* refactor(agent): defer transcript assembly to runner
Keep persisted history and the fresh turn as explicit inputs until the Runner assembles the provider transcript. Preserve ContextBuilder and direct AgentRunner compatibility while making the save boundary structural.
Refs NAN-81.
* fix(providers): preserve mixed adjacent user content
2026-08-31 00:06:15 +08:00
chengyongru and GitHub
e73cce706c
refactor(agent): extract tool execution boundary ( #5569 )
...
* refactor(agent): extract tool execution boundary
* test(agent): use extracted tool execution boundary
2026-08-28 13:52:03 +08:00
chengyongru and GitHub
cace42af14
refactor(memory): remove consolidation ratio ( #5575 )
...
* refactor(memory): remove consolidation ratio
* docs(memory): document fixed consolidation policy
* docs(memory): simplify consolidation overview
* docs(memory): rely on soft wrapping
2026-08-28 13:20:09 +08:00
chengyongru and GitHub
29025f5a8b
fix(agent): default request concurrency to unlimited ( #5572 )
...
* fix(agent): default request concurrency to unlimited
* test(agent): clarify session serialization coverage
2026-08-27 23:31:38 +08:00
chengyongru and GitHub
3c61fef7e8
refactor(memory): decouple archival from provider state ( #5565 )
...
* refactor(memory): decouple archival from provider state
* test(memory): remove obsolete consolidation offset coverage
2026-08-27 21:21:15 +08:00
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