Till Adam and Xubin Ren
f573ecfe56
perf(email): fetch headers before body, use UID SEARCH to skip re-fetch
...
The IMAP poll loop previously downloaded the entire message body for
every UNSEEN message before running any filter (self-sent, SPF/DKIM,
allow-list), and only learned the UID by parsing it back out of that
fetch response. Rejected messages stay unseen and get re-fetched in
full on every subsequent poll.
Switch to UID SEARCH (UIDs come back directly, no per-message fetch
needed to learn them) so already-processed UIDs are skipped before any
network fetch, then fetch headers only to evaluate every filter — the
full body is downloaded only for messages that pass every check and
are actually delivered. No behavior change: filter outcomes and
\Seen semantics are unchanged.
2026-08-30 17:38:44 +08:00
Xubin Ren
1ac1b35c84
fix(cron): sanitize migrated legacy metadata
2026-08-30 17:24:05 +08:00
Oxygen56 and Xubin Ren
679a07460e
fix(cron): sanitize persisted origin metadata
2026-08-30 17:24:05 +08:00
Oxygen56 and Xubin Ren
919e3d341e
fix(agent): add retry hint to tool exceptions
2026-08-30 17:03:51 +08:00
yu-xin-c and Xubin Ren
2c55934198
fix(agent): bound session message rate-limit state
2026-08-30 16:46:36 +08:00
Xubin Ren
5afdffff51
fix(agent): settle reasoning close before cancellation
2026-08-30 16:32:08 +08:00
KDB and Xubin Ren
bfe041def7
fix(agent): close reasoning stream on cancellation
2026-08-30 16:32:08 +08:00
Kail Tian and chengyongru
1c1b13a3a9
fix(tui): preserve cursor position on Windows exit
2026-08-30 12:17:40 +08:00
Xubin Ren
2c87143f77
fix(cli): preserve gateway log stream boundaries
2026-08-29 23:03:23 +08:00
Xubin Ren
d7df2726de
fix(cli): stream gateway logs in WebUI launcher
2026-08-29 23:03:23 +08:00
Xubin Ren
c02f013b17
fix(providers): harden OAuth model discovery
2026-08-29 21:22:20 +08:00
Xubin Ren
1c6483147e
refactor(providers): localize OAuth model discovery
2026-08-29 21:22:20 +08:00
Xubin Ren
7941450a5d
fix(providers): recover incomplete Grok searches
2026-08-29 21:22:20 +08:00
Xubin Ren
e6c839ee37
refactor(webui): simplify preset save label
2026-08-29 21:22:20 +08:00
Xubin Ren
97fb9aaf72
fix(providers): complete OAuth model discovery
2026-08-29 21:22:20 +08:00
Xubin Ren
bc4de246a4
feat(providers): discover OAuth model catalogs online
2026-08-29 21:22:20 +08:00
Xubin Ren
2389ab1f5a
feat(providers): add Grok 4.6 subscription model
2026-08-29 21:22:20 +08:00
Xubin Ren
65f2a6dbf5
fix(webui): hide SkillHub install counts
2026-08-29 15:29:18 +08:00
Xubin Ren
caab883f9f
fix(webui): preserve named pane groups
2026-08-29 14:22:19 +08:00
Xubin Ren
1fe14f2ee6
fix(cli): preserve root shell completion
2026-08-29 11:26:50 +08:00
Xubin Ren
7fc90ca6aa
feat(cli): make nanobot launch the terminal agent
2026-08-29 11:26:50 +08:00
chengyongru and chengyongru
559b2d2e5d
test(tui): avoid clipboard status race
2026-08-28 17:14:39 +08:00
chengyongru and chengyongru
a339966543
fix(tui): preserve full UI in Herdr panes
2026-08-28 16:36:07 +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 chengyongru
d6c112ab74
refactor(agent): load MyTool through tool loader
2026-08-27 14:05:21 +08:00
chengyongru and chengyongru
91f5a85db0
fix(agent): complete native reasoning lifecycle
2026-08-27 13:20:04 +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 chengyongru
55f85b3c1f
refactor(agent): remove duplicate progress streaming path
2026-08-27 10:56:07 +08:00
Xubin Ren
2113870e27
fix(cli): foreground the WebUI browser
2026-08-27 10:45:40 +08:00
Xubin Ren
b632186b5f
perf(webui): smooth paged history scrolling
2026-08-27 10:45:40 +08:00
Xubin Ren
d7d03b25ef
fix(webui): preserve semantic history anchors
2026-08-27 10:45:40 +08:00
Xubin Ren
6a3f53a917
fix(webui): stabilize fast history scrolling
2026-08-27 10:45:40 +08:00
Xubin Ren
25e20a1458
feat(webui): link model picker to settings
2026-08-27 10:45:40 +08:00
Xubin Ren
5678f83290
fix(webui): tighten conversation top spacing
2026-08-27 10:45:40 +08:00
Xubin Ren
cb7b640d36
fix(webui): soften composer scroll boundary
2026-08-27 10:45:40 +08:00
Xubin Ren
701926eba1
fix(webui): preserve file edit activity order
2026-08-27 10:45:40 +08:00
Xubin Ren
bbbfacbc64
fix(webui): compact single-pane chat header
2026-08-27 10:45:40 +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 chengyongru
a618e80887
refactor(agent): reduce loop runner parameter plumbing
2026-08-26 17:50:52 +08:00
chengyongru and chengyongru
c62aec0175
fix(session): reject read_session match-all patterns
2026-08-26 16:58:29 +08:00
bingqilinweimaotai and chengyongru
23dc344b8d
fix: allow unfiltered read_session calls
2026-08-26 16:58:29 +08:00
chengyongru and chengyongru
56aa7296f3
refactor(agent): make checkpoint recovery ownership explicit
2026-08-26 16:33:59 +08:00
qtds and chengyongru
9f5a56f1ec
fix(gitstore): detect rapid same-size rewrites
2026-08-26 16:19:10 +08:00