Commit Graph
1891 Commits
Author SHA1 Message Date
chengyongru 91f5a85db0 fix(agent): complete native reasoning lifecycle 2026-08-27 13:20:04 +08:00
chengyongru 3a62b0b744 fix(tui): surface chat connection failures (#5543)
* fix(tui): surface chat connection failures

* fix(tui): keep connection copy implementation-agnostic

* test(tui): avoid millisecond timing boundary

* fix(tui): use gateway health for connection status

* fix(tui): use product-level readiness copy
2026-08-27 11:37:30 +08:00
chengyongru 55f85b3c1f refactor(agent): remove duplicate progress streaming path 2026-08-27 10:56:07 +08:00
Xubin Ren 2113870e27 fix(cli): foreground the WebUI browser 2026-08-27 10:45:40 +08:00
chengyongru d8b4f612f2 fix(gateway): recover degraded WebSocket listener (#5544)
* fix(gateway): recover degraded WebSocket listener

* test(websocket): model listener readiness in startup stub

* fix(tui): keep launcher alive during gateway recovery

* test(websocket): colocate listener lifecycle coverage
2026-08-27 10:23:35 +08:00
chengyongru f9d449ef6c refactor(webui): isolate websocket application orchestration (#5548)
* refactor(webui): extract session attach projection

* refactor(webui): isolate websocket application orchestration

* refactor(webui): tighten websocket application boundary

* test(webui): assert module logger for fork failures
2026-08-26 18:04:38 +08:00
chengyongru a618e80887 refactor(agent): reduce loop runner parameter plumbing 2026-08-26 17:50:52 +08:00
chengyongru c62aec0175 fix(session): reject read_session match-all patterns 2026-08-26 16:58:29 +08:00
bingqilinweimaotai 23dc344b8d fix: allow unfiltered read_session calls 2026-08-26 16:58:29 +08:00
chengyongru 56aa7296f3 refactor(agent): make checkpoint recovery ownership explicit 2026-08-26 16:33:59 +08:00
qtds 9f5a56f1ec fix(gitstore): detect rapid same-size rewrites 2026-08-26 16:19:10 +08:00
chengyongru 9d34fc5af2 refactor(agent): remove loop iteration state (#5549)
* refactor(agent): remove loop iteration state

* docs(my): remove stale iteration guidance
2026-08-26 15:57:47 +08:00
chengyongru 4f6c0aedfa refactor(agent): make run usage explicit (#5546)
* refactor(agent): make run usage explicit

* fix(api): capture usage per run
2026-08-26 15:18:53 +08:00
chengyongru 0c84725b13 fix(gateway): retry MCP readiness before turns (#5535) 2026-08-26 11:29:48 +08:00
zpljd258 a8ffe0f136 fix(webui): project generated titles onto per-chat sessions under unifiedSession
With unifiedSession enabled, all turns are routed to the shared
unified:default session, so title generation, persistence, and change
notifications all happen on that shared session. The WebUI sidebar,
however, renders per-chat websocket:<id> sessions, so generated titles
never reach the session the user sees and every chat stays "Untitled".

Pass the origin chat_id through maybe_generate_webui_title_after_turn and
add a target_session_key to maybe_generate_webui_title so the title is
written to the per-chat session while conversation content still comes
from the shared (routed) session. When the routed session differs from
the per-chat session, the latest user/assistant exchange is used as the
title prompt since the shared session mixes content from every channel.
The shared session's title metadata is no longer read or written, so
stale shared titles can no longer leak into per-chat sessions.
2026-08-26 10:52:56 +08:00
chengyongru 42f37dc4c0 fix(provider): stabilize Codex prompt cache routing (#5540) 2026-08-26 01:36:00 +08:00
chengyongru 649e3958c5 fix(tools): bound find_files scans 2026-08-25 18:40:49 +08:00
chengyongru e308f7fdd4 test(agent): remove obsolete blocking drain case 2026-08-25 17:56:16 +08:00
chengyongru 66d9328a00 fix(agent): defer subagent wait until turn exit 2026-08-25 17:56:16 +08:00
chengyongru 4b2965c8f3 feat: add demand-driven document retrieval (#5525) 2026-08-25 15:34:48 +08:00
chengyongru 5cf78540a4 fix(agent): wait for exec sessions without polling (#5526) 2026-08-25 14:46:02 +08:00
chengyongru 8332c604da fix(agent): let subagents recover from tool errors 2026-08-25 11:54:40 +08:00
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 2ac802b2d5 feat(usage): add unified provider usage backend 2026-08-25 01:22:25 +08:00
chengyongru 8bb3828487 fix(tui): preserve usage telemetry fields 2026-08-25 01:04:25 +08:00
chengyongru 9895c23cb5 refactor(providers): define typed usage contract 2026-08-25 01:04:25 +08:00
chengyongru 89c94d8744 test(exec): remove Windows process timing races 2026-08-25 00:53:54 +08:00
chrischen-coder f5e467626d fix(agent): time out no-tools model requests 2026-08-25 00:34:01 +08:00
chengyongru 04974b7607 fix(webui): preserve causal message order (NAN-29) (#5503) 2026-08-24 15:08:22 +08:00
chengyongru 09d3bd76c9 fix(exec): disable command guard in full access 2026-08-24 11:44:00 +08:00
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 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 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