Commit Graph
210 Commits
Author SHA1 Message Date
chengyongruandGitHub d81aa5a4ab refactor(agent): let runner own context compaction (#5568)
* refactor(agent): consolidate accepted history under pressure

* fix(agent): align provider and session compaction

* refactor(agent): simplify runner context compaction

* refactor(agent): remove background token consolidation

* fix(agent): keep injected transcript messages distinct

* refactor(agent): unify native compaction summaries

* fix(agent): preserve native compaction boundary

* fix(agent): unify context compaction paths

* fix(agent): preserve exact compaction request boundaries
2026-09-02 18:05:54 +08:00
chengyongruandGitHub 6cd7063682 refactor(agent): defer transcript assembly to runner (#5608)
* refactor(agent): defer transcript assembly to runner

Keep persisted history and the fresh turn as explicit inputs until the Runner assembles the provider transcript. Preserve ContextBuilder and direct AgentRunner compatibility while making the save boundary structural.

Refs NAN-81.

* fix(providers): preserve mixed adjacent user content
2026-08-31 00:06:15 +08:00
Xubin Ren 2c87143f77 fix(cli): preserve gateway log stream boundaries 2026-08-29 23:03:23 +08:00
Xubin Ren d7df2726de fix(cli): stream gateway logs in WebUI launcher 2026-08-29 23:03:23 +08:00
Xubin Ren 2389ab1f5a feat(providers): add Grok 4.6 subscription model 2026-08-29 21:22:20 +08:00
Xubin Ren 1fe14f2ee6 fix(cli): preserve root shell completion 2026-08-29 11:26:50 +08:00
Xubin Ren 7fc90ca6aa feat(cli): make nanobot launch the terminal agent 2026-08-29 11:26:50 +08:00
chengyongruandGitHub 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
Xubin Ren 2113870e27 fix(cli): foreground the WebUI browser 2026-08-27 10:45:40 +08:00
chengyongruandGitHub 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
chengyongruandGitHub 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
chengyongruandGitHub 0c84725b13 fix(gateway): retry MCP readiness before turns (#5535) 2026-08-26 11:29:48 +08:00
chengyongruandchengyongru 9895c23cb5 refactor(providers): define typed usage contract 2026-08-25 01:04:25 +08:00
Xubin Ren 2cdfba38b2 fix(runtime): preserve interrupted turns on gateway exit 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
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
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
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 c5ae958bc3 fix(tui): avoid blocking local gateway startup 2026-08-20 14:48:31 +08:00
chengyongruandchengyongru c615aee2ca feat(tui): start fresh chats in launch workspace 2026-08-20 11:16:09 +08:00
chengyongruandchengyongru 2e9c9781e6 fix(webui): detach without waiting for gateway shutdown 2026-08-19 16:34:07 +08:00
chengyongruandchengyongru df14259717 perf(tui): reduce cold-start latency 2026-08-18 16:28:46 +08:00
Xubin Ren b17f227eb9 fix(release): package TUI compliance materials 2026-08-17 20:56:10 +08:00
Xubin Ren dc3e3c1a2a fix(gateway): prevent lifecycle races 2026-08-17 20:56:10 +08:00
Xubin Ren c671acd6a8 fix(gateway): preserve shared runtime identity 2026-08-17 20:56:10 +08:00
Xubin Ren eafc0bc6eb fix(gateway): serialize shared runtime lifecycle 2026-08-17 20:56:10 +08:00
Xubin Ren 7384fbfffc fix(packaging): keep source clients in lockstep 2026-08-17 20:56:10 +08:00
Xubin Ren ddd3b78ed1 test(ci): isolate cross-platform gateway lifecycle 2026-08-17 20:56:10 +08:00
Xubin Ren 55f0423336 test(cli): tolerate wrapped launcher output 2026-08-17 20:56:10 +08:00
Xubin Ren e84aa07bcc test(cli): isolate WebUI interrupt polling 2026-08-17 20:56:10 +08:00
Xubin Ren cd6a11b3c5 fix(gateway): harden shared client lifecycle 2026-08-17 20:56:10 +08:00
Xubin Ren 014eab5f6a fix(gateway): register foreground instances 2026-08-17 20:56:10 +08:00
Xubin Ren a700697583 fix(cli): canonicalize default gateway identity 2026-08-17 20:56:10 +08:00
Xubin Ren b8333a2d7e fix(cli): make gateway persistence explicit 2026-08-17 20:56:10 +08:00
Xubin Ren 74c11e5d28 fix(cli): share on-demand gateway lifecycle 2026-08-17 20:56:10 +08:00
Xubin Ren ed796332fe refactor(tui): retire the direct session default 2026-08-17 20:56:10 +08:00
Xubin Ren 9e47d8106c fix(tui): synchronize shared session clients 2026-08-17 20:56:10 +08:00
Xubin Ren e77eed76c9 fix(tui): track canonical model presets 2026-08-17 20:56:10 +08:00
Xubin Ren 9514b9b909 fix(tui): require the native interactive client 2026-08-17 20:56:10 +08:00
Xubin Ren 6301c0ab57 feat(tui): unify session history and context 2026-08-17 20:56:10 +08:00
Xubin Ren 14c5607e5e fix(tui): enforce supported platform boundaries 2026-08-17 20:56:10 +08:00
Xubin Ren 35f2d086b0 fix(tui): harden themes and platform coverage 2026-08-17 20:56:10 +08:00
Xubin RenandBingxi Zhao 347583d3f7 fix(tui): preserve gateway and cache boundaries
Only reuse the exact managed config/workspace instance so CLI overrides cannot silently attach to another gateway. Revalidate cached release sidecars before execution and recover from corrupted cache entries.

Co-authored-by: Bingxi Zhao <150592536+pancacake@users.noreply.github.com>
2026-08-17 20:56:10 +08:00
ce070c832d feat(cli): add native TypeScript terminal UI
Rebuild the terminal client on OpenTUI while keeping the Python gateway as the single agent, session, tool, and memory runtime. Preserve a classic prompt fallback and publish version-matched native sidecars for supported platforms.

Co-authored-by: Bingxi Zhao <150592536+pancacake@users.noreply.github.com>
Co-authored-by: chengyongru <2755839590@qq.com>
2026-08-17 20:56:10 +08:00
Xubin Renandlmzopq cd7480945b fix(session): preserve history across storage relocation
Co-authored-by: lmzopq <1646888+lmzopq@users.noreply.github.com>
2026-08-13 01:41:10 +09:00
chengyongruandGitHub 19997d20bb refactor: move MCP lifecycle out of AgentLoop (#5343) 2026-08-12 17:51:04 +08:00