Commit Graph

253 Commits

Author SHA1 Message Date
m4 eb3ca1d7a0 docs: clarify uv run pytest rationale in plan 2026-08-12 19:55:46 +08:00
m4 2ac4c34044 docs: correct backend test command to uv run pytest 2026-08-12 19:53:59 +08:00
m4 4e66e6a7f4 refactor: split i18n catalogs into domain modules, rework dialog components
In-progress work committed to unblock the config import/export plan:
- i18n: new changePassword/modelConfig/imageModels/systemConfig catalogs (zh+en)
- AccountDialog/ChangePasswordDialog/ConfigDialog/ImageModelsDialog rewired
- RegistryEditor/ImageModelsEditor updated for the new catalogs
- system-config tabs restyled; page/layout follow-ons
2026-08-12 19:45:18 +08:00
m4 05d8abef2d docs: add config import/export implementation plan
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-12 19:32:24 +08:00
m4 c9909f58f8 docs(webui): add config import/export design spec
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-08-12 19:01:53 +08:00
m4 3fec24dc2b feat(update): update banner and one-click upgrade/rollback in version badge
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-12 17:16:39 +08:00
m4 046aab4247 test(webui): include userManagement in i18n shadow-check module list 2026-08-12 17:11:06 +08:00
m4 caacec90bc feat(update): WebUI self-update and backend-proxy API routes 2026-08-12 17:07:18 +08:00
m4 49e7dde242 feat(webui): redesign user management with avatar rows and action dialogs 2026-08-12 17:06:25 +08:00
m4 af739b0aa1 feat(webui): add reset-password and delete-user dialogs 2026-08-12 16:57:16 +08:00
m4 1fdac0d2e1 feat(update): zero-dep WebUI updater runner 2026-08-12 16:55:16 +08:00
m4 a2ce1c6b7b feat(webui): add create-user dialog 2026-08-12 16:50:44 +08:00
m4 496236ccf5 feat(update): WebUI self-update check/download against shared Gitea release 2026-08-12 16:47:56 +08:00
m4 68179dd46e feat(webui): add user-management validation helpers 2026-08-12 16:45:43 +08:00
m4 3f6730c9e5 i18n(webui): add userManagement message catalogs 2026-08-12 16:37:36 +08:00
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