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
dbc1801d3c
fix(cron): report reconciled startup job count
2026-08-22 02:38:47 +08:00
aiguozhi123456
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
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
1fe36d5dec
fix(dream): gate cursor on run completion
2026-08-22 02:05:40 +08:00
flobo3
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
9ae3ae17da
feat(providers): support DeepSeek V4 vision
2026-08-21 23:18:09 +08:00
chengyongru
953d2ed217
refactor(webui): infer fallback from active model
2026-08-21 16:49:30 +08:00
chengyongru
7f97373490
fix(webui): only highlight actual model fallbacks
2026-08-21 16:49:30 +08:00
chengyongru
761e95b659
refactor(providers): simplify retry fallback routing
2026-08-21 16:46:38 +08:00
chengyongru
9a6dc371b3
refactor: pass retry exhaustion callbacks explicitly
2026-08-21 16:46:38 +08:00
chengyongru
f93d4c3ae4
fix(providers): retry before falling back
2026-08-21 16:46:38 +08:00
chengyongru
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
5b44ebdfd7
fix(providers): report Responses cached tokens
2026-08-21 14:01:00 +08:00
chengyongru
8ca4bd9121
fix(agent): keep default prompt paths relative
2026-08-21 11:45:05 +08:00
akinolur
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
c5ae958bc3
fix(tui): avoid blocking local gateway startup
2026-08-20 14:48:31 +08:00
chengyongru
c615aee2ca
feat(tui): start fresh chats in launch workspace
2026-08-20 11:16:09 +08:00
chengyongru
ac13ad65cd
fix(memory): preserve replay prefix on session reset
2026-08-19 18:40:20 +08:00
chengyongru
9ef1e292ea
fix(session): preserve complete transcripts
2026-08-19 18:40:20 +08:00
chengyongru
3c41d5e7f3
refactor(skills): own explicit runtime context loading
2026-08-19 18:40:20 +08:00
chengyongru
cc07ac1e12
fix(memory): avoid re-archiving recent history
2026-08-19 18:40:20 +08:00
chengyongru
f13abe0806
refactor(memory): require archive count in prompt
2026-08-19 18:40:20 +08:00
chengyongru
f63001828f
refactor(memory): guard empty summaries only on write
2026-08-19 18:40:20 +08:00
chengyongru
6bb3b33aac
fix(memory): ignore empty consolidation summaries
2026-08-19 18:40:20 +08:00
chengyongru
8a2aa0821b
fix(agent): keep explicit skills out of system prompt
2026-08-19 18:40:20 +08:00
chengyongru
ff674144d6
fix(memory): reject truncated consolidation output
2026-08-19 18:40:20 +08:00
chengyongru
16be6b0f36
refactor(memory): unify structured consolidation flow
2026-08-19 18:40:20 +08:00
chengyongru
d4de0e4e3d
test(memory): sharpen compaction coverage
2026-08-19 18:40:20 +08:00
chengyongru
87fb090d22
style(memory): minimize summary diff churn
2026-08-19 18:40:20 +08:00
chengyongru
b162019271
refactor(memory): keep session summaries structured
2026-08-19 18:40:20 +08:00
chengyongru
fa0605abd0
refactor(memory): simplify idle consolidation flow
2026-08-19 18:40:20 +08:00
chengyongru
960425b3aa
fix(memory): remove idle archive request fallback
2026-08-19 18:40:20 +08:00
chengyongru
82e50e2c91
fix(memory): avoid duplicate summary injection
2026-08-19 18:40:20 +08:00
chengyongru
93f71b61a0
fix(memory): reject tool-call-only consolidation
2026-08-19 18:40:20 +08:00
chengyongru
12a4a8c04c
fix(memory): preserve idle consolidation boundaries
2026-08-19 18:40:20 +08:00
chengyongru
7335f71c5a
perf(memory): reuse session context for idle compaction
2026-08-19 18:40:20 +08:00
chengyongru
2e9c9781e6
fix(webui): detach without waiting for gateway shutdown
2026-08-19 16:34:07 +08:00
chengyongru
d7b3abe589
test(exec): wait deterministically for truncation output
2026-08-19 01:34:48 +08:00
chengyongru
9e046815bc
fix(webui): assign readable session handles
2026-08-19 01:15:56 +08:00
chengyongru
251a1ccd40
refactor: simplify cross-session messaging
2026-08-19 01:15:56 +08:00
chengyongru
0e184965e8
feat(webui): add lightweight session messaging via mentions
2026-08-19 01:15:56 +08:00
chengyongru
df14259717
perf(tui): reduce cold-start latency
2026-08-18 16:28:46 +08:00
chengyongru
369a3443eb
fix(gateway): allow Windows launcher PID handoff
2026-08-18 11:51:14 +08:00
Xubin Ren
99d5fa2908
fix(gateway): preserve runtime identity compatibility
2026-08-18 03:21:00 +08:00
Xubin Ren
19ad1adfe7
fix(gateway): stabilize process identities
2026-08-18 03:21:00 +08:00
Xubin Ren
b17f227eb9
fix(release): package TUI compliance materials
2026-08-17 20:56:10 +08:00
Xubin Ren
7838e244ba
test(gateway): track the claimed process identity
2026-08-17 20:56:10 +08:00