Commit Graph
4155 Commits
Author SHA1 Message Date
Xubin Ren e329127722 fix(tui): clarify interrupted task actions 2026-08-23 23:04:08 +08:00
Xubin Ren f194395e01 fix(runtime): preserve interrupted turns on gateway exit 2026-08-23 22:42:58 +08:00
Xubin Ren 6fc5794dc2 fix(runtime): normalize recovery session routing 2026-08-23 21:59:11 +08:00
Xubin Ren 476bc7f4dc fix(tui): allow switching active sessions 2026-08-23 21:48:20 +08:00
Xubin Ren 0f4c9956a8 docs(readme): simplify terminal quick start 2026-08-23 21:48:20 +08:00
Xubin Ren 009a1a6e6f feat(runtime): add user-controlled turn recovery 2026-08-23 21:48:20 +08:00
chengyongruandchengyongru ffa58aa5ef fix(webui): keep answer text outside reasoning shell 2026-08-23 21:29:42 +08:00
Xubin Ren 1e9d46fb36 fix(cli): name roles through legacy launchers 2026-08-23 21:13:14 +08:00
Xubin Ren ab7351be63 fix(cli): skip process title dependency on Windows 2026-08-23 21:13:14 +08:00
Xubin Ren cfc872fb52 fix(cli): harden process identity portability 2026-08-23 21:13:14 +08:00
Xubin Ren cfc1fae8b5 feat(cli): expose nanobot process identities 2026-08-23 21:13:14 +08:00
chengyongruandchengyongru 9807e9cf37 test: remove stale Mattermost config input 2026-08-23 19:08:00 +08:00
chengyongruandchengyongru 961b1fdd7d refactor: remove remaining dead code 2026-08-23 19:08:00 +08:00
Xubin Ren 3852956a71 docs: include all community contributors 2026-08-23 00:49:26 +08:00
Xubin Ren bd3f4d7a74 docs: link maintainer X profiles 2026-08-23 00:49:26 +08:00
Xubin Ren e21e71c55b docs: make contributor wall responsive 2026-08-23 00:49:26 +08:00
Xubin Ren cfe75dbb8d docs: present maintainers separately 2026-08-23 00:49:26 +08:00
Xubin Ren 7afc6a1b33 docs: refresh team and contributor credits 2026-08-23 00:49:26 +08:00
Xubin Ren 48eea29313 feat(webui): unify turn observability 2026-08-22 20:51:24 +08:00
chengyongruandchengyongru dbc1801d3c fix(cron): report reconciled startup job count 2026-08-22 02:38:47 +08:00
aiguozhi123456andchengyongru 20488a585d fix(cron): review follow-ups for system job retirement
- advance the disabled-dream cursor before touching the cron store so
  the #4242 fix still applies when jobs.json is corrupt
- pin the gateway wiring: the disabled-path test now asserts both
  dream and heartbeat are retired, not just unregistered
- cover remove_system_job on a fresh install with no store file
2026-08-22 02:38:47 +08:00
aiguozhi123456andchengyongru e5718d4de6 fix(cron): retire persisted heartbeat/dream jobs when disabled
Disabling gateway.heartbeat (or agents.defaults.dream) only skipped
job registration on startup; the previously persisted system job in
<workspace>/cron/jobs.json kept firing, and remove_job refuses to
touch protected system jobs. Add CronService.remove_system_job for
startup reconciliation and call it from the gateway disabled branches
so the config toggle takes effect after restart.
2026-08-22 02:38:47 +08:00
chengyongruandchengyongru 1fe36d5dec fix(dream): gate cursor on run completion 2026-08-22 02:05:40 +08:00
flobo3andchengyongru d853ac239f fix(dream): advance cursor when tool errors were recovered, and report why a run did not complete 2026-08-22 02:05:40 +08:00
chengyongruandchengyongru dd993b4f70 fix(tui): bound Markdown math preprocessing 2026-08-22 01:46:12 +08:00
chengyongruandchengyongru cbe4316e4b perf(tui): avoid repeated LaTeX scans 2026-08-22 01:46:12 +08:00
chengyongruandchengyongru 375185210b feat(tui): render LaTeX as Unicode 2026-08-22 01:46:12 +08:00
KDBandchengyongru 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
chengyongruandGitHub 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
chengyongruandchengyongru 9ae3ae17da feat(providers): support DeepSeek V4 vision 2026-08-21 23:18:09 +08:00
chengyongruandchengyongru 9bc9b94732 chore(tui): remove redundant picker comment 2026-08-21 18:23:04 +08:00
chengyongruandchengyongru 4561c748f6 fix(tui): preserve keyboard picker selection 2026-08-21 18:23:04 +08:00
chengyongruandchengyongru 252ea18e88 fix(tui): clarify input cache telemetry 2026-08-21 17:47:52 +08:00
chengyongruandchengyongru e9ac83d03f fix(tui): reduce redundant runtime chrome 2026-08-21 17:11:01 +08:00
chengyongruandchengyongru d28687e2e1 feat(webui): polish model preset interaction 2026-08-21 16:49:30 +08:00
chengyongruandchengyongru 953d2ed217 refactor(webui): infer fallback from active model 2026-08-21 16:49:30 +08:00
chengyongruandchengyongru 7f97373490 fix(webui): only highlight actual model fallbacks 2026-08-21 16:49:30 +08:00
chengyongruandchengyongru 761e95b659 refactor(providers): simplify retry fallback routing 2026-08-21 16:46:38 +08:00
chengyongruandchengyongru 9a6dc371b3 refactor: pass retry exhaustion callbacks explicitly 2026-08-21 16:46:38 +08:00
chengyongruandchengyongru f93d4c3ae4 fix(providers): retry before falling back 2026-08-21 16:46:38 +08:00
Lanre Shittuandchengyongru 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
chengyongruandGitHub 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
chengyongruandchengyongru 5b44ebdfd7 fix(providers): report Responses cached tokens 2026-08-21 14:01:00 +08:00
chengyongruandchengyongru 8ca4bd9121 fix(agent): keep default prompt paths relative 2026-08-21 11:45:05 +08:00
akinolurandchengyongru 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
chengyongruandchengyongru 415df576b4 feat(tui): print resume command on exit 2026-08-20 17:20:36 +08:00
chengyongruandchengyongru 997bdfc79d chore: remove uv lockfile 2026-08-20 15:27:13 +08:00
chengyongruandchengyongru 7dd5feb456 fix(deps): support standard socks5 proxies 2026-08-20 15:27:13 +08:00
chengyongruandchengyongru 2b491340d8 fix(tui): keep context view concise 2026-08-20 15:25:54 +08:00
chengyongruandchengyongru c5ae958bc3 fix(tui): avoid blocking local gateway startup 2026-08-20 14:48:31 +08:00