Xubin Ren
e77eed76c9
fix(tui): track canonical model presets
2026-08-17 20:56:10 +08:00
Xubin Ren
9d7453a53e
style(tui): simplify the composer surface
2026-08-17 20:56:10 +08:00
Xubin Ren
f17d9eeff7
style(tui): align accents with nanobot brand
2026-08-17 20:56:10 +08:00
Xubin Ren
6eba62606c
refactor(tui): modernize active status animation
2026-08-17 20:56:10 +08:00
Xubin Ren
5415e68014
fix(tui): keep scroll position indicator textual
2026-08-17 20:56:10 +08:00
Xubin Ren
0035cd67cd
fix(tui): suppress terminal scrollbar glyphs
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
8f9bdb210e
feat(tui): refine quiet terminal interactions
2026-08-17 20:56:10 +08:00
Xubin Ren
7ed37e5b70
test(tui): exercise Windows ConPTY boundary
2026-08-17 20:56:10 +08:00
Xubin Ren
c0e9ce77ef
feat(tui): complete session-native terminal workflow
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
b3c3a82075
fix(tui): preserve slash command semantics
2026-08-17 20:56:10 +08:00
Xubin Ren
2b666934ba
feat(tui): add session navigation
2026-08-17 20:56:10 +08:00
Xubin Ren
d094fd7f4d
feat(tui): discover slash commands
2026-08-17 20:56:10 +08:00
Xubin Ren
f3386d965b
fix(tui): restore session header card
2026-08-17 20:56:10 +08:00
Xubin Ren
8395bc825b
refactor(tui): clarify conversation hierarchy
2026-08-17 20:56:10 +08:00
Xubin Ren
411f9f0e90
fix(tui): clear stale composer placeholder
2026-08-17 20:56:10 +08:00
Xubin Ren
a583b1ffda
fix(tui): inherit terminal background
2026-08-17 20:56:10 +08:00
Xubin Ren
a80993e413
test(tui): verify real terminal boundaries
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 and Bingxi Zhao
406509aeb8
fix(tui): align CI with supported platforms
...
Wait for terminal setup before asserting signal cleanup on slower Intel runners. Do not advertise a Windows ARM64 sidecar while Bun lacks the FFI support OpenTUI requires there.
Co-authored-by: Bingxi Zhao <150592536+pancacake@users.noreply.github.com >
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 Ren and Bingxi 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
Xubin Ren
fd32a99bf6
test(tui): synchronize cross-platform input assertions
2026-08-17 20:56:10 +08:00
Xubin Ren
e207269cf6
fix(tui): close cross-platform lifecycle races
2026-08-17 20:56:10 +08:00
Xubin Ren
4f12e15237
fix(tui): harden the interactive terminal experience
2026-08-17 20:56:10 +08:00
Xubin Ren
5feb21543c
fix(tui): reflow layout on terminal resize
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
chengyongru and chengyongru
c27b1f14c3
fix(webui): preserve mutation order after reconnect
2026-08-16 21:40:14 +08:00
chengyongru and chengyongru
32cc861f2a
test(webui): harden mutation replay coverage
2026-08-16 21:40:14 +08:00
chengyongru and chengyongru
2b6a0443c0
fix(webui): snapshot mutation replay frames
2026-08-16 21:40:14 +08:00
chengyongru and chengyongru
e51ffc8978
fix(webui): make mutations reconnect-safe
2026-08-16 21:40:14 +08:00
Xubin Ren
dec89a49a3
fix(settings): serialize gateway configuration updates
2026-08-16 11:50:56 +08:00
Xubin Ren
731b8fc2ed
fix(models): synchronize canonical runtime selection
2026-08-16 11:50:56 +08:00
Xubin Ren
0a6ee1c539
fix(models): preserve preset rename compatibility
2026-08-16 11:50:56 +08:00
Xubin Ren
a956fe1d60
fix(models): show inline preset name conflicts
2026-08-16 11:50:56 +08:00
Xubin Ren
c15e6f2a37
fix(models): support atomic preset renames
2026-08-16 11:50:56 +08:00
Xubin Ren
3dc38f6396
refactor(models): unify preset names
2026-08-16 11:50:56 +08:00
Xubin Ren
8dc08853e4
fix(providers): preserve legacy OrcaRouter custom configs
2026-08-16 00:26:51 +08:00
Xubin Ren
656480546b
test(providers): cover OrcaRouter WebUI integration
2026-08-16 00:26:51 +08:00
XiaoHuo888 and Xubin Ren
fd2d419956
feat(providers): add OrcaRouter as a named gateway provider
...
Registers OrcaRouter (https://www.orcarouter.ai ) as a built-in OpenAI-compatible gateway provider mirroring the OpenRouter wiring: registry spec (sk-orca- key prefix, default base URL), ProvidersConfig field, WebUI icon/brand + deferred model list, docs, and tests.
2026-08-16 00:26:51 +08:00
Xubin Ren
50391b2fb7
fix(webui): keep actions hidden while turn id resolves
2026-08-16 00:14:42 +08:00
Zhou and Xubin Ren
48126f049d
fix(webui): hide actions until turn end
2026-08-16 00:14:42 +08:00
Xubin Ren
5e84055dbb
fix(plugins): verify content at skill read boundary
2026-08-16 00:01:54 +08:00
yu-xin-c and Xubin Ren
e99b1a11aa
fix(plugins): revalidate cached skill roots
2026-08-16 00:01:54 +08:00
Xubin Ren
2f19068eb0
fix(session): clear file state at deletion boundary
2026-08-15 23:49:20 +08:00
yu-xin-c and Xubin Ren
42afebb0cb
fix(agent): bound per-session file state
2026-08-15 23:49:20 +08:00
Xubin Ren
ecef2b055d
fix(cron): prevent replay after persistence failure
2026-08-15 23:34:35 +08:00
f10rence and Xubin Ren
8bdf5ed2b2
fix(cron): keep scheduler alive when job-store persistence fails
...
A single OSError from _save_store() (disk full, permission change, locked
file) escaped _on_timer's try/finally and killed the asyncio timer task,
because _arm_timer() sits outside the block. All scheduled jobs silently
stopped until restart or a manual re-arm via add_job/update_job/remove_job.
Move _arm_timer() into the finally block and guard the whole tick body
(including _load_store, which can persist during agent-binding migrations)
so a transient persistence failure is logged and retried on the next tick
instead of killing the scheduler.
Add test_save_store_failure_does_not_kill_scheduler to cover the failure
path that existing tests (which mock _arm_timer) never exercised.
2026-08-15 23:34:35 +08:00
Xubin Ren
577e6ea3b5
fix(webui): clarify model preset display names
2026-08-15 23:30:19 +08:00