m4
8a6ccc032c
docs(webui): add user-management UI redesign implementation plan
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-12 16:25:14 +08:00
m4
1ae2fe1b2a
docs(webui): add user-management UI redesign spec
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-12 16:12:27 +08:00
m4
3efaa9f34e
fix(webui): add getServerSnapshot to running-threads store for SSR
...
useLocalRunningThreadIds is now mounted on a force-dynamic route, so
useSyncExternalStore needs a getServerSnapshot to avoid React's
"Missing getServerSnapshot" error during server rendering. Use a
module-level EMPTY_IDS constant to keep snapshot identity stable.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-12 13:08:37 +08:00
m4
b94bcd649a
feat(webui): show pulsing dot in header while open conversation runs
2026-08-12 12:33:55 +08:00
m4
10deb0ac22
feat(webui): show pulsing running dot on busy thread-list rows
2026-08-12 12:26:56 +08:00
m4
9cb986eb89
feat(webui): add RunningDot pulsing status component
2026-08-12 12:21:34 +08:00
m4
8fb1f299e6
feat(webui): add useRunningThreadIds merging local + heartbeat busy state
2026-08-12 12:13:39 +08:00
m4
93500c3020
docs(webui): running-conversation indicator implementation plan
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-12 12:00:31 +08:00
m4
f992cd213f
docs(webui): running-conversation indicator design spec
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-12 11:55:17 +08:00
m4
2ee0e617ef
fix(webui): format context-usage tooltip numbers via useFormatter
2026-08-11 22:33:54 +08:00
m4
c18ca4693c
feat(webui): i18n main chat — chat + threadList domains
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 17:44:52 +08:00
m4
ddbc6c808e
feat(webui): i18n chrome — header, LocaleSwitcher, login page
2026-08-11 16:03:26 +08:00
m4
63f3310fa0
feat(webui): move pages under [locale], compose intl + auth proxy
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 15:31:13 +08:00
m4
c6a2c347f8
feat(webui): wire version badge + system config dialog into header, admin gate
2026-08-11 15:07:53 +08:00
m4
598b2cfdc4
feat(webui): version update check with badge and download proxy
2026-08-11 15:07:53 +08:00
m4
141e25c3b0
feat(webui): surface summarization budget events in compaction UI
2026-08-11 15:07:53 +08:00
m4
e32dd49095
feat(webui): inline workspace images/links in chat via thread-aware file urls
2026-08-11 15:07:53 +08:00
m4
84e4d298b3
feat(webui): support latex \(...\) and \[...\] math delimiters in markdown
2026-08-11 15:07:53 +08:00
m4
ab3789603f
feat(webui): image model connection test
2026-08-11 15:07:53 +08:00
m4
eab9178743
feat(webui): registry editor context-window/output/temperature fields + advanced section
2026-08-11 15:07:53 +08:00
m4
94e64cc0c2
feat(webui): context-usage indicator fed by custom stream events
2026-08-11 15:07:53 +08:00
m4
1351da2ee0
feat(webui): clear-all usage records endpoint + dialog action
2026-08-11 15:07:23 +08:00
m4
a7f7adc56b
feat(webui): install skills from arbitrary source, uninstall, marketplace categories
2026-08-11 15:07:23 +08:00
m4
9e1e628ab7
feat(webui): next-intl scaffolding + en/zh catalog skeletons
CI / macos-latest / Node 20 (push) Has been cancelled
CI / ubuntu-latest / Node 20 (push) Has been cancelled
CI / windows-latest / Node 20 (push) Has been cancelled
2026-08-11 14:52:56 +08:00
m4
65ad214fcd
docs(webui): implementation plan for i18n (en + zh)
CI / macos-latest / Node 20 (push) Has been cancelled
CI / ubuntu-latest / Node 20 (push) Has been cancelled
CI / windows-latest / Node 20 (push) Has been cancelled
2026-08-11 14:33:17 +08:00
m4
493b2bfc52
docs(webui): spec for bilingual i18n (next-intl URL locale segment, code-mapped errors)
2026-08-11 13:58:31 +08:00
m4
79cfeae8d8
fix(webui): harden branding path validation, auth-on warning, scheduler retry
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 12:33:58 +08:00
m4
6d0251a673
fix(webui): clean up eslint errors in branding route and backup scheduler test
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 12:21:42 +08:00
m4
ae32cc72df
feat(webui): consume system branding in layout metadata and login page
2026-08-11 12:04:01 +08:00
m4
7353afbec9
feat(webui): security + data backup tabs in system config dialog
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 11:55:07 +08:00
m4
0e83ab73af
fix(webui): keep unsaved system config edits across branding uploads
...
Uploading or restoring a logo/favicon revalidated /api/system/config,
which re-ran the dialog's sync effect and replaced the whole draft,
silently wiping unsaved wordmark/login-terms edits. Now only the
draft's file field is updated from the response and only the public
config key is revalidated. Also fix the favicon fallback preview src
from the nonexistent /favicon.ico to /icon.png.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 11:47:46 +08:00
m4
5634abdbd5
feat(webui): system config dialog shell with general + login terms tabs
2026-08-11 11:32:28 +08:00
m4
7bd43a39a0
feat(webui): backup run/history/download/delete API routes
2026-08-11 11:20:39 +08:00
m4
c7d6c65130
feat(webui): scheduled backups via instrumentation-started interval
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 11:00:52 +08:00
m4
6b009e2c32
fix(webui): exclude *.tmp files from backup archives
...
Spec 2026-08-11-system-config-design section 6 requires the backup tar
to exclude both backups/ itself and *.tmp files; only the backups/
exclusion was implemented. Adds a <base>/*.tmp exclusion for the webui
data dir and the configured backend data dir, mirroring the existing
top-level exclusion style. Excludes are emitted before any -C operand
so bsdtar does not treat them as member operands.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 10:49:29 +08:00
m4
72dedba64e
feat(webui): tar.gz backup archive module with prune and mutex
2026-08-11 10:40:10 +08:00
m4
1532a9de3e
feat(webui): honor security overrides in auth, captcha, login, and proxy
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 10:08:45 +08:00
m4
74516fd7c8
feat(webui): branding upload + public asset routes
2026-08-11 09:23:28 +08:00
m4
e8f09f240e
fix(webui): reject malformed JSON body in system config PUT
...
An unparseable request body was silently converted to null, merged over
defaults, and saved — wiping the admin's config while returning 200.
Throw SystemConfigError on JSON parse failure so the route returns 400
INVALID_REQUEST without touching the saved config file.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 09:06:11 +08:00
m4
3ddd953e1b
feat(webui): admin + public system config API routes
2026-08-11 08:51:46 +08:00
m4
0a9148d178
feat(webui): system config override store with effective security derivation
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-11 08:35:52 +08:00
m4
7c9193df2e
docs(webui): implementation plan for admin system config
2026-08-11 08:29:08 +08:00
m4
aa0f308208
docs(webui): spec for admin system config (branding, login terms, security, backup)
2026-08-11 07:51:14 +08:00
m4
b75de8b5e6
Revert "feat(webui): pin sidebar collapse button to the resize divider"
...
This reverts commit adc59ba . The divider-mounted tab broke the header's
visual consistency; the collapse toggle stays in the top header.
2026-08-11 07:22:20 +08:00
m4
adc59ba9a9
feat(webui): pin sidebar collapse button to the resize divider
...
The collapse control now hangs off the top of the ResizableHandle so it
tracks the divider as the sidebar is resized, instead of sitting in the
header far from the boundary it controls. The header toggle remains for
the collapsed and mobile-overlay states. ResizableHandle now renders
passed children (previously shadowed by the withHandle element).
2026-08-10 23:44:28 +08:00
m4
17271d6ebd
style(webui): show title only in thread list rows
2026-08-10 22:44:55 +08:00
m4
39e126beab
style(webui): gradient brand mark and larger welcome title
2026-08-10 22:35:23 +08:00
m4
62005109a4
style(webui): pastel-tinted stat cards on welcome screen
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-10 22:32:34 +08:00
m4
92acc7802e
docs(webui): implementation plan for welcome screen polish
2026-08-10 22:26:11 +08:00
m4
37f9944ca1
docs(webui): spec for welcome screen gradient brand + pastel cards
2026-08-10 22:23:48 +08:00