Commit Graph
1311 Commits
Author SHA1 Message Date
digua b0380a6689 feat(skills): support conversion without ChatLab CLI 2026-07-19 15:16:29 +08:00
digua 1049f79800 feat(skills): add chat record conversion skills 2026-07-19 15:16:29 +08:00
digua 3a995f6491 feat(cli): add ChatLab format validator 2026-07-19 15:16:29 +08:00
digua e5ec60aaaf refactor(format): centralize ChatLab format version 2026-07-19 15:16:29 +08:00
digua 9c8210e18c docs(ai): clarify analysis and privacy benefits 2026-07-19 15:16:29 +08:00
digua 98ffd88670 fix(electron): block overlapping legacy migrations
Resolve legacy and active data directories through real paths and reject parent-child overlaps before any recursive deletion. Cover settings migration, parent paths, and path aliases in the desktop path regression test.
2026-07-19 00:24:50 +08:00
digua 23e145427c fix(electron): prevent active data directory deletion 2026-07-19 00:24:50 +08:00
digua dd6765baf3 release: v0.32.0 v0.32.0 2026-07-18 17:44:15 +08:00
digua 5d30254c17 fix(parser): preserve JSONL member metadata
Emit explicit members before the first streamed message batch so merge previews do not retain metadata-free member stubs. Add parser ordering and temporary database regression coverage.
2026-07-18 17:38:12 +08:00
digua c0942a72f0 fix(import): stabilize large and multi-file imports 2026-07-18 17:38:12 +08:00
digua 4518a3aaa9 docs(data): explain skipped-file cleanup policy
Clarify that skipped files can leave unique data on either side, so cleanup records intentionally remain unchanged and deletion performs the final active-path safety check.
2026-07-18 16:15:19 +08:00
digua d4c837b367 fix(data): keep retry sources out of cleanup
A retried migration can skip stale files already copied to the target. Keep the source directory outside manual cleanup whenever any files were skipped so newer source data cannot be deleted.
2026-07-18 16:15:19 +08:00
digua 1f3069f359 fix(data): harden migration cleanup flow
Show the pending cleanup notice in CLI Web after initialization while excluding the browser-only runtime.\n\nStub config persistence in the cleanup test so it cannot overwrite the user's real data directory settings.
2026-07-18 16:15:19 +08:00
digua 355d6cfd4d style(storage): refine local storage management 2026-07-18 16:15:19 +08:00
digua 739f8c7522 fix(data): preserve old directory after migration 2026-07-18 16:15:19 +08:00
digua 058c3448ca fix(security): harden desktop app lock
Keep the renderer fail-closed until lock state is known, use native modal dialogs without unmounting business state, and coordinate overlapping dialogs while locked. Isolate desktop E2E data from real user settings and keep startup migration inspection read-only.
2026-07-18 11:49:09 +08:00
digua e7dd418642 fix(security): throttle app lock PIN attempts
Persist failed unlock attempts in the lock flag so restarting the desktop app cannot reset the limit. Block further attempts for 30 seconds after five failures and surface the remaining cooldown on the lock screen.
2026-07-18 11:49:09 +08:00
digua 10ead5a306 refactor(security): simplify desktop app lock 2026-07-18 11:49:09 +08:00
xyz-225648 7e46e47d3c fix(security): 汇总应用锁安全审计修复
严格校验应用锁 canonical 配置,并通过临时文件原子替换避免写入中断损坏配置。

补充密码、手动锁定、闲置锁定、启动锁定和崩溃恢复回归测试。
2026-07-18 11:49:09 +08:00
xyz-225648andClaude 84b371e73d feat(security): 新增桌面端应用锁
新增 4 位 PIN、手动锁定、启动锁定和系统闲置锁定。

新增主进程与 preload 能力、桌面端设置面板、全局锁屏覆盖层及四语言界面。

Fixes #190

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-18 11:49:09 +08:00
digua 32bd268af4 release: v0.31.3 v0.31.3 2026-07-17 11:17:22 +08:00
digua e6059ffd75 fix(ai): enable all tools for default assistants 2026-07-17 10:29:59 +08:00
digua 79e2027b43 fix(ai): initialize and migrate default assistants
Load standalone CLI assistant configs through the shared manager so fresh data directories receive locale defaults. Back up custom assistants that occupy newly reserved default IDs before installing canonical templates.
2026-07-17 00:42:04 +08:00
digua 713776a7c4 refactor(ai): inline assistant upgrade skip check 2026-07-17 00:42:04 +08:00
digua c73d18208e feat(ai): safely upgrade customized default assistants 2026-07-17 00:42:04 +08:00
digua 3dc8fb3157 fix(ai): share default assistants across runtimes 2026-07-17 00:42:04 +08:00
digua e4eb7fa683 feat(ai): improve default assistant experience 2026-07-17 00:42:04 +08:00
digua 6d2ad097a3 fix(analysis): preserve catchphrase member filter 2026-07-16 23:28:17 +08:00
digua 4925fa0676 docs(analysis): clarify private lab scope
Document that private-chat Lab intentionally exposes SQL only and that keyword ranking remains limited to group chats.
2026-07-16 23:28:17 +08:00
digua d75793c5ca fix(ranking): show list counts in card headers 2026-07-16 23:28:17 +08:00
digua abd7027d38 feat(ranking): move keyword analysis into rankings 2026-07-16 23:28:17 +08:00
digua f762b2af35 feat(navigation): reorganize analysis and ranking views 2026-07-16 23:28:17 +08:00
digua 788793d096 feat(analysis): improve catchphrase insights 2026-07-16 23:28:17 +08:00
digua 6967779650 refactor(analysis): simplify ranking cards 2026-07-16 21:12:21 +08:00
digua 041d2191da fix(http): preserve batch delete client errors
Let status-coded 4xx errors reach the shared Fastify handler so missing sessions remain distinguishable from transaction failures. Add regression coverage for the missing-session response.
2026-07-16 20:09:18 +08:00
digua c4ad84cb7a fix(api): preserve REST member display name
Normalize member responses from both database and Desktop providers so the public REST endpoint keeps its legacy name field while retaining the newer detailed fields.
2026-07-16 20:09:18 +08:00
digua c64c7b29a0 docs(runtime): clarify temp workspace ownership
Document the single-OS-user product boundary beside the default private temp root so future reviews do not treat unsupported multi-UID sharing as a regression.
2026-07-16 20:09:18 +08:00
digua 47ca785779 fix(electron): resolve temp workspace source alias
Add an exact Vite alias before the workspace catch-all so Electron main-process imports resolve the exported temp-workspace source instead of a nonexistent package-root path.
2026-07-16 20:09:18 +08:00
digua 0227a8cc6b fix(migration): make Electron path test cross-platform
Resolve Electron userData fixtures for macOS, Windows, and Linux so the migration regression test exercises the path selected by the current runner.
2026-07-16 20:09:18 +08:00
digua 7d156040f8 fix(runtime): contain and clean temporary workspaces 2026-07-16 20:09:18 +08:00
digua c34f71ed2d chore(workspace): enforce dependency declarations 2026-07-16 20:09:18 +08:00
digua 756daf04bf refactor(http): split route contexts and registration 2026-07-16 20:09:18 +08:00
digua 4b52a7d2f8 refactor(http): organize shared route package 2026-07-16 20:09:18 +08:00
digua bf7004d0e0 refactor(http): share server infrastructure 2026-07-16 20:09:18 +08:00
digua 2d69e836ea refactor(import): share JSON push protocol 2026-07-16 20:09:18 +08:00
digua e563183e62 refactor(http): share system and session routes 2026-07-16 20:09:18 +08:00
digua f949c7a8f9 refactor(http): unify API error model 2026-07-16 20:09:18 +08:00
digua a14de9fc10 refactor(electron): organize desktop runtime modules 2026-07-16 20:09:18 +08:00
digua 45d9813d05 refactor(electron): split desktop startup and window modules 2026-07-16 20:09:18 +08:00
digua c6ae5d4cfa refactor(electron): modularize path management 2026-07-16 20:09:18 +08:00