chengyongru and chengyongru
2e9c9781e6
fix(webui): detach without waiting for gateway shutdown
2026-08-19 16:34:07 +08:00
Xubin Ren
eafc0bc6eb
fix(gateway): serialize shared runtime lifecycle
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
35f2d086b0
fix(tui): harden themes and platform coverage
2026-08-17 20:56:10 +08:00
chengyongru and GitHub
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
chengyongru and GitHub
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru and GitHub
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
chengyongru and GitHub
ff6deda178
fix: modernize dependency recovery guidance ( #5282 )
2026-08-07 13:58:13 +08:00
chengyongru and GitHub
2fe135db3e
feat(webui): add integrated Vite dev mode ( #5239 )
2026-08-04 16:14:32 +08:00
Xubin Ren
e1894d6f0b
fix(providers): respect explicit cloud namespaces
2026-08-01 20:25:58 +08:00
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 and GitHub
e2563e2e74
refactor(cli): split commands into focused modules ( #5175 )
2026-07-30 15:01:35 +08:00
chengyongru and GitHub
757ad9c764
refactor: enforce BasedPyright strict type checking ( #5158 )
2026-07-29 21:37:11 +08:00
chengyongru and GitHub
393d429e0a
fix(ci): stabilize and speed up CI ( #5145 )
2026-07-28 22:55:59 +08:00
chengyongru and GitHub
0c6c0438d4
feat(config): add actionable startup diagnostics and WebUI recovery ( #5110 )
2026-07-28 18:52:05 +08:00
chengyongru and GitHub
281b4b7f0b
chore: remove expired v0.3.1 compatibility shims ( #5106 )
2026-07-27 13:53:04 +08:00
yu-xin-c and Xubin Ren
a7a6c26eab
fix(heartbeat): route unified sessions to last channel
2026-07-27 00:12:44 +08:00
chengyongru and GitHub
6e0eb46705
feat: launch first-time setup in webui ( #5078 )
2026-07-24 21:16:43 +08:00
chengyongru and GitHub
c7393c785e
feat(providers): add xAI Grok OAuth with capability-gated X Search ( #5035 )
2026-07-23 11:55:16 +08:00
chengyongru and GitHub
66690fdb0c
fix(webui): deliver late subagent results as new turns ( #4992 )
2026-07-22 23:04:36 +08:00
chengyongru and GitHub
3748f664b2
feat(config): watch runtime configuration changes ( #5026 )
2026-07-22 13:08:39 +08:00
chengyongru and GitHub
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 and chengyongru
7aaac37bca
fix(triggers): require channel enablement predicate
2026-07-19 22:33:29 +08:00
Pei Futong and chengyongru
91514ad0b1
fix(triggers): reject deliveries to disabled channels
2026-07-19 22:33:29 +08:00
chengyongru and chengyongru
d4e0294734
fix(gateway): stop channels before draining tasks
2026-07-15 22:25:08 +08:00
chengyongru and chengyongru
681edfa6f3
fix(providers): honor Codex proxy config consistently
2026-07-15 20:01:48 +08:00
chengyongru and GitHub
aa70aa48f9
fix(cli): point onboarding to the WebUI launcher ( #4938 )
2026-07-15 10:34:46 +08:00
chengyongru and chengyongru
63a6d5d07d
fix(heartbeat): retain history after empty runs
2026-07-15 01:19:48 +08:00
chengyongru and GitHub
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 and GitHub
2c78976728
fix(cli): restore enter before webui prompts
2026-07-13 13:32:29 +08:00
Xubin Ren and GitHub
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
Xubin Ren
3ab09075c5
test(webui): tolerate wrapped bootstrap CLI output
2026-07-08 21:01:48 +08:00
chengyongru and Xubin Ren
444f488563
fix(webui): repair bootstrap secret launch paths
2026-07-08 21:01:48 +08:00
chengyongru and Xubin Ren
88143a8bf0
fix(webui): gate bootstrap API token issuance
2026-07-08 21:01:48 +08:00
Aleksander W. Oleszkiewicz (Alek) and Xubin Ren
f074aa7d80
feat: add --refresh flag to onboard command for non-interactive config updates
2026-07-08 20:56:06 +08:00
chengyongru and Xubin Ren
883776358e
fix: keep local api serve unauthenticated
...
maintainer edit: Align OpenAI-compatible API auth with the WebSocket channel boundary: loopback serve remains usable without a key, while wildcard binds still fail before agent initialization unless api.api_key is configured.
2026-07-08 12:16:12 +08:00
chengyongru and Xubin Ren
460c62c0b0
fix: validate api key before serve setup
...
maintainer edit: Check api.api_key before template sync and AgentLoop construction so missing-key startup errors are not hidden by provider or workspace initialization failures.
2026-07-08 12:16:12 +08:00
hamb1y and Xubin Ren
6c59332a8a
fix: require api key for serve
2026-07-08 12:16:12 +08:00
Xubin Ren and GitHub
067e0c4a40
feat(cli): add safe WebUI first-run launcher ( #4688 )
2026-07-03 18:58:04 +08:00
chengyongru and Xubin Ren
acb0e853ff
refactor(trigger): share automation turn delivery
2026-07-02 13:32:46 +08:00