chengyongru and Xubin Ren
af0e3441d7
Fix WebUI startup blocking on slow gateway routes
2026-06-13 21:59:36 +08:00
Xubin Ren and GitHub
dac4e39bcf
Merge PR #4299 : feat(cron): bind scheduled automations to sessions
...
feat(cron): bind scheduled automations to sessions
2026-06-13 00:07:55 +08:00
chengyongru
e1ff0f37d9
fix: preserve WhatsApp forwarded metadata
...
maintainer edit: carry the bridge isForwarded flag into channel metadata so forwarded voice messages remain distinguishable after transcription.
2026-06-12 18:21:47 +08:00
chengyongru
32d8a1dd7b
fix: hide internal cron prompts from webui
2026-06-12 18:17:28 +08:00
chengyongru
a50b3ac0f2
fix: harden cron session automation flows
2026-06-12 18:13:25 +08:00
chengyongru
8335554894
refactor: migrate legacy cron payloads to bound sessions
2026-06-12 16:51:20 +08:00
chengyongru
c4b64a4caf
refactor: preserve origin session routing for cron
2026-06-12 14:21:09 +08:00
chengyongru
80524e9e88
refactor: bind cron jobs to origin sessions
2026-06-12 14:00:53 +08:00
chengyongru
271b3651d7
refactor: use cron turn naming internally
2026-06-12 11:57:35 +08:00
chengyongru
d9d481bc15
refactor: centralize cron session metadata keys
2026-06-12 11:43:23 +08:00
chengyongru
0ff8cd0cb3
fix: honor unified session for webui automations
2026-06-12 10:19:12 +08:00
2d9260cb9f
feat(slack): add groupRequireMention for allowlist channels
...
Slack's groupPolicy could either restrict to specific channels
("allowlist") or require an @mention ("mention"), but not both: in
allowlist mode the bot replied to every message in approved channels.
Add a groupRequireMention flag so that, when groupPolicy is "allowlist",
the bot only responds in channels listed in groupAllowFrom AND only when
@mentioned. Mirrors Signal's group.requireMention. No effect for the
"mention"/"open" policies, so existing configs are unchanged.
Extract the mention check into _is_mention and reuse it from both the
mention and allowlist branches.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 00:23:27 +08:00
chengyongru
29f1473940
fix: keep session automations bound-only
2026-06-12 00:15:57 +08:00
chengyongru
8dac6b2889
fix: show websocket cron jobs in automations
2026-06-11 23:53:45 +08:00
chengyongru
3725b42e0e
fix: use shared bound cron predicate
...
maintainer edit: make gateway execution, WebUI automation listing, and delete protection agree on the new bound cron shape. Legacy delivery payloads that carry sessionKey are excluded from the WebUI-bound automation surface.
2026-06-11 23:09:21 +08:00
chengyongru
a326ba40f4
feat(cron): bind scheduled automations to sessions
2026-06-11 19:48:07 +08:00
chengyongru and Xubin Ren
ffae1dca6d
fix: keep Telegram streamed code blocks balanced
...
Maintainer edit: split final streamed Telegram markdown before rendering to HTML so long fenced code blocks do not produce unbalanced <pre><code> chunks while still respecting Telegram's rendered HTML limit.
2026-06-11 13:52:19 +08:00
axelray-dev and Xubin Ren
a5a816abaf
fix(telegram): move fenced-code-block splitting into Telegram-specific helper
...
Move the fenced-code-block-aware splitting logic out of the shared
split_message helper (used by Signal, Slack, Discord, Weixin, etc.)
and into a Telegram-specific _split_telegram_markdown function.
The shared split_message remains a plain-text chunker. The Telegram
channel now uses _split_telegram_markdown for its raw Markdown paths
that feed _markdown_to_telegram_html, preventing broken HTML rendering
when splits fall inside fenced code blocks.
Also fixes a regression where content beginning with whitespace before
a fence could emit a whitespace-only chunk.
Addresses review feedback on #4257 .
2026-06-11 13:52:19 +08:00
Xubin Ren
e1e643de2a
refactor(webui): keep sidebar index out of session manager
2026-06-10 20:45:29 +08:00
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 and Xubin Ren
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 and Xubin Ren
9c492143b4
search: add Bocha web search provider
2026-06-10 15:51:15 +08:00
erikmackinnon and Xubin Ren
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 and Xubin Ren
03bca4c0a9
feat(webui): add assistant reply fork-from-here
2026-06-10 04:26:06 +08:00
Flávio Veloso Soares and Xubin Ren
0580c186c1
test(email): update tests for postActionExpunge option
2026-06-09 14:50:59 +08:00
Flávio Veloso Soares and Xubin Ren
4369eb20fc
feat(email): support IMAP MOVE and UID expunge fallbacks
2026-06-09 14:50:59 +08:00
Flávio Veloso Soares and Xubin Ren
ec5460d23e
feat(email): add configurable post-action handling
2026-06-09 14:50:59 +08:00
Xubin Ren and GitHub
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
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
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 and Xubin Ren
710d00a179
fix(webui): persist user messages for refresh
2026-06-05 16:13:51 +08:00
chengyongru and Xubin Ren
3da68ac7fe
Fix pairing for Weixin and Telegram DMs
2026-06-05 16:13:31 +08:00
chengyongru and Xubin Ren
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 and Xubin Ren
9fdc6f892a
Fix test
2026-06-05 01:17:34 +08:00
chengyongru and Xubin Ren
24e56fcf07
test: improve deterministic unit test coverage
2026-06-04 19:41:32 +08:00
yorkhellen and Xubin Ren
7c3808327f
fix(qq): send pairing codes for unauthorized C2C users
2026-06-04 10:42:51 +08:00
chengyongru and Xubin Ren
facdc41a16
fix: restore top-level import order
2026-06-03 16:57:29 +08:00
chengyongru and Xubin Ren
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 and Xubin Ren
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 and Xubin Ren
82a3fd03b1
test(email): cover agent-initiated file attachments in outbound messages
2026-06-02 21:17:31 +08:00
chengyongru and Xubin Ren
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 and Xubin Ren
0acf7cd373
refactor: remove gateway-specific kwargs from WebSocketChannel
2026-06-02 17:14:38 +08:00
chengyongru and Xubin Ren
e5eb08e3e5
refactor: WebSocketChannel accepts injected http_handler, update all tests
2026-06-02 17:14:38 +08:00
chengyongru and Xubin Ren
22673c2a27
refactor: update import paths after ws_http move to webui/
2026-06-02 17:14:38 +08:00