Commit Graph
100 Commits
Author SHA1 Message Date
digua 9e7c76fb89 feat(demo): add rolling cross-platform imports 2026-07-26 01:43:43 +08:00
digua e9004ca71f fix(database): support early segment schema migrations 2026-07-25 19:54:03 +08:00
digua 14657847fe feat(web): streamline Web WASM locale startup 2026-07-25 01:14:04 +08:00
digua 088d3ee54d fix(web): harden multi-tab workspace leases
Cancel queued Web Locks promptly, keep import parsing outside the workspace lease, and defer cancellation until active SAH pools can pause before lock release.

Add regression coverage for queued cancellation, scoped imports, and pool activation cleanup.
2026-07-24 09:35:08 +08:00
digua ce603bdc52 fix(web): support multi-tab workspace access 2026-07-24 09:35:08 +08:00
digua d0a9a03f7c release: v0.34.0 2026-07-23 22:20:46 +08:00
digua 99de252081 fix(relationships): scope friend search results
Limit friends-mode search results to nodes in the friend graph so selecting an off-scope groupmate cannot replace the canvas with an empty neighborhood.
2026-07-23 22:05:18 +08:00
digua ac64cb72fb feat(ui): add branded startup loading animation 2026-07-23 22:05:18 +08:00
digua c6676e68a5 fix(relationships): enforce friends-only galaxy scope 2026-07-23 22:05:18 +08:00
digua 42dec0b75e fix(navigation): prevent page tab controls wrapping early 2026-07-23 22:05:18 +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 cac8c22d4f feat(insight): add monthly direct contact trend 2026-07-23 16:50:05 +08:00
digua 755a0b5a76 feat(insight): add annual activity rhythm metrics 2026-07-23 16:50:05 +08:00
digua 66311a2412 docs: expand Chinese troubleshooting FAQ 2026-07-23 15:04:06 +08:00
digua 7cc11c2439 feat(docs): remember language preference
Persist the active documentation locale and restore it when users revisit the root URL. Open the VitePress development site automatically on startup.
2026-07-23 14:59:22 +08:00
digua 651e9c1935 feat(analysis): add private chat journey insight 2026-07-22 23:26:57 +08:00
digua ce5dfe08e9 feat(relationship): redesign interaction timeline 2026-07-22 21:39:49 +08:00
digua 69ee6716b1 feat(web): align Web WASM session insight navigation 2026-07-22 19:00:39 +08:00
digua 53bd6750af feat(analysis): merge session overview into insights 2026-07-22 19:00:39 +08:00
digua 795e9234d5 refactor(analysis): organize session insight components 2026-07-22 19:00:39 +08:00
digua 723831c04e docs: streamline onboarding documentation 2026-07-22 18:07:32 +08:00
digua a66d77f80f docs(docker): document shared data setup 2026-07-22 13:31:53 +08:00
digua 179b8c12c2 release: v0.33.0 2026-07-22 10:14:31 +08:00
digua 21b40358c2 fix(web): keep member filters out of proximity queries
Preserve time bounds for group proximity analysis without pre-filtering the message stream to a single sender.
2026-07-22 09:44:17 +08:00
digua d5582f456c fix(analysis): align browser word frequency totals
Compute total and unique word counts after the minimum-frequency filter while keeping them independent from the displayed top-N limit.
2026-07-22 09:44:17 +08:00
digua 915aa19a20 feat(web): add session insights 2026-07-22 09:44:17 +08:00
digua 83bbc06366 feat(web): add insight query capabilities 2026-07-22 09:44:17 +08:00
digua c42fefd227 fix(web): stabilize session overview interactions
Keep filter-only route changes on the current session page, prevent superseded analysis results from overwriting the latest time range, and hide unsupported capture controls in Web WASM.
2026-07-20 23:23:49 +08:00
digua 985ce4276d feat(web): add session overview 2026-07-20 23:23:49 +08:00
digua 8e6cd5c6e6 feat(web): refine import homepage 2026-07-20 23:23:49 +08:00
digua 73c6de364e chore(web): add Web WASM development workflow 2026-07-20 17:24:55 +08:00
digua 8ca8b4f623 fix(web): prevent concurrent OPFS access 2026-07-20 17:24:55 +08:00
digua 5f92d953c0 feat(web): add Web WASM application shell 2026-07-20 11:51:17 +08:00
digua ff6a397d4f refactor(frontend): extract reusable browser services 2026-07-20 10:14:59 +08:00
digua d888771670 feat(parser): add wasm-bindgen browser parser 2026-07-20 00:14:51 +08:00
digua cc104cd07c feat(web): add browser SQLite import runtime 2026-07-20 00:14:51 +08:00
digua 6bd288a2cd refactor(parser): expose browser-safe parsers 2026-07-19 21:27:23 +08:00
digua 344bd0b12f refactor(import): share parsed message writer 2026-07-19 21:27:23 +08:00
digua 1d183cbe6a fix(parser): align ChatLab JSONL validation
Keep automatic format detection consistent with accepted JSONL syntax and reject unresolved owner metadata. Regenerate the standalone skill validators from the canonical implementation.
2026-07-19 15:16:29 +08:00
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 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
digua 32bd268af4 release: 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
digua 68e33cd0b0 refactor(electron): formalize runtime import boundaries 2026-07-16 20:09:18 +08:00
digua fdd2a943f2 feat(members): support batch deletion 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 35c696b1a4 release: v0.31.2 2026-07-16 11:30:01 +08:00
digua b893cf27ca chore(vscode): update recommended extensions 2026-07-16 11:23:39 +08:00
digua f5f7596822 feat(members): unify private member management 2026-07-16 11:23:39 +08:00
digua 15d0158a40 feat(members): align member table interactions 2026-07-16 11:23:39 +08:00
digua 3275591c11 fix(capture): remove unsupported snapdom option 2026-07-16 11:23:39 +08:00
digua d2cd841168 fix(members): stabilize member management table 2026-07-16 11:23:39 +08:00
digua b2da72ac6f fix(analysis): wrap section filters by content width 2026-07-16 00:35:19 +08:00