chengyongru and GitHub
5cf78540a4
fix(agent): wait for exec sessions without polling ( #5526 )
2026-08-25 14:46:02 +08:00
chengyongru and chengyongru
e723ea6b7e
docs(config): mark failOnToolError deprecated
2026-08-25 11:54:40 +08:00
chengyongru and chengyongru
8332c604da
fix(agent): let subagents recover from tool errors
2026-08-25 11:54:40 +08:00
chengyongru and chengyongru
2e7ebeb1ca
fix(usage): record provider stream timing
2026-08-25 10:39:14 +08:00
Xubin Ren
7fb0811fbb
fix(agent): honor selected project workspace
2026-08-25 02:14:02 +08:00
chengyongru and chengyongru
2ac802b2d5
feat(usage): add unified provider usage backend
2026-08-25 01:22:25 +08:00
chengyongru and chengyongru
8bb3828487
fix(tui): preserve usage telemetry fields
2026-08-25 01:04:25 +08:00
chengyongru and chengyongru
9895c23cb5
refactor(providers): define typed usage contract
2026-08-25 01:04:25 +08:00
chengyongru and chengyongru
89c94d8744
test(exec): remove Windows process timing races
2026-08-25 00:53:54 +08:00
chrischen-coder and chengyongru
f5e467626d
fix(agent): time out no-tools model requests
2026-08-25 00:34:01 +08:00
chengyongru and GitHub
04974b7607
fix(webui): preserve causal message order (NAN-29) ( #5503 )
2026-08-24 15:08:22 +08:00
chengyongru and GitHub
7f288a49fc
fix(tui): preserve shell after Ctrl+C ( #5502 )
2026-08-24 14:32:48 +08:00
chengyongru and chengyongru
09d3bd76c9
fix(exec): disable command guard in full access
2026-08-24 11:44:00 +08:00
chengyongru and chengyongru
b1cadf53c5
fix(codex): reuse TLS contexts across requests
2026-08-24 11:25:02 +08:00
Xubin Ren
baa0233377
fix(tui): preserve draft scope until first message
2026-08-24 10:40:16 +08:00
Xubin Ren
d50a2fab32
fix(tui): avoid saving empty sessions
2026-08-24 10:40:16 +08:00
Xubin Ren
8344066696
style(tui): frame recovery decisions
2026-08-24 00:58:04 +08:00
Xubin Ren
5accc903a0
refactor(tui): simplify session rows
2026-08-24 00:58:04 +08:00
Xubin Ren
1f0771c555
feat(tui): refine session status navigation
2026-08-24 00:58:04 +08:00
Xubin Ren
2850114eab
feat(tui): surface session activity states
2026-08-24 00:58:04 +08:00
Xubin Ren
7e66375f59
fix(tui): clarify interrupted task actions
2026-08-24 00:58:04 +08:00
Xubin Ren
2cdfba38b2
fix(runtime): preserve interrupted turns on gateway exit
2026-08-24 00:58:04 +08:00
Xubin Ren
c7e2a474a0
fix(runtime): normalize recovery session routing
2026-08-24 00:58:04 +08:00
Xubin Ren
58a1cc48d8
fix(tui): allow switching active sessions
2026-08-24 00:58:04 +08:00
Xubin Ren
41a2104244
docs(readme): simplify terminal quick start
2026-08-24 00:58:04 +08:00
Xubin Ren
12029f8812
feat(runtime): add user-controlled turn recovery
2026-08-24 00:58:04 +08:00
chengyongru and chengyongru
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
chengyongru and chengyongru
9807e9cf37
test: remove stale Mattermost config input
2026-08-23 19:08:00 +08:00
chengyongru and chengyongru
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
chengyongru and chengyongru
dbc1801d3c
fix(cron): report reconciled startup job count
2026-08-22 02:38:47 +08:00
aiguozhi123456 and chengyongru
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
aiguozhi123456 and chengyongru
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
chengyongru and chengyongru
1fe36d5dec
fix(dream): gate cursor on run completion
2026-08-22 02:05:40 +08:00
flobo3 and chengyongru
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
chengyongru and chengyongru
dd993b4f70
fix(tui): bound Markdown math preprocessing
2026-08-22 01:46:12 +08:00
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