chengyongru and chengyongru
649e3958c5
fix(tools): bound find_files scans
2026-08-25 18:40:49 +08:00
chengyongru and chengyongru
e308f7fdd4
test(agent): remove obsolete blocking drain case
2026-08-25 17:56:16 +08:00
chengyongru and chengyongru
66d9328a00
fix(agent): defer subagent wait until turn exit
2026-08-25 17:56:16 +08:00
chengyongru and GitHub
4b2965c8f3
feat: add demand-driven document retrieval ( #5525 )
2026-08-25 15:34:48 +08:00
chengyongru and GitHub
5cf78540a4
fix(agent): wait for exec sessions without polling ( #5526 )
2026-08-25 14:46:02 +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 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
d50a2fab32
fix(tui): avoid saving empty sessions
2026-08-24 10:40:16 +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
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
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
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
9ae3ae17da
feat(providers): support DeepSeek V4 vision
2026-08-21 23:18:09 +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
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
c5ae958bc3
fix(tui): avoid blocking local gateway startup
2026-08-20 14:48:31 +08:00
chengyongru and chengyongru
c615aee2ca
feat(tui): start fresh chats in launch workspace
2026-08-20 11:16:09 +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
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