Xubin Ren
603feef3aa
Merge remote-tracking branch 'origin/main' into codex/webui-segmented-transcript-store
2026-06-10 19:11:37 +08:00
Xubin Ren
e168bb2754
feat(webui): segment transcript storage
2026-06-10 18:28:55 +08:00
chengyongru
5d7f2e60c2
fix(feishu): lazy-load lark sdk during gateway startup
2026-06-10 18:09:27 +08:00
Xubin Ren
7186039be1
fix(websocket): limit final stream text to inline endings
2026-06-10 15:52:39 +08:00
Moran
9c492143b4
search: add Bocha web search provider
2026-06-10 15:51:15 +08:00
erikmackinnon
31bfec58d0
Add Exa web search provider
2026-06-10 15:02:07 +08:00
Xubin Ren
916525f94a
refactor(webui): shrink fork implementation
2026-06-10 04:26:06 +08:00
Xubin Ren
73d4b1cb2f
feat(webui): persist fork boundary metadata
2026-06-10 04:26:06 +08:00
Bayern4ever-dot
03bca4c0a9
feat(webui): add assistant reply fork-from-here
2026-06-10 04:26:06 +08:00
Flávio Veloso Soares
0580c186c1
test(email): update tests for postActionExpunge option
2026-06-09 14:50:59 +08:00
Flávio Veloso Soares
4369eb20fc
feat(email): support IMAP MOVE and UID expunge fallbacks
2026-06-09 14:50:59 +08:00
Flávio Veloso Soares
ec5460d23e
feat(email): add configurable post-action handling
2026-06-09 14:50:59 +08:00
Xubin Ren
9c81280300
feat(transcription): add shared voice input support ( #4232 )
...
* feat(webui): add voice transcription input
* feat(webui): render ANSI output in code blocks
* refactor(webui): isolate voice recorder logic
* refactor(transcription): keep websocket ingress thin
* refactor(transcription): resolve channel audio settings on demand
* style(webui): neutralize voice waveform color
* feat(webui): add voice input tooltip
* feat(webui): add voice input keyboard shortcut
* fix(webui): distinguish voice shortcut platforms
* fix(webui): place voice button after model selector
* refactor(webui): share voice hold recording helpers
* fix(desktop): allow microphone voice input
* fix(webui): stabilize token usage month labels
* feat(webui): show voice input on settings overview
* fix(webui): label voice capability as recognition
* fix(webui): align capability overview status
* refactor(webui): isolate transcription socket handling
* fix(webui): soften silent voice waveform
* refactor(audio): clarify transcription service location
* docs(transcription): clarify audio and provider boundaries
* fix(exec): reduce session output polling flake
2026-06-09 01:08:49 +08:00
dvp
4f5f965f09
fix(whatsapp): handle LID group mentions ( #2663 )
...
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com>
2026-06-07 18:02:39 +08:00
Xubin Ren
ab9f49970d
feat(desktop): polish desktop shell and shared WebUI surfaces ( #4195 )
...
* feat(desktop): add native host scaffold
* feat(webui): track turns and usage in gateway
* feat(webui): polish desktop chat experience
* feat(apps): add ArcGIS and Joplin logos
* feat(desktop): polish shell and shared surfaces
* fix(webui): avoid preview chips for glob references
* test: align CI expectations for token fallback
* feat(webui): preview prompt rail entries
* feat(webui): add prompt navigator drawer
* style(webui): refine prompt navigator placement
* style(webui): align prompt navigator with header actions
* style(webui): simplify prompt navigator header
* refactor(webui): clean thread resource refresh
* feat(desktop): add native reply notifications
* fix(webui): preserve desktop restart and replay state
* fix(desktop): harden gateway proxy startup
* fix(web): fall back when readability is unavailable
* fix(desktop): hide window instead of closing on macos
* fix(webui): unify desktop header actions
* fix(webui): simplify prompt history rows
* fix(desktop): log notification delivery failures
* chore(desktop): clean source package artifacts
* fix(cron): support one-time relative reminders
* fix(webui): reveal scroll button in place
* Revert "fix(cron): support one-time relative reminders"
This reverts commit 4c4661da120a3c7283e0768412bae48604e7390b.
* refactor(webui): extract token usage heatmap
* docs(desktop): clarify contributor guides
---------
Co-authored-by: chengyongru <2755839590@qq.com>
2026-06-06 19:49:33 +08:00
Xubin Ren
6a0368b32f
fix(telegram): route /skill command
2026-06-05 18:48:51 +08:00
chengyongru
710d00a179
fix(webui): persist user messages for refresh
2026-06-05 16:13:51 +08:00
chengyongru
3da68ac7fe
Fix pairing for Weixin and Telegram DMs
2026-06-05 16:13:31 +08:00
chengyongru
c574b028c1
fix(feishu): allow punctuation after mention placeholders
...
maintainer edit: Keep the shared-prefix guard for Feishu numbered mention keys while still resolving placeholders followed by punctuation, matching the previous user-visible mention behavior.
2026-06-05 15:55:53 +08:00
Xubin Ren
894811db8b
fix(feishu): strip leading bot mention before commands
2026-06-05 15:55:53 +08:00
Kunal Karmakar
9fdc6f892a
Fix test
2026-06-05 01:17:34 +08:00
chengyongru
24e56fcf07
test: improve deterministic unit test coverage
2026-06-04 19:41:32 +08:00
yorkhellen
7c3808327f
fix(qq): send pairing codes for unauthorized C2C users
2026-06-04 10:42:51 +08:00
chengyongru
facdc41a16
fix: restore top-level import order
2026-06-03 16:57:29 +08:00
chengyongru
3b46386887
test(email): cover progress message suppression
...
Maintainer edit: add a regression test for the email channel fix so progress/tool-event messages return before SMTP is opened instead of sending empty emails.
2026-06-03 15:01:47 +08:00
chengyongru
b2ae5d936f
fix(email): bound outbound attachment handling
...
maintainer edit: apply the existing email attachment count and size limits to outbound media, and include visible fallback notes when an attachment cannot be sent.
2026-06-02 21:17:31 +08:00
Pringlas
82a3fd03b1
test(email): cover agent-initiated file attachments in outbound messages
2026-06-02 21:17:31 +08:00
chengyongru
2a98360105
refactor: split WebUI gateway dependencies
...
Maintainer edit for PR 4115: rebase onto origin/main and split gateway HTTP routing from token, media, and workspace services so WebSocketChannel depends on explicit gateway services instead of GatewayHTTPHandler internals.
Preserve file edit channel capabilities and restore tools.restrict_to_workspace wiring through ChannelManager.
2026-06-02 17:14:38 +08:00
chengyongru
0acf7cd373
refactor: remove gateway-specific kwargs from WebSocketChannel
2026-06-02 17:14:38 +08:00
chengyongru
e5eb08e3e5
refactor: WebSocketChannel accepts injected http_handler, update all tests
2026-06-02 17:14:38 +08:00
chengyongru
22673c2a27
refactor: update import paths after ws_http move to webui/
2026-06-02 17:14:38 +08:00
chengyongru
1a585288b2
refactor: extract GatewayHTTPHandler from WebSocketChannel
...
Extract all HTTP route handling (bootstrap, sessions, settings, media,
commands, sidebar state, static serving, token management) into a new
GatewayHTTPHandler class in nanobot/channels/ws_http.py.
WebSocketChannel is reduced from 1907 to 1372 lines (-28%), retaining
only WebSocket connection management and message dispatch.
No behavior change. 3730 tests pass, 0 failures.
Shared HTTP utility functions (path parsing, response builders, auth
helpers) now live in ws_http.py with websocket.py importing from there,
avoiding circular dependencies.
Backwards-compat property aliases on WebSocketChannel ensure existing
tests continue to work without modification.
2026-06-02 17:14:38 +08:00
Xubin Ren
f382133bb4
refactor(webui): move media replay helpers out of websocket channel
2026-06-02 16:18:57 +08:00
Xubin Ren
8bc4a80035
fix(webui): suppress restart handshake noise
2026-06-02 16:18:57 +08:00
Xubin Ren
21c60b0c97
fix(webui): resign replayed assistant media
2026-06-02 16:18:57 +08:00
chengyongru
d5692bf94c
fix(napcat): harden async handlers and action errors
...
maintainer edit: track background handler tasks, surface failed OneBot actions, reject image redirects, and add focused unit coverage for group routing and edge cases.
2026-06-02 14:10:10 +08:00
Xubin Ren
edf34d857a
search: add Volcengine web search provider
2026-06-02 13:55:12 +08:00
李明振
da0aafcfbd
feat(dingtalk): add group_user_isolation to separate sessions per user in group chats
...
Add a new config option group_user_isolation (default: false) to the
DingTalk channel. When enabled, each user in a group chat gets their own
session while bot replies are still routed to the shared group chat.
2026-06-01 23:01:19 +08:00
chengyongru
2f0e638bd1
refactor: route file edit progress via channel capability
2026-06-01 23:00:53 +08:00
hamb1y
a3241c33ba
Require auth for WebSocket token issuance
2026-05-31 15:15:54 +08:00
Xubin Ren
2b4c984e9a
fix(matrix): align SAS verification message flow
2026-05-31 01:00:14 +08:00
mytechdream
68712fc489
fix(matrix): handle SAS device verification
2026-05-31 01:00:14 +08:00
Xubin Ren
3dcf511c84
feat(webui): refine output timeline and model controls ( #4108 )
...
* feat(webui): refine output timeline and composer queue
* feat(webui): add provider model picker
* fix(webui): polish model settings and heartbeat checks
* chore: keep heartbeat changes out of webui pr
* refactor(webui): isolate settings routes
* fix(providers): align minimax anthropic test
* fix(providers): keep minimax anthropic base sdk-compatible
* fix(providers): normalize anthropic base urls
2026-05-30 23:45:26 +08:00
Xubin Ren
1d4000560d
fix(matrix): reject boolean media sizes
2026-05-30 15:34:19 +08:00
hinotoi-agent
4dd89f4c46
fix(matrix): bound inbound media downloads
2026-05-30 15:34:19 +08:00
Xubin Ren
9ed5643d93
refactor(webui): isolate signed media serving
2026-05-29 17:26:58 +08:00
Xubin Ren
4a0035ef8f
fix(webui): support video byte ranges
2026-05-29 17:26:58 +08:00
Xubin Ren
a71e6a0ae8
fix(webui): persist markdown video previews
2026-05-29 17:26:58 +08:00
hanyuanling
ec4f9e9857
Add document extraction channel toggle
2026-05-29 15:31:03 +08:00
Xubin Ren
3a420136bb
feat(webui): add project workspaces and access controls ( #4007 )
...
* feat(webui): add project workspaces and access controls
* feat(webui): add project workspaces and access controls
* refactor(tools): centralize workspace access resolution
* refactor(webui): remove unused workspace host state
* fix(webui): hide estimated file edit label
* fix(webui): clarify file edit deletion feedback
* fix(webui): label deleted file activity
* fix(webui): flatten file edit activity rows
* fix(core): remove path-only patch deletion
* fix(core): keep apply patch non-destructive
* refactor(webui): trim workspace host plumbing
* fix(tools): register exec with tools config
2026-05-29 03:42:53 +08:00