Xubin Ren
3dc38f6396
refactor(models): unify preset names
2026-08-16 11:50:56 +08:00
Xubin Ren
577e6ea3b5
fix(webui): clarify model preset display names
2026-08-15 23:30:19 +08:00
Xubin Ren
b378319d4a
fix(webui): enforce localized group copy
2026-08-14 19:55:25 +09:00
Xubin Ren
4d18dd2c30
fix(webui): align group rename dialog terminology
2026-08-14 19:55:25 +09:00
chengyongru
e455a2b7fa
feat(webui): add MCP management dialog
2026-08-12 18:28:23 +08:00
chengyongru
4b5319b760
feat(webui): add tabbed pane workbench ( #5322 )
2026-08-12 14:45:12 +08:00
chengyongru
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru
8e77f3f8a4
feat(mcp): add browser OAuth for remote servers ( #5316 )
2026-08-10 23:44:37 +08:00
chengyongru
71a99b0780
fix(webui): improve UX recovery and empty states ( #5315 )
2026-08-10 15:22:25 +08:00
chengyongru
411d6061ae
fix(webui): explain HTTPS requirement for voice input ( #5304 )
2026-08-09 21:17:57 +08:00
Xubin Ren
af52fbcbc4
fix(webui): emphasize temporary chat expiry
2026-08-08 23:20:59 +08:00
chengyongru
516ae11c33
fix(webui): simplify temporary chat closing
2026-08-08 23:20:59 +08:00
chengyongru
656e0d606b
fix(webui): tighten temporary chat close action
2026-08-08 23:20:59 +08:00
chengyongru
a5bc3bfbb9
fix(webui): complete temporary chat mode
2026-08-08 23:20:59 +08:00
Xubin Ren
c9a6145878
feat(webui): add temporary chat mode
2026-08-08 23:20:59 +08:00
Xubin Ren
e971e81b6c
refactor(webui): expand model preset editor inline
2026-08-07 12:42:37 +08:00
Xubin Ren
ada07aa799
feat(webui): add responsive model preset detail pane
2026-08-07 12:42:37 +08:00
chengyongru
67805f5db8
feat: add provider-native request switches ( #5254 )
2026-08-05 18:26:39 +08:00
Xubin Ren
9b25da7b92
feat(session): add cross-session references
2026-08-04 12:14:51 +08:00
chengyongru
2b63715282
fix(webui): complete i18n audit
2026-08-03 17:53:33 +08:00
chengyongru
5c72fdcd88
fix(webui): remove unused bot identity settings
2026-08-03 14:06:44 +08:00
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
42ee34e34d
fix(webui): localize skills view tabs
2026-07-30 01:13:37 +08:00
chengyongru
129b74b4cf
feat(webui): track optimistic message delivery status ( #5162 )
2026-07-29 23:15:45 +08:00
chengyongru
ae089aa3ae
fix(webui): reconcile threads after browser resume
2026-07-28 16:25:08 +08:00
chengyongru
6a9157f477
feat(webui): present chats as topics
2026-07-24 10:29:13 +08:00
chengyongru
aae259c790
feat(webui): simplify model preset settings ( #5061 )
2026-07-24 00:55:06 +08:00
chengyongru
6c0f151f6e
fix(webui): polish responsive layout
2026-07-23 18:22:02 +08:00
chengyongru
c7393c785e
feat(providers): add xAI Grok OAuth with capability-gated X Search ( #5035 )
2026-07-23 11:55:16 +08:00
Xubin Ren
aa8387fb4d
feat(webui): polish agent output and app discovery
2026-07-22 22:42:31 +08:00
chengyongru
63bc6e98a7
fix(webui): detect Chrome voice recording support ( #5027 )
2026-07-22 14:10:09 +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
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
6b5820ea89
fix(webui): sync localized preboot copy
2026-07-13 23:28:19 +08:00
bill-kopp-ai-dev
1e7518a207
feat(webui): add Brazilian Portuguese (pt-BR) locale
...
Translate the WebUI common.json to pt-BR, register the locale in
config.ts (with normalizeLocale rules for "pt", "pt-BR", "pt-PT", ...)
and index.ts resources, and add a Brazilian Portuguese overview
assertion in i18n.test.tsx.
Notes:
- Generic "pt" and any "pt-*" variant resolve to pt-BR. A future
pt-PT locale can be added without affecting existing users.
- Universally borrowed technical terms (nanobot, BYOK, MCP, JSON,
URL, Web, Apps when used as a product name, Skills) are kept in
English, matching the pattern used by es/fr/ja/ko/vi/id.
- Empty-thread greetings, quick-action prompts, and slash command
descriptions are translated; quick-action prompts are intentionally
phrased so the agent still receives a clear task spec.
Verified with bun run test (536 passing), bun run lint (clean), and
bun run build (7.18s).
2026-07-13 23:28:19 +08:00