chengyongru
606ac56e8f
feat(webui): support remote Codex OAuth login ( #5174 )
2026-07-30 15:06:34 +08:00
Xubin Ren
c440695aef
fix(webui): harden skill marketplace lifecycle
2026-07-30 01:13:37 +08:00
Xubin Ren
8a56eb06ad
fix(webui): harden skill management
2026-07-30 01:13:37 +08:00
Xubin Ren
e66eb204d0
feat(webui): add SkillHub marketplace source
2026-07-30 01:13:37 +08:00
Xubin Ren
ba0ba4749d
feat(webui): add skills marketplace
2026-07-30 01:13:37 +08:00
chengyongru
281b4b7f0b
chore: remove expired v0.3.1 compatibility shims ( #5106 )
2026-07-27 13:53:04 +08:00
George Pickett
0b38c48399
feat(webui): add Parallel Search MCP preset
2026-07-24 12:26:37 +08:00
chengyongru
aae259c790
feat(webui): simplify model preset settings ( #5061 )
2026-07-24 00:55:06 +08:00
chengyongru
d993c81f08
test(webui): cover restricted media previews
2026-07-24 00:30:49 +08:00
Xubin Ren
2f4f00bb9f
refactor(image): reuse the model picker
2026-07-23 12:42:24 +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
c22efb5f7a
feat(agent): make model presets session-scoped ( #4866 )
2026-07-23 00:38:49 +08:00
chengyongru
dfc3919b52
fix: stop masking runtime failures
2026-07-21 11:44:52 +08:00
chengyongru
e3de01c9f6
fix(webui): resolve build runner executable
2026-07-19 23:59:34 +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
bingqilinweimaotai
8c68c6fe1e
feat: support Kimi K3
2026-07-18 17:38:32 +08:00
chengyongru
b7048cf76a
feat(webui): support document attachments with ingress safeguards ( #4771 )
...
* feat: support document attachments in webui
* fix(webui): normalize document attachment MIME
* refactor(webui): move attachment policy out of channel
* fix(webui): reject oversized attachments before send
* fix(webui): align Portuguese attachment errors
* refactor(webui): separate ingress and transport limits
* fix(webui): reject malformed attachment payloads
2026-07-14 14:47:42 +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
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
chengyongru
c339ce8bba
refactor(agent): remove obsolete MCP prompt annotations
2026-07-12 00:35:17 +08:00
chengyongru
88143a8bf0
fix(webui): gate bootstrap API token issuance
2026-07-08 21:01:48 +08:00
Xubin Ren
e725649146
test(webui): cover OAuth kit missing errors
2026-07-06 12:11:03 +08:00
chengyongru
34535b4e7c
fix(webui): hide subagent backfill payloads
2026-07-02 14:36:23 +08:00
chengyongru
2ebf5c4972
refactor(trigger): name CLI trigger source as local
...
maintainer edit: cron is also a trigger source, so keep the new CLI-delivered source explicitly named as local trigger across backend, WebUI, docs, and tests.
2026-07-02 13:32:46 +08:00
chengyongru
55b550ee01
fix(trigger): hide external trigger inputs
2026-07-02 13:32:46 +08:00
chengyongru
8d2c31eb6a
refactor(webui): derive provider model catalog kind
2026-07-01 12:59:06 +08:00
chengyongru
840ba5af33
fix: simplify session recency activity tracking
...
maintainer edit: remove the _last_compacted_at maintenance state, gate idle compaction on whether a session still has a removable tail, and sort WebUI sessions by the latest visible transcript activity.
2026-06-30 23:38:32 +08:00
chengyongru
3403b87641
fix(webui): keep idle compaction out of session recency
2026-06-30 23:38:32 +08:00
chengyongru
44a5ed1bc0
feat(providers): support provider-scoped proxy config
2026-06-30 17:33:36 +08:00
chengyongru
64901be67f
test: harden webui and gateway checks
2026-06-27 11:04:11 +08:00
Heng Wei Bin
de4009efbd
fix: exclude archived keys in heartbeat & fallback missing session timestamps
2026-06-24 15:45:49 +08:00
chengyongru
0db9fbe250
chore: default context window to 200k
2026-06-22 18:33:49 +08:00
chengyongru
a67285e6a2
fix: use async CLI Apps catalog refresh
...
Replace the manual thread-based catalog refresh with an asyncio task and async HTTP catalog fetches so the Settings route stays within the async WebUI model.
2026-06-22 17:14:13 +08:00
chengyongru
dd2cb4ca91
fix: refresh optional CLI Apps catalogs
...
maintainer edit: CLI Apps settings now treats optional catalog caches as refresh candidates without blocking the initial payload, and pending polling stops when refresh is throttled instead of running indefinitely.
2026-06-22 17:14:13 +08:00
chengyongru
1cd5a0e029
fix: keep refreshable Codex OAuth configured
...
maintainer edit: Settings reads local Codex token storage to avoid refresh work, so expired access tokens with refresh credentials still need to count as configured until real provider use refreshes them.
2026-06-22 17:14:13 +08:00
chengyongru
b8abe5542c
Avoid blocking settings on CLI Apps catalog refresh
2026-06-22 17:14:13 +08:00
chengyongru
7b153c5aa9
Avoid refreshing Codex token in settings
2026-06-22 17:14:13 +08:00
Xubin Ren
d30f3d466d
fix(webui): allow optional Keenable search key
2026-06-21 15:22:13 +08:00
Xubin Ren
d36117de7a
feat(webui): support Firecrawl keyless MCP preset
2026-06-19 01:19:20 +08:00
chengyongru
167a53dc45
fix(webui): sort sessions by transcript activity
2026-06-15 17:44:26 +08:00
Xubin Ren
dac4e39bcf
Merge PR #4299 : feat(cron): bind scheduled automations to sessions
...
feat(cron): bind scheduled automations to sessions
2026-06-13 00:07:55 +08:00
chengyongru
09d24e6c25
fix: validate named custom provider endpoints
2026-06-13 00:04:13 +08:00
chengyongru
57ced7930d
refactor: simplify dynamic provider settings tests
...
maintainer edit: keep the WebUI dynamic-provider behavior unchanged while reducing repeated test setup and tightening the small dynamic-provider helper.
2026-06-13 00:04:13 +08:00
chengyongru
37ae655fa6
fix: expose dynamic custom providers in WebUI settings
...
maintainer edit: WebUI settings still treated non-registry custom providers as unknown, so users could not select them in model configurations or fetch their model list. Reuse dynamic provider specs for settings payloads, model-list requests, and provider updates.
2026-06-13 00:04:13 +08:00
chengyongru
32d8a1dd7b
fix: hide internal cron prompts from webui
2026-06-12 18:17:28 +08:00
Xubin Ren
b8a4ceb30c
test(webui): cover siliconflow transcription settings
2026-06-10 23:05:12 +08:00
Xubin Ren
e1e643de2a
refactor(webui): keep sidebar index out of session manager
2026-06-10 20:45:29 +08:00
chengyongru
dadb35af49
feat(exec): add path prepend config
2026-06-10 18:09:57 +08:00
comadreja
f3eb2aa08b
feat(transcription): add AssemblyAI as transcription provider
...
Add AssemblyAI as a third transcription provider option alongside
OpenAI and Groq. AssemblyAI offers better accuracy for certain
audio types (distant voices, noisy environments) and serves as a
reliable fallback when other providers struggle.
Changes:
- Add AssemblyAITranscriptionProvider class in providers/transcription.py
- Add 'assemblyai' option in base channel's transcribe_audio()
- Per-channel configuration via transcriptionProvider in config
Usage:
Set transcriptionProvider: 'assemblyai' and provide an AssemblyAI
API key via transcriptionApiKey in the channel config.
2026-06-09 05:33:18 +08:00
NanoBot
c20ecc52d7
feat(transcription): add Xiaomi MiMo ASR provider (mimo-v2.5-asr)
...
Add support for Xiaomi MiMo ASR as a third transcription backend alongside
Groq and OpenAI Whisper. Xiaomi ASR uses the /v1/chat/completions endpoint
with base64-encoded audio input, rather than the standard Whisper multipart
upload format.
Co-Authored-By:连 <lian@tangping.homes>
2026-06-09 04:29:09 +08:00