chengyongru and chengyongru
cbe4316e4b
perf(tui): avoid repeated LaTeX scans
2026-08-22 01:46:12 +08:00
chengyongru and chengyongru
375185210b
feat(tui): render LaTeX as Unicode
2026-08-22 01:46:12 +08:00
KDB and chengyongru
a4acd83966
fix(slack): validate file downloads against SSRF
...
_download_slack_file fetched url_private_download with follow_redirects=True
and no SSRF validation, unlike the shared network guard used across other
channels (napcat/dingtalk/qq) and the maintainer's recent image-download
hardening. A file URL that pointed at — or redirected to — an internal
address let the bot server issue requests to loopback/RFC1918/cloud-metadata
targets, and cross-host redirects could carry the request off Slack.
Validate the URL through validate_url_target before requesting, stop
following redirects, and reject a redirect response. Authorized Slack file
downloads return 200 directly, so normal downloads (which still send the bot
token) are unaffected; the HTML-login guard already handled the redirect-to-
login case.
2026-08-22 01:34:34 +08:00
chengyongru and GitHub
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 and chengyongru
9ae3ae17da
feat(providers): support DeepSeek V4 vision
2026-08-21 23:18:09 +08:00
chengyongru and chengyongru
9bc9b94732
chore(tui): remove redundant picker comment
2026-08-21 18:23:04 +08:00
chengyongru and chengyongru
4561c748f6
fix(tui): preserve keyboard picker selection
2026-08-21 18:23:04 +08:00
chengyongru and chengyongru
252ea18e88
fix(tui): clarify input cache telemetry
2026-08-21 17:47:52 +08:00
chengyongru and chengyongru
e9ac83d03f
fix(tui): reduce redundant runtime chrome
2026-08-21 17:11:01 +08:00
chengyongru and chengyongru
d28687e2e1
feat(webui): polish model preset interaction
2026-08-21 16:49:30 +08:00
chengyongru and chengyongru
953d2ed217
refactor(webui): infer fallback from active model
2026-08-21 16:49:30 +08:00
chengyongru and chengyongru
7f97373490
fix(webui): only highlight actual model fallbacks
2026-08-21 16:49:30 +08:00
chengyongru and chengyongru
761e95b659
refactor(providers): simplify retry fallback routing
2026-08-21 16:46:38 +08:00
chengyongru and chengyongru
9a6dc371b3
refactor: pass retry exhaustion callbacks explicitly
2026-08-21 16:46:38 +08:00
chengyongru and chengyongru
f93d4c3ae4
fix(providers): retry before falling back
2026-08-21 16:46:38 +08:00
Lanre Shittu and chengyongru
98660c19cc
fix(matrix): interpolate error log context
...
Matrix error logs used printf-style placeholders with Loguru, leaving filenames, room IDs, and chat IDs out of diagnostic output. Use Loguru placeholders and cover each affected failure path with focused regression assertions.
Signed-off-by: Lanre Shittu <136805224+Shizoqua@users.noreply.github.com >
2026-08-21 15:53:02 +08:00
chengyongru and GitHub
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 and chengyongru
5b44ebdfd7
fix(providers): report Responses cached tokens
2026-08-21 14:01:00 +08:00
chengyongru and chengyongru
8ca4bd9121
fix(agent): keep default prompt paths relative
2026-08-21 11:45:05 +08:00
akinolur and chengyongru
c7710238a8
fix(provider): retry Codex server_error
...
Mid-stream response.failed events from OpenAI carry
'server_error' (underscore), but the transient-error marker
list only had 'server error' (space). is_transient_response
missed it, so the retry loop gave up on the first attempt
instead of using its normal 1s/2s/4s backoff.
2026-08-21 10:52:34 +08:00
chengyongru and chengyongru
415df576b4
feat(tui): print resume command on exit
2026-08-20 17:20:36 +08:00
chengyongru and chengyongru
997bdfc79d
chore: remove uv lockfile
2026-08-20 15:27:13 +08:00
chengyongru and chengyongru
7dd5feb456
fix(deps): support standard socks5 proxies
2026-08-20 15:27:13 +08:00
chengyongru and chengyongru
2b491340d8
fix(tui): keep context view concise
2026-08-20 15:25:54 +08:00
chengyongru and chengyongru
c5ae958bc3
fix(tui): avoid blocking local gateway startup
2026-08-20 14:48:31 +08:00
chengyongru and chengyongru
dc13dff3ff
refactor(tui): use local command catalog directly
2026-08-20 11:53:07 +08:00
chengyongru and chengyongru
c0e1c2848b
fix(tui): keep navigation commands in Herdr panes
2026-08-20 11:53:07 +08:00
chengyongru and chengyongru
c615aee2ca
feat(tui): start fresh chats in launch workspace
2026-08-20 11:16:09 +08:00
Kail Tian and chengyongru
1018bdb7fe
fix(tui): expose /exit in command menu
2026-08-19 20:43:57 +08:00
chengyongru and chengyongru
ac13ad65cd
fix(memory): preserve replay prefix on session reset
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
9ef1e292ea
fix(session): preserve complete transcripts
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
3c41d5e7f3
refactor(skills): own explicit runtime context loading
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
40cc9395fc
refactor(memory): remove redundant archive instructions
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
5ec00a9124
refactor(memory): tighten archive prompt
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
cc07ac1e12
fix(memory): avoid re-archiving recent history
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
f13abe0806
refactor(memory): require archive count in prompt
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
f63001828f
refactor(memory): guard empty summaries only on write
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
6bb3b33aac
fix(memory): ignore empty consolidation summaries
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
8a2aa0821b
fix(agent): keep explicit skills out of system prompt
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
ff674144d6
fix(memory): reject truncated consolidation output
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
16be6b0f36
refactor(memory): unify structured consolidation flow
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
d4de0e4e3d
test(memory): sharpen compaction coverage
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
6834d656a1
style(agent): restore compact session key import
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
87fb090d22
style(memory): minimize summary diff churn
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
b162019271
refactor(memory): keep session summaries structured
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
fa0605abd0
refactor(memory): simplify idle consolidation flow
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
960425b3aa
fix(memory): remove idle archive request fallback
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
82e50e2c91
fix(memory): avoid duplicate summary injection
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
93f71b61a0
fix(memory): reject tool-call-only consolidation
2026-08-19 18:40:20 +08:00
chengyongru and chengyongru
12a4a8c04c
fix(memory): preserve idle consolidation boundaries
2026-08-19 18:40:20 +08:00