chengyongru
5cf78540a4
fix(agent): wait for exec sessions without polling ( #5526 )
2026-08-25 14:46:02 +08:00
chengyongru
04974b7607
fix(webui): preserve causal message order (NAN-29) ( #5503 )
2026-08-24 15:08:22 +08:00
chengyongru
7f288a49fc
fix(tui): preserve shell after Ctrl+C ( #5502 )
2026-08-24 14:32:48 +08:00
chengyongru
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
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
221e8a4e4a
feat(webui): polish sidebar and session transitions ( #5393 )
2026-08-14 17:03:11 +08:00
chengyongru
e226242dfc
fix(session): serialize canonical file access ( #5383 )
2026-08-14 10:32:17 +08:00
chengyongru
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
chengyongru
4b5319b760
feat(webui): add tabbed pane workbench ( #5322 )
2026-08-12 14:45:12 +08:00
chengyongru
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru
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
52e0a6a1e3
refactor(webui): split settings backend by domain ( #5323 )
2026-08-11 11:23:27 +08:00
chengyongru
8e77f3f8a4
feat(mcp): add browser OAuth for remote servers ( #5316 )
2026-08-10 23:44:37 +08:00
chengyongru
c281e090d0
refactor(webui): make gateway own settings services ( #5321 )
2026-08-10 18:10:55 +08:00
chengyongru
85a452e5c7
refactor(agent): replace reflective runtime state access ( #5319 )
2026-08-10 16:44:26 +08:00
chengyongru
71a99b0780
fix(webui): improve UX recovery and empty states ( #5315 )
2026-08-10 15:22:25 +08:00
chengyongru
66316f21da
docs: refresh WebUI user guidance ( #5312 )
2026-08-10 11:47:58 +08:00
chengyongru
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
chengyongru
411d6061ae
fix(webui): explain HTTPS requirement for voice input ( #5304 )
2026-08-09 21:17:57 +08:00
chengyongru
4e063f5695
fix(webui): prevent image hover clipping ( #5294 )
2026-08-08 18:05:00 +08:00
chengyongru
332c159b93
fix(weixin): harden protocol delivery, streaming, and login ( #5263 )
2026-08-07 16:53:31 +08:00
chengyongru
ff6deda178
fix: modernize dependency recovery guidance ( #5282 )
2026-08-07 13:58:13 +08:00
chengyongru
a95fd0ee82
perf(webui): reduce cold-start payload ( #5262 )
2026-08-06 13:24:34 +08:00
chengyongru
67805f5db8
feat: add provider-native request switches ( #5254 )
2026-08-05 18:26:39 +08:00
chengyongru
5a1ab44baa
fix(whatsapp): detect outbound media content before dispatch ( #5203 )
2026-08-05 15:44:23 +08:00
chengyongru
9098ffd38f
refactor(webui): improve visual consistency ( #5249 )
2026-08-05 13:24:45 +08:00
chengyongru
6e9ae5bd05
refactor(session): remove request-scoped access grants ( #5238 )
2026-08-05 10:18:46 +08:00
chengyongru
5770329542
fix(webui): render markdown in prompt rail previews ( #5244 )
2026-08-04 18:24:54 +08:00
chengyongru
287fd88fe4
fix(webui): refine inline token highlights ( #5241 )
2026-08-04 16:40:41 +08:00
chengyongru
2fe135db3e
feat(webui): add integrated Vite dev mode ( #5239 )
2026-08-04 16:14:32 +08:00
chengyongru
4e8702a47b
fix(anthropic): support Opus 5 effort controls ( #5236 )
2026-08-04 13:38:54 +08:00
chengyongru
f11710a578
fix(webui): show actual local trigger messages ( #5228 )
2026-08-03 16:43:01 +08:00
chengyongru
580824a15a
perf(webui): accelerate JSONL session list and thread loading ( #5194 )
2026-08-03 09:51:35 +08:00
chengyongru
cdb75f8e7d
feat(providers): support DeepSeek Responses API ( #5197 )
2026-08-01 11:53:51 +08:00
chengyongru
971b977a84
fix(weixin): recover refreshed state after session expiry ( #5196 )
2026-08-01 00:28:21 +08:00
chengyongru
172fe4f991
fix(webui): preserve user scroll ownership near tail ( #5193 )
2026-07-31 23:37:26 +08:00
chengyongru
6a1a45d07a
feat: preserve Responses reasoning state and compact context ( #5172 )
2026-07-30 22:39:43 +08:00
chengyongru
606ac56e8f
feat(webui): support remote Codex OAuth login ( #5174 )
2026-07-30 15:06:34 +08:00
chengyongru
e2563e2e74
refactor(cli): split commands into focused modules ( #5175 )
2026-07-30 15:01:35 +08:00
chengyongru
ad6900e56c
refactor(session): separate persistence behind SessionStore ( #5170 )
2026-07-30 11:51:13 +08:00
chengyongru
c33c188afb
fix(session): preserve history during idle compaction ( #5167 )
2026-07-30 10:45:45 +08:00
chengyongru
11fcd9cc5f
fix(webui): prevent redundant thread and media reloads ( #5164 )
2026-07-30 10:25:22 +08:00
chengyongru
129b74b4cf
feat(webui): track optimistic message delivery status ( #5162 )
2026-07-29 23:15:45 +08:00
chengyongru
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
393d429e0a
fix(ci): stabilize and speed up CI ( #5145 )
2026-07-28 22:55:59 +08:00
chengyongru
019d7816a7
fix(webui): animate reasoning drawer transitions ( #5143 )
2026-07-28 19:13:16 +08:00
chengyongru
24a392b671
fix(webui): open threads at latest message ( #5142 )
2026-07-28 18:52:34 +08:00
chengyongru
0c6c0438d4
feat(config): add actionable startup diagnostics and WebUI recovery ( #5110 )
2026-07-28 18:52:05 +08:00
chengyongru
76ab04ac48
fix(webui): keep streaming tail visible ( #5140 )
2026-07-28 18:18:44 +08:00
chengyongru
12f828ea3d
fix(agent): read document attachments on demand ( #5122 )
2026-07-28 13:33:06 +08:00
chengyongru
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
6bc454dab4
fix(webui): prevent composer resize scroll jitter ( #5121 )
2026-07-28 01:01:49 +08:00
chengyongru
f78ad59ed0
fix(memory): preserve Dream input integrity ( #5114 )
2026-07-27 21:37:13 +08:00
chengyongru
c13df29457
feat(memory): restore Dream model preset override ( #5107 )
2026-07-27 14:43:25 +08:00
chengyongru
281b4b7f0b
chore: remove expired v0.3.1 compatibility shims ( #5106 )
2026-07-27 13:53:04 +08:00
chengyongru
ee93725e83
fix(webui): restore file edit diff display ( #5096 )
2026-07-26 19:05:53 +08:00
chengyongru
b0ef759e2c
Smooth WebUI streaming with state-driven viewport motion ( #4696 )
2026-07-26 00:18:24 +08:00
chengyongru
6e0eb46705
feat: launch first-time setup in webui ( #5078 )
2026-07-24 21:16:43 +08:00
chengyongru
d3e4b35f2b
fix(webui): honor custom gateway port with Vite ( #5076 )
2026-07-24 18:40:09 +08:00
chengyongru
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
9957de5226
fix(webui): show quoted context after follow-up send ( #5071 )
2026-07-24 14:19:33 +08:00
chengyongru
aae259c790
feat(webui): simplify model preset settings ( #5061 )
2026-07-24 00:55:06 +08:00
chengyongru
4b1547db7d
style(webui): unify settings and dark mode surfaces ( #5058 )
2026-07-23 17:47:20 +08:00
chengyongru
96eb965aae
feat(webui): show the actual fallback model ( #5017 )
2026-07-23 15:57:13 +08:00
chengyongru
01cdfc8100
fix(telegram): expose proxy setup in WebUI ( #5033 )
2026-07-23 14:18:49 +08:00
chengyongru
9cf2fb19c2
feat(xai): surface hosted X Search activity ( #5050 )
2026-07-23 13:42:09 +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
chengyongru
b189a37648
fix(agent): preserve agent-owned state in project workspaces ( #4945 )
2026-07-22 17:25:22 +08:00
chengyongru
254497c02e
fix(webui): improve mobile composer layout ( #5030 )
2026-07-22 14:59:56 +08:00
chengyongru
96abb4d2c4
style(webui): clarify surface hierarchy ( #5029 )
2026-07-22 14:33:58 +08:00
chengyongru
63bc6e98a7
fix(webui): detect Chrome voice recording support ( #5027 )
2026-07-22 14:10:09 +08:00
chengyongru
3748f664b2
feat(config): watch runtime configuration changes ( #5026 )
2026-07-22 13:08:39 +08:00
chengyongru
7bf7469d90
feat(webui): show pin indicators for pinned chats ( #5025 )
2026-07-22 11:47:45 +08:00
chengyongru
9db0d9f3c9
refactor(agent): unify internal turn lifecycle ( #4993 )
2026-07-21 00:14:27 +08:00
chengyongru
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
76f3eead42
style(webui): simplify Markdown code blocks ( #5002 )
2026-07-20 14:41:23 +08:00
chengyongru
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
a6b68178aa
fix(whatsapp): allow group ids in allowFrom ( #4834 )
2026-07-19 19:16:37 +08:00
chengyongru
2099cb009e
fix(providers): fail over across provider failure domains
2026-07-19 17:37:55 +08:00
chengyongru
ba86dccc8d
fix(webui): correct activity timer duration ( #4649 )
2026-07-15 16:46:05 +08:00
chengyongru
5ed28a6744
fix(webui): validate inferred file paths before preview ( #4935 )
2026-07-15 10:45:40 +08:00
chengyongru
aa70aa48f9
fix(cli): point onboarding to the WebUI launcher ( #4938 )
2026-07-15 10:34:46 +08:00
chengyongru
88c38e9b38
fix(restart): deliver completion after channel reconnects ( #4931 )
2026-07-15 01:08:39 +08:00
chengyongru
37165b0db0
feat(webui): highlight slash commands and app mentions ( #4933 )
2026-07-15 00:34:22 +08:00
chengyongru
07f54c25e3
chore(codex): identify failing request stage ( #4929 )
2026-07-14 22:40:10 +08:00
chengyongru
6c9e3a2cc3
refactor(webui): centralize native runtime access ( #4769 )
2026-07-14 15:00:30 +08:00
chengyongru
b7048cf76a
feat(webui): support document attachments with ingress safeguards ( #4771 )
...
* feat: support document attachments in webui
* fix(webui): normalize document attachment MIME
* refactor(webui): move attachment policy out of channel
* fix(webui): reject oversized attachments before send
* fix(webui): align Portuguese attachment errors
* refactor(webui): separate ingress and transport limits
* fix(webui): reject malformed attachment payloads
2026-07-14 14:47:42 +08:00
chengyongru
b2759e8a6b
docs: reorganize documentation around user workflows ( #4916 )
2026-07-14 13:59:47 +08:00
chengyongru
4a3818e03c
docs: update recent changes through July 12 ( #4913 )
2026-07-13 22:50:22 +08:00
chengyongru
234e895e5a
fix(codex): align OAuth defaults and setup docs ( #4910 )
...
* fix(codex): align OAuth defaults and setup docs
* docs(codex): clarify provider settings key
* docs(codex): simplify OAuth setup guidance
2026-07-13 17:04:33 +08:00
chengyongru
8c9110fee3
fix(dream): filter non-Dream history commits ( #4905 )
...
* fix(dream): filter non-Dream history commits
* fix(dream): resolve filtered commit diffs
2026-07-13 17:04:12 +08:00
chengyongru
e864fba522
fix: align optional dependency contracts ( #4907 )
...
* fix: align optional dependency contracts
* ci: avoid duplicate test suite
* test: drop removed langsmith assertions
* test: rely on generic extra coverage
* test: restore existing plugin coverage
2026-07-13 16:58:19 +08:00
chengyongru and Xubin Ren
5283ceae85
Add optional Nanobot plugin controls ( #4396 )
...
* feat: add optional nanobot features
* test: update azure install hint expectation
* fix: validate optional feature extras
maintainer edit: verify requested dependency extras before treating optional features as installed, propagate restart state from feature enablement, and align docs with the new plugins enable command.
* fix: bound optional feature installs
maintainer edit: make optional feature installs time out as a normal install failure instead of leaving the WebUI or CLI action waiting indefinitely.
* feat: slim optional channel dependencies
* fix: log optional install commands
* fix(webui): gate remote feature installs
* docs: clarify webhook plugin example
* fix(webui): harden optional feature installs
* fix: install optional deps without package fallback
* fix(cli): refine plugin feature controls
* fix(webui): count enabled nanobot features
* fix(webui): allow slow feature install routes
* fix(webui): allow disabling websocket channel
* fix(plugins): simplify optional feature controls
* fix(webui): polish apps catalog states
* fix(webui): confirm nanobot support installs
* fix(webui): polish nanobot install dialog
* fix(webui): suppress empty websocket handshakes
* fix(webui): clarify apps plugin summary
* fix(webui): localize workspace access copy
* fix(plugins): polish optional feature controls (#4691 )
---------
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com >
2026-07-03 18:17:52 +08:00
chengyongru
4a58b83acc
docs: make onboarding friendlier for beginners ( #4177 )
...
* docs: make onboarding friendlier for beginners
* docs: build clearer documentation paths
Maintainer edit: turn the onboarding follow-up into a layered docs structure for first-time setup, provider selection, troubleshooting, CLI reference, and source-level architecture. This keeps quick start focused while giving advanced users precise reference paths.
* docs: render architecture flow with mermaid
Maintainer edit: replace the ASCII architecture sketch with a GitHub-rendered Mermaid flowchart so the core runtime path is easier to scan in the PR and README docs.
* docs: recommend model presets for model config
Maintainer edit: make named modelPresets the primary model configuration path and expand fallback preset examples so string fallbacks are clearly preset names, not raw model IDs.
* docs: document api base urls and langfuse setup
Maintainer edit: explain when users need apiBase/base URL in quick start and provider docs, and add Langfuse tracing setup with troubleshooting links.
* docs: use python module pip consistently
Maintainer edit: keep install commands tied to the active Python interpreter by using python -m pip in the Azure optional dependency notes too.
* docs: add non-technical getting started path
Maintainer edit: add a wizard-first guide for users without terminal or JSON background, including a text TUI menu example and links from the main docs entrypoints.
* docs: avoid hard-wrapped prose in user docs
Maintainer edit: unwrap ordinary prose across user-facing documentation while preserving markdown structure, code blocks, tables, lists, and prompt/template files.
* docs: keep desktop list continuations nested
Maintainer edit: preserve list nesting after unwrapping prose in the desktop WebUI sync guide.
* docs: add one-command installer
Maintainer edit: add auditable macOS/Linux and Windows install scripts that install nanobot-ai and start the onboarding wizard, then document the commands in the main onboarding entrypoints.
* docs: add installer dry run mode
Maintainer edit: add --dry-run to the one-command installer scripts so users can preview Python detection, install source, pip command, and wizard behavior without changing their environment.
* docs: clean installer error output
Maintainer edit: make PowerShell installer failures print a concise Error: message instead of Write-Error call-site details.
* docs: add provider setup cookbook
Maintainer edit: add pasteable provider recipes for common hosted, local, fallback, runtime switching, and Langfuse setups, then link the cookbook from onboarding and troubleshooting entrypoints.
* docs: address review feedback
* docs: clarify reader paths
* docs: explain terminal basics for beginners
* docs: clarify wizard navigation
* docs: avoid duplicate onboarding steps
* docs: add setup status check
* docs: explain status output
* docs: remove provider recommendation wording
* docs: explain status diagnostics
* docs: reduce hard-wrapped guidance
* docs: migrate config examples to presets
* docs: clarify python command fallbacks
* docs: improve installer failure recovery
* docs: expand install troubleshooting
* docs: cover installer download failures
* docs: put stable install paths first
* docs: add bundled webui quick path
* docs: clarify provider-neutral setup
* docs: clarify gateway setup for chat surfaces
* docs: improve docs navigation paths
* docs: add configuration quick jump
* docs: clarify provider secret variables
* chore: request PR review acknowledgement
Empty commit: please read the PR review comments and reply on the PR to confirm that you have received them.
This commit intentionally changes no files; it exists only to notify the remote Codex run so it can end its active goal.
* docs: add README start here guide
* docs: avoid provider recommendation wording
* docs: guide next steps after first reply
* docs: explain merging JSON snippets
* docs: add CLI command chooser
* docs: add configuration task map
* docs: add deployment readiness guide
* docs: simplify WebUI entry paths
* docs: add provider recipe chooser
* docs: fix provider factual references
Update OpenRouter and LongCat model examples, align Bedrock guidance, and make fallback snippets schema-valid.
Also correct group policy wording and image-generation provider lists to match the current code.
* fix: keep PowerShell installer from closing caller shell
* docs: mention self-guided configuration
2026-06-10 00:36:22 +08:00
chengyongru
0a396aa6e2
Improve tool call validation strictness ( #4190 )
...
* Improve tool call validation strictness
Reject near-miss tool names without executing suggested tools. Require object-shaped tool parameters while preserving only lossless JSON wire-shape normalization.
* Tighten tool call argument validation
* Simplify tool argument validation tests
* Improve tool name suggestions
* Simplify tool suggestion helpers
* Limit tool suggestions to canonical matches
* Allow repair only for tool history replay
* Clarify non-object tool argument errors
* Inline replay tool argument normalization
* Track only successful tool executions
* Reject JSON null tool arguments
2026-06-09 14:50:40 +08:00