100 Commits
Author SHA1 Message Date
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub b9e7c7f6fe fix: queue concurrent subagents (#5566)
* fix: queue concurrent subagents

* chore: keep spawn schema concise
2026-08-27 17:53:28 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 0c84725b13 fix(gateway): retry MCP readiness before turns (#5535) 2026-08-26 11:29:48 +08:00
chengyongruandGitHub 42f37dc4c0 fix(provider): stabilize Codex prompt cache routing (#5540) 2026-08-26 01:36:00 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 4b2965c8f3 feat: add demand-driven document retrieval (#5525) 2026-08-25 15:34:48 +08:00
chengyongruandGitHub 5cf78540a4 fix(agent): wait for exec sessions without polling (#5526) 2026-08-25 14:46:02 +08:00
chengyongruandGitHub 04974b7607 fix(webui): preserve causal message order (NAN-29) (#5503) 2026-08-24 15:08:22 +08:00
chengyongruandGitHub 7f288a49fc fix(tui): preserve shell after Ctrl+C (#5502) 2026-08-24 14:32:48 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 221e8a4e4a feat(webui): polish sidebar and session transitions (#5393) 2026-08-14 17:03:11 +08:00
chengyongruandGitHub e226242dfc fix(session): serialize canonical file access (#5383) 2026-08-14 10:32:17 +08:00
chengyongruandGitHub 19997d20bb refactor: move MCP lifecycle out of AgentLoop (#5343) 2026-08-12 17:51:04 +08:00
chengyongruandGitHub 4b5319b760 feat(webui): add tabbed pane workbench (#5322) 2026-08-12 14:45:12 +08:00
chengyongruandGitHub d45c893f68 fix(webui): surface MCP runtime connection failures (#5331) 2026-08-11 23:52:02 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 52e0a6a1e3 refactor(webui): split settings backend by domain (#5323) 2026-08-11 11:23:27 +08:00
chengyongruandGitHub 8e77f3f8a4 feat(mcp): add browser OAuth for remote servers (#5316) 2026-08-10 23:44:37 +08:00
chengyongruandGitHub c281e090d0 refactor(webui): make gateway own settings services (#5321) 2026-08-10 18:10:55 +08:00
chengyongruandGitHub 85a452e5c7 refactor(agent): replace reflective runtime state access (#5319) 2026-08-10 16:44:26 +08:00
chengyongruandGitHub 71a99b0780 fix(webui): improve UX recovery and empty states (#5315) 2026-08-10 15:22:25 +08:00
chengyongruandGitHub 66316f21da docs: refresh WebUI user guidance (#5312) 2026-08-10 11:47:58 +08:00
chengyongruandGitHub 55ecda275d test: strengthen user-path coverage and CI gates (#5308) 2026-08-09 21:37:06 +08:00
chengyongruandGitHub 411d6061ae fix(webui): explain HTTPS requirement for voice input (#5304) 2026-08-09 21:17:57 +08:00
chengyongruandGitHub 4e063f5695 fix(webui): prevent image hover clipping (#5294) 2026-08-08 18:05:00 +08:00
chengyongruandGitHub 332c159b93 fix(weixin): harden protocol delivery, streaming, and login (#5263) 2026-08-07 16:53:31 +08:00
chengyongruandGitHub ff6deda178 fix: modernize dependency recovery guidance (#5282) 2026-08-07 13:58:13 +08:00
chengyongruandGitHub a95fd0ee82 perf(webui): reduce cold-start payload (#5262) 2026-08-06 13:24:34 +08:00
chengyongruandGitHub 67805f5db8 feat: add provider-native request switches (#5254) 2026-08-05 18:26:39 +08:00
chengyongruandGitHub 5a1ab44baa fix(whatsapp): detect outbound media content before dispatch (#5203) 2026-08-05 15:44:23 +08:00
chengyongruandGitHub 9098ffd38f refactor(webui): improve visual consistency (#5249) 2026-08-05 13:24:45 +08:00
chengyongruandGitHub 6e9ae5bd05 refactor(session): remove request-scoped access grants (#5238) 2026-08-05 10:18:46 +08:00
chengyongruandGitHub 5770329542 fix(webui): render markdown in prompt rail previews (#5244) 2026-08-04 18:24:54 +08:00
chengyongruandGitHub 287fd88fe4 fix(webui): refine inline token highlights (#5241) 2026-08-04 16:40:41 +08:00
chengyongruandGitHub 2fe135db3e feat(webui): add integrated Vite dev mode (#5239) 2026-08-04 16:14:32 +08:00
chengyongruandGitHub 4e8702a47b fix(anthropic): support Opus 5 effort controls (#5236) 2026-08-04 13:38:54 +08:00
chengyongruandGitHub f11710a578 fix(webui): show actual local trigger messages (#5228) 2026-08-03 16:43:01 +08:00
chengyongruandGitHub 580824a15a perf(webui): accelerate JSONL session list and thread loading (#5194) 2026-08-03 09:51:35 +08:00
chengyongruandGitHub cdb75f8e7d feat(providers): support DeepSeek Responses API (#5197) 2026-08-01 11:53:51 +08:00
chengyongruandGitHub 971b977a84 fix(weixin): recover refreshed state after session expiry (#5196) 2026-08-01 00:28:21 +08:00
chengyongruandGitHub 172fe4f991 fix(webui): preserve user scroll ownership near tail (#5193) 2026-07-31 23:37:26 +08:00
chengyongruandGitHub 6a1a45d07a feat: preserve Responses reasoning state and compact context (#5172) 2026-07-30 22:39:43 +08:00
chengyongruandGitHub 606ac56e8f feat(webui): support remote Codex OAuth login (#5174) 2026-07-30 15:06:34 +08:00
chengyongruandGitHub e2563e2e74 refactor(cli): split commands into focused modules (#5175) 2026-07-30 15:01:35 +08:00
chengyongruandGitHub ad6900e56c refactor(session): separate persistence behind SessionStore (#5170) 2026-07-30 11:51:13 +08:00
chengyongruandGitHub c33c188afb fix(session): preserve history during idle compaction (#5167) 2026-07-30 10:45:45 +08:00
chengyongruandGitHub 11fcd9cc5f fix(webui): prevent redundant thread and media reloads (#5164) 2026-07-30 10:25:22 +08:00
chengyongruandGitHub 129b74b4cf feat(webui): track optimistic message delivery status (#5162) 2026-07-29 23:15:45 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 393d429e0a fix(ci): stabilize and speed up CI (#5145) 2026-07-28 22:55:59 +08:00
chengyongruandGitHub 019d7816a7 fix(webui): animate reasoning drawer transitions (#5143) 2026-07-28 19:13:16 +08:00
chengyongruandGitHub 24a392b671 fix(webui): open threads at latest message (#5142) 2026-07-28 18:52:34 +08:00
chengyongruandGitHub 0c6c0438d4 feat(config): add actionable startup diagnostics and WebUI recovery (#5110) 2026-07-28 18:52:05 +08:00
chengyongruandGitHub 76ab04ac48 fix(webui): keep streaming tail visible (#5140) 2026-07-28 18:18:44 +08:00
chengyongruandGitHub 12f828ea3d fix(agent): read document attachments on demand (#5122) 2026-07-28 13:33:06 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 6bc454dab4 fix(webui): prevent composer resize scroll jitter (#5121) 2026-07-28 01:01:49 +08:00
chengyongruandGitHub f78ad59ed0 fix(memory): preserve Dream input integrity (#5114) 2026-07-27 21:37:13 +08:00
chengyongruandGitHub c13df29457 feat(memory): restore Dream model preset override (#5107) 2026-07-27 14:43:25 +08:00
chengyongruandGitHub 281b4b7f0b chore: remove expired v0.3.1 compatibility shims (#5106) 2026-07-27 13:53:04 +08:00
chengyongruandGitHub ee93725e83 fix(webui): restore file edit diff display (#5096) 2026-07-26 19:05:53 +08:00
chengyongruandGitHub b0ef759e2c Smooth WebUI streaming with state-driven viewport motion (#4696) 2026-07-26 00:18:24 +08:00
chengyongruandGitHub 6e0eb46705 feat: launch first-time setup in webui (#5078) 2026-07-24 21:16:43 +08:00
chengyongruandGitHub d3e4b35f2b fix(webui): honor custom gateway port with Vite (#5076) 2026-07-24 18:40:09 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 9957de5226 fix(webui): show quoted context after follow-up send (#5071) 2026-07-24 14:19:33 +08:00
chengyongruandGitHub aae259c790 feat(webui): simplify model preset settings (#5061) 2026-07-24 00:55:06 +08:00
chengyongruandGitHub 4b1547db7d style(webui): unify settings and dark mode surfaces (#5058) 2026-07-23 17:47:20 +08:00
chengyongruandGitHub 96eb965aae feat(webui): show the actual fallback model (#5017) 2026-07-23 15:57:13 +08:00
chengyongruandGitHub 01cdfc8100 fix(telegram): expose proxy setup in WebUI (#5033) 2026-07-23 14:18:49 +08:00
chengyongruandGitHub 9cf2fb19c2 feat(xai): surface hosted X Search activity (#5050) 2026-07-23 13:42:09 +08:00
chengyongruandGitHub c7393c785e feat(providers): add xAI Grok OAuth with capability-gated X Search (#5035) 2026-07-23 11:55:16 +08:00
chengyongruandGitHub c22efb5f7a feat(agent): make model presets session-scoped (#4866) 2026-07-23 00:38:49 +08:00
chengyongruandGitHub 66690fdb0c fix(webui): deliver late subagent results as new turns (#4992) 2026-07-22 23:04:36 +08:00
chengyongruandGitHub b189a37648 fix(agent): preserve agent-owned state in project workspaces (#4945) 2026-07-22 17:25:22 +08:00
chengyongruandGitHub 254497c02e fix(webui): improve mobile composer layout (#5030) 2026-07-22 14:59:56 +08:00
chengyongruandGitHub 96abb4d2c4 style(webui): clarify surface hierarchy (#5029) 2026-07-22 14:33:58 +08:00
chengyongruandGitHub 63bc6e98a7 fix(webui): detect Chrome voice recording support (#5027) 2026-07-22 14:10:09 +08:00
chengyongruandGitHub 3748f664b2 feat(config): watch runtime configuration changes (#5026) 2026-07-22 13:08:39 +08:00
chengyongruandGitHub 7bf7469d90 feat(webui): show pin indicators for pinned chats (#5025) 2026-07-22 11:47:45 +08:00
chengyongruandGitHub 9db0d9f3c9 refactor(agent): unify internal turn lifecycle (#4993) 2026-07-21 00:14:27 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 76f3eead42 style(webui): simplify Markdown code blocks (#5002) 2026-07-20 14:41:23 +08:00
chengyongruandGitHub 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
chengyongruandGitHub a6b68178aa fix(whatsapp): allow group ids in allowFrom (#4834) 2026-07-19 19:16:37 +08:00