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 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
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 Ren and lmzopq
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
chengyongru
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
chengyongru
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
chengyongru
ff6deda178
fix: modernize dependency recovery guidance ( #5282 )
2026-08-07 13:58:13 +08:00
chengyongru
2fe135db3e
feat(webui): add integrated Vite dev mode ( #5239 )
2026-08-04 16:14:32 +08:00
arcdrake22
c6bd5f0075
test(gateway): align runtime-tasks gather tests with bounded retrieval
...
The helper never waits on the runtime-tasks gather after cancelling it
(its children are bounded individually), so the finished-gather test must
hand the helper an already-complete gather to exercise the bounded
retrieval path, and the cancelled-gather test must settle the gather
itself instead of expecting the helper to await a still-pending future.
Use a pre-completed child for the finished case and suppress(await) for
the cancelled case; both now assert done() and a single close.
2026-08-03 16:00:39 +08:00
Xubin Ren
39e1533c3b
fix(gateway): make resource teardown cancellation-safe
2026-08-03 16:00:39 +08:00
arcdrake22
a91ce900ef
test(gateway): add shutdown teardown regression coverage
...
Covers the lifecycle contract of _close_gateway_runtime: runtime tasks are
cancelled before shared resources close, pending background work is drained
before the close returns, cancellation-swallowing tasks and hanging cleanup
are bounded by their timeouts, a failing close is logged without blocking the
stop, duplicate cleanup is idempotent, and the runtime_tasks gather await path
is exercised for both completed and cancelled gathers.
2026-08-03 16:00:39 +08:00
Xubin Ren
e1894d6f0b
fix(providers): respect explicit cloud namespaces
2026-08-01 20:25:58 +08:00
NearlCrews and Claude Opus 4.7
5eb818e800
fix(providers): require api_base before local provider wins on keyword match
...
Ollama's spec keeps "nemotron" as a keyword so bare `nemotron-3-nano`
auto-routes to a configured Ollama install (PR #1863 ). NVIDIA NIM was
later registered with the same "nemotron" keyword (commit 046d0831 ),
creating the only keyword collision in the registry.
In `_match_provider`, the keyword loop accepted any local provider on
`spec.is_local` alone — no api_base check. Models like
`nvidia/nemotron-3-super-120b-a12b` (intended for OpenRouter or NVIDIA
NIM) were therefore hijacked to http://localhost:11434/v1 even when the
user had never configured Ollama, causing silent connection errors at
runtime.
Add the same api_base gate the local-fallback loop already uses: a local
provider only wins by keyword when the user has actually set its
api_base. Preserves PR #1863 's intent for users who configured Ollama;
fixes the silent hijack for everyone else.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-08-01 20:25:58 +08:00
chengyongru
e2563e2e74
refactor(cli): split commands into focused modules ( #5175 )
2026-07-30 15:01:35 +08:00
chengyongru
757ad9c764
refactor: enforce BasedPyright strict type checking ( #5158 )
2026-07-29 21:37:11 +08:00
chengyongru
393d429e0a
fix(ci): stabilize and speed up CI ( #5145 )
2026-07-28 22:55:59 +08:00
chengyongru
0c6c0438d4
feat(config): add actionable startup diagnostics and WebUI recovery ( #5110 )
2026-07-28 18:52:05 +08:00
chengyongru
ef9e687f19
refactor(core): remove redundant runtime scaffolding ( #5127 )
2026-07-28 11:07:58 +08:00
chengyongru
281b4b7f0b
chore: remove expired v0.3.1 compatibility shims ( #5106 )
2026-07-27 13:53:04 +08:00
yu-xin-c
a7a6c26eab
fix(heartbeat): route unified sessions to last channel
2026-07-27 00:12:44 +08:00
chengyongru
6e0eb46705
feat: launch first-time setup in webui ( #5078 )
2026-07-24 21:16:43 +08:00
chengyongru
c7393c785e
feat(providers): add xAI Grok OAuth with capability-gated X Search ( #5035 )
2026-07-23 11:55:16 +08:00
chengyongru
66690fdb0c
fix(webui): deliver late subagent results as new turns ( #4992 )
2026-07-22 23:04:36 +08:00
chengyongru
3748f664b2
feat(config): watch runtime configuration changes ( #5026 )
2026-07-22 13:08:39 +08:00
KDB
8981995474
fix(exec): clean up sessions on shutdown
2026-07-21 13:48:51 +08:00
chengyongru
462a0dfb0f
refactor(channels): make built-in channels self-contained ( #4908 )
...
* refactor(channels): own setup and instance contracts
* refactor(channels): isolate management contracts
* refactor(channels): normalize activation contracts
* fix(channels): enforce management contracts
* refactor(channels): finish setup ownership migration
* fix(channels): harden management contracts
* fix(channels): enforce lazy loading and runtime ownership
* fix(feishu): make multi-instance startup idempotent
* fix(webui): render channel setup contracts cleanly
* fix(feishu): stop websocket clients cleanly
* fix(channels): enforce persistence and activation gates
* fix(channels): preserve global feature action scope
* fix(channels): apply defaults for single plugins
* fix(channels): enforce management contract boundaries
* refactor(feishu): remove identity helper indirection
* fix(channels): preserve management setup contracts
* refactor(channels): generalize instance settings UI
* refactor(channels): package channel plugins with web UI metadata
* refactor(channels): make built-ins self-contained packages
* test(channels): colocate tests with channel packages
* fix(dingtalk): use official brand icon
* feat(channels): colocate webui translations
* docs(channels): clarify plugin ownership
* test(exec): remove output wait race
* refactor(channels): unify plugin descriptors
* fix(channels): enforce descriptor-owned contracts
* refactor(channels): finish package-owned plugin setup
* refactor(channels): use repository-owned packages only
* fix(channels): self-describe dependencies and runtime state
* fix(channels): warn about legacy entry points
2026-07-19 23:30:49 +08:00
chengyongru
7aaac37bca
fix(triggers): require channel enablement predicate
2026-07-19 22:33:29 +08:00
Pei Futong
91514ad0b1
fix(triggers): reject deliveries to disabled channels
2026-07-19 22:33:29 +08:00
chengyongru
d4e0294734
fix(gateway): stop channels before draining tasks
2026-07-15 22:25:08 +08:00
chengyongru
681edfa6f3
fix(providers): honor Codex proxy config consistently
2026-07-15 20:01:48 +08:00
chengyongru
aa70aa48f9
fix(cli): point onboarding to the WebUI launcher ( #4938 )
2026-07-15 10:34:46 +08:00
chengyongru
63a6d5d07d
fix(heartbeat): retain history after empty runs
2026-07-15 01:19:48 +08:00
chengyongru
234e895e5a
fix(codex): align OAuth defaults and setup docs ( #4910 )
...
* fix(codex): align OAuth defaults and setup docs
* docs(codex): clarify provider settings key
* docs(codex): simplify OAuth setup guidance
2026-07-13 17:04:33 +08:00
Xubin Ren
a65a6f334c
test(gateway): cover slow health clients
2026-07-13 15:16:51 +08:00
Xubin Ren
3824206ab2
fix(gateway): harden health endpoint exposure
2026-07-13 15:16:51 +08:00
Xubin Ren
2c78976728
fix(cli): restore enter before webui prompts
2026-07-13 13:32:29 +08:00
Xubin Ren
fe0717b385
feat(webui): add guided setup flows
...
* feat(channels): add guided setup flows
* test(channels): preserve setup config values
* fix(channels): reflect saved setup state
* refactor(channels): simplify setup state metadata
* fix(channels): harden setup lifecycle
* refactor(channels): centralize setup contracts
* fix(channels): route setup actions through webui shim
* fix(channels): adapt settings for compact screens
* fix(models): preserve default preset display
* feat(models): add curated Codex catalog
* fix(webui): stop attached gateway on interrupt
* fix(webui): simplify apps catalog
* docs(webui): clarify apps and runtime features
* feat(settings): add guided capability setup
* fix(webui): harden setup and managed services
* test: keep managed runtime checks portable
* test: scope POSIX runtime coverage
* fix(webui): simplify file settings
* feat(files): bundle document reading
* fix(webui): harden setup request boundaries
* fix(webui): prevent channel setup status squeeze
* fix(settings): group provider compatibility aliases
* refactor(settings): remove redundant setup surfaces
* fix(webui): harden guided setup lifecycle
* fix(webui): preserve channel setup compatibility
2026-07-13 13:11:46 +08:00
Xubin Ren
c111aaa7ee
fix(dream): gate periodic commits on content changes
2026-07-11 11:16:59 +08:00