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
digua
9438cb2a23
fix(capture): preserve inline padding after screenshots
...
Restore only the padding properties changed by each capture mode so partial inline padding is not cleared after cleanup.
2026-07-16 00:34:16 +08:00
digua
142f2f03b1
fix(web): support image clipboard copy
2026-07-16 00:34:16 +08:00
digua
3c8b83d571
fix(capture): restore AI screenshot framing
2026-07-16 00:34:16 +08:00
digua
1b940143fd
style(ai): refine chat message backgrounds
2026-07-16 00:23:47 +08:00
digua
774eeb2ce2
feat(import): add home auto-import hint
2026-07-16 00:23:47 +08:00
digua
e2d4ef9831
chore(deps): upgrade TypeScript and Nuxt UI
2026-07-15 23:23:52 +08:00
digua
8ae3e42e4f
chore(workspace): refine editor and formatting setup
2026-07-15 23:23:52 +08:00
digua
6e4af0a798
fix(capture): keep word clouds stable during screenshots
2026-07-15 22:12:44 +08:00
digua
03af25e238
fix(capture): limit progressive narrowing to AI chat
2026-07-15 22:03:13 +08:00
digua
0aafed0f60
fix(sidebar): limit titlebar inset to macOS
2026-07-15 22:00:35 +08:00
digua
61cfc0a51e
release: v0.31.1
2026-07-15 20:32:19 +08:00
digua and Claude Opus 4.8
3dc86cf0d2
docs(ai): reorganize AI guides into /ai section and refresh nav
...
- Move AI config/CLI guides under /ai with redirect stubs at old /usage paths
- Rewrite why-chatlab: lead with value, drop table for a two-item list
- Rename nav items ("为什么选择 ChatLab", "对接 ChatLab") for clarity
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-15 19:09:05 +08:00
digua
fcf30853e9
feat(home): reorganize import options
2026-07-15 19:09:05 +08:00
digua
7067c3f1c8
feat(skills): add localized import and analysis workflows
2026-07-15 19:09:05 +08:00
digua
8360cd182f
fix(parser): validate QCE private chat type
...
Treat more than two real senders as stronger evidence than a conflicting private marker while preserving genuine private chats with system placeholders.
2026-07-15 10:22:28 +08:00
digua
710b21f2ae
fix(records): order backfilled messages by timestamp
...
Use timestamp and message ID as the stable viewer cursor so historical messages imported later remain in chronological order. Resolve timeline anchors by message time and cover out-of-order IDs with SQLite regressions.
2026-07-14 11:56:09 +08:00
digua
82710e2d5a
fix(import): keep dry-run database access read-only
...
Use non-migrating session enumeration during import analysis so previews cannot mutate legacy schemas or raise data-directory compatibility gates.
2026-07-14 11:32:22 +08:00
digua
53406f4c6d
feat(import): add dry-run preview
...
Share auto-import planning between preview and write paths, expose a machine-readable CLI result envelope, and preserve explicit parser options during analysis.
2026-07-14 11:32:22 +08:00
digua
1271c16f17
fix(sidebar): preserve titlebar safe area
...
Keep the sidebar header below the fixed 32px title bar after removing the outer margin. This prevents header controls from being covered on non-macOS platforms.
2026-07-14 10:13:31 +08:00
digua
c118026038
style(sidebar): align layout with macOS titlebar
2026-07-14 10:13:31 +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
5b35cb1d71
feat(api): honor idempotency keys on shared imports
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
a5e11d2fc8
release: v0.31.0
2026-07-13 10:17:25 +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
ec822cb1b0
fix(import): deduplicate mixed message identities
...
Track unmatched fallback-only keys separately so messages with and without platform IDs bridge safely without collapsing distinct stable IDs.
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
af78be00db
feat(import): surface automatic import results
2026-07-13 01:01:42 +08:00
digua
5823797256
feat(web): enable automatic incremental imports
2026-07-13 01:01:42 +08:00
digua
3e6f036826
feat(electron): enable automatic incremental imports
2026-07-13 01:01:42 +08:00
digua
0606d5f5f7
feat(cli): enable automatic incremental imports
2026-07-13 01:01:42 +08:00
digua
6cf4c063fc
feat(import): orchestrate automatic imports
2026-07-13 01:01:42 +08:00
digua
27f46dfcb6
feat(import): add automatic session matcher
2026-07-13 01:01:42 +08:00
digua
a9a1557867
fix(import): preserve ChatLab owner and aliases
...
Thread ownerId and member aliases through the TS and native parsers. Persist aliases across full and incremental imports so exported ChatLab JSON retains user identity metadata.
2026-07-12 21:27:39 +08:00
digua
37c446c751
fix(parser): preserve ChatLab members in TS fallback
...
Stream members and messages in one pass so nested member metadata is parsed structurally. Cover exports whose complete member list exceeds the filtered messages.
2026-07-12 21:27:39 +08:00
digua
96235915b8
fix(export): generate importable ChatLab JSON
2026-07-12 21:27:39 +08:00
digua
e1288c3cc7
fix(insight): invalidate snapshots on session deletion
...
Remove persisted annual summary snapshots whenever a session is deleted through shared or desktop cleanup paths. Drop cached in-memory snapshots when their backing files disappear so stale responses cannot expose deleted session data.
2026-07-12 15:29:09 +08:00
digua
b15f38c4a5
fix(insight): address annual summary review findings
2026-07-12 15:29:09 +08:00
digua
1713e0d577
fix(insight): remove session facts on deletion
2026-07-12 15:29:09 +08:00
digua
f198b41bdb
feat(settings): manage session owner identities
2026-07-12 15:29:09 +08:00
digua
abf4a015cc
style(sidebar): reduce brand title size
2026-07-12 15:29:09 +08:00
digua
85a447b9af
feat(insight): refine annual activity overview
2026-07-12 15:29:09 +08:00
digua
02e5807ec3
refactor(navigation): rename session insight tab to analysis
2026-07-12 15:29:09 +08:00
digua
afbd27a477
feat(insight): add annual summary interface
2026-07-12 15:29:09 +08:00
digua
38206716b7
feat(insight): add top-level insight navigation
2026-07-12 15:29:09 +08:00
digua
618af4b5b9
feat(api): expose global insight endpoint
2026-07-12 15:29:09 +08:00
digua
d7692b5bfc
feat(runtime): add global insight service and worker
2026-07-12 15:29:09 +08:00
digua
81be26b68e
feat(runtime): add global insight cache pipeline
2026-07-12 15:29:09 +08:00
digua
a85e9897a9
feat(core): add global insight queries and contracts
2026-07-12 15:29:09 +08:00
digua
740c410d7b
refactor(core): centralize contact identity resolution
2026-07-12 15:29:09 +08:00
digua
84f033efe4
refactor(debug): mount quick tools globally
2026-07-12 11:05:23 +08:00
digua
558426cc06
style(filter): refine time mode selector
2026-07-12 11:05:23 +08:00
digua
f99222bd79
style(navigation): align sidebar and tab states
2026-07-12 11:05:23 +08:00
digua
ea941e3083
style(ui): refine sidebar and input surfaces
2026-07-12 09:19:50 +08:00
digua
ddae10c617
style(analysis): compact session time filters
2026-07-12 01:44:52 +08:00
digua
3e3f099ff5
style(settings): unify automation section tabs
2026-07-12 01:44:52 +08:00
digua
8f1f9a56ac
style(debug): unify lab workspace card surfaces
2026-07-12 01:44:52 +08:00
digua
12c7fc2105
refactor(navigation): separate page section and compact tabs
2026-07-12 01:44:52 +08:00
digua
7120d56851
style(ai): refine conversation sidebar layout
2026-07-12 01:44:52 +08:00
digua
1b6bf8f3f5
refactor(charts): share expandable list card
2026-07-12 01:44:52 +08:00
digua
bc3a48f877
refactor(ui): share report card composition
2026-07-12 01:44:52 +08:00
digua
a2bebab9d6
refactor(ui): centralize card clipping
2026-07-12 01:44:52 +08:00
digua
8486955b79
refactor(navigation): simplify primary page tabs
2026-07-12 01:44:52 +08:00
digua
6d9fcb97a6
refactor(ui): unify navigation and card surfaces
2026-07-12 01:44:52 +08:00
digua
2aeb912dec
test(ai): type legacy auth profile fixtures
2026-07-12 01:22:43 +08:00
digua
9d1bb191fb
perf(settings): virtualize data management sessions
2026-07-12 01:00:50 +08:00
digua
f6a861c128
fix(parser): parse dotted WhatsApp AM/PM markers
2026-07-11 11:09:29 +08:00
digua
fba575660d
release: v0.30.2
2026-07-10 20:26:40 +08:00
digua
e00c9a4503
fix(release): package Windows sqlite binding
2026-07-10 20:25:53 +08:00
digua
a50c263232
test(release): verify packaged sqlite runtime
2026-07-10 20:25:53 +08:00
digua
6283281bd8
fix(desktop): resolve packaged sqlite binding
2026-07-10 20:25:53 +08:00
digua and Cursor
39530e2f76
ci(release): use v-prefixed tag in GitHub release titles
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 16:04:24 +08:00
digua and Cursor
36a221e644
fix(cli): pin prebuild-install runtime to system Node
...
An ambient npm_config_runtime=electron (common in Electron dev shells
and CI) makes bare prebuild-install "succeed" with an Electron-ABI
binding, bypassing the source-build fallbacks and leaving the CLI
unable to start. Pin -r node -t to the current system Node instead.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 15:51:19 +08:00