Commit Graph
185 Commits
Author SHA1 Message Date
digua bbbd0bb3c6 perf(import): establish end-to-end import baseline 2026-07-31 16:37:40 +08:00
digua 860bf52d62 feat(analytics): add privacy-safe product telemetry
Add self-hosted Umami reporting alongside existing telemetry across Desktop and CLI Web.

Track normalized startup, import, feature, and AI usage with a stable anonymous ID and strict privacy allowlists. Keep incremental usage platform-independent and preserve accurate failure classifications and platform metadata across import paths.
2026-07-29 14:28:48 +08:00
digua 78bc9d392e fix(ai): avoid logging user message content 2026-07-27 00:09:33 +08:00
digua 1f0528ebd0 refactor(import): simplify demo import implementation 2026-07-26 01:43:43 +08:00
digua dc20320041 fix(demo): harden cross-platform demo imports
Rebase official Demo timelines against the browser timezone, bound stalled downloads, and roll back partial batches across Desktop, CLI Web, and Web WASM. Document the platform cleanup hook's established best-effort boundary.
2026-07-26 01:43:43 +08:00
digua 9e7c76fb89 feat(demo): add rolling cross-platform imports 2026-07-26 01:43:43 +08:00
digua 7bf7768c03 refactor(ai): unify LLM configuration storage 2026-07-23 19:46:22 +08:00
digua c11ca38472 refactor(electron): remove redundant main-process wrappers 2026-07-23 17:37:50 +08:00
digua e02ca569e3 refactor(electron): simplify archive import runtime 2026-07-23 17:37:50 +08:00
digua a8e59174af refactor: remove obsolete import and database code 2026-07-23 17:37:50 +08:00
digua ce5dfe08e9 feat(relationship): redesign interaction timeline 2026-07-22 21:39:49 +08:00
KokerZhou 8e9e098391 fix: bundle frontend icons locally 2026-07-20 16:36:32 +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 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
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 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 6967779650 refactor(analysis): simplify ranking cards 2026-07-16 21:12:21 +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 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 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 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
digua 68e33cd0b0 refactor(electron): formalize runtime import boundaries 2026-07-16 20:09:18 +08:00
digua 5a5fae880a refactor: remove redundant re-export proxies 2026-07-16 20:09:18 +08:00
digua 15d0158a40 feat(members): align member table interactions 2026-07-16 11:23:39 +08:00
digua e2d4ef9831 chore(deps): upgrade TypeScript and Nuxt UI 2026-07-15 23:23:52 +08:00
digua 16ee4d8348 refactor(ai): unify desktop tool adapters 2026-07-13 20:42:27 +08:00
digua 9123bd8476 refactor(import): simplify shared push import analysis 2026-07-13 18:33:23 +08:00
digua 859b4a79ed fix(import): align JSON dry-run with push semantics
Route Desktop JSON dry-runs through a shared read-only push analyzer so validation, deduplication, and member inference match actual writes. Keep JSONL on the file analyzer path and cover new and incremental predictions without database mutations.
2026-07-13 17:56:47 +08:00
digua db26950d4b fix(import): harden desktop shared imports
Use the long-running worker timeout and refresh Desktop caches after successful push imports.

Align auto-created member metadata and counts across initial and incremental imports, exclude SYSTEM from member updates, and keep existing-session writes validated and atomic.
2026-07-13 17:56:47 +08:00
digua e8f7ed9e4e refactor(import): route desktop imports through shared services 2026-07-13 17:56:47 +08:00
digua 8f8a19f96e fix(import): align shared push import semantics 2026-07-13 17:56:47 +08:00
digua 5be001fea5 fix(sync): preserve pull cursor on lock conflict
Propagate retryable import lock conflicts through CLI and Desktop pull adapters so scheduled pulls defer without advancing past unimported messages.
2026-07-13 01:01:42 +08:00
digua 8bee0fab4a fix(api): align new import dry runs
Reuse create-path validation and deduplication during new-session analysis so dry-run counts match the subsequent import.
2026-07-13 01:01:42 +08:00
digua 381cfd05fd fix(api): preserve import result contracts
Map data-directory import lock conflicts to HTTP 409 across REST import paths and report stream duplicate counts from the dedicated diagnostics field.
2026-07-13 01:01:42 +08:00
digua 61d42b2500 fix(import): harden automatic incremental imports 2026-07-13 01:01:42 +08:00
digua 6dc35722c0 fix(import): disambiguate ChatLab reimports 2026-07-13 01:01:42 +08:00
digua 3e6f036826 feat(electron): enable automatic incremental imports 2026-07-13 01:01:42 +08:00