Commit Graph
1169 Commits
Author SHA1 Message Date
diguaandCursor 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
diguaandCursor 18946bb765 ci(release): fix Windows bash shadowing and mac x64 cross-build target
Prepending all of System32 to PATH made WSL bash.EXE shadow Git Bash,
breaking every later shell: bash step (first hit: dtolnay/rust-toolchain);
now only tar.exe is exposed. Passing --target after -- hid the triple
from napi, which then emitted a host-named darwin-arm64 artifact for the
x64 build; pass --target to napi directly instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 15:51:19 +08:00
diguaandCursor 9503fc18cb fix(cli): download official prebuilds when preparing better-sqlite3
prebuild-install was invoked with -r napi, but better-sqlite3 only
publishes per-ABI node/electron prebuilds, so the download branch always
failed and every run fell back to a ~1.5min node-gyp source build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 15:51:19 +08:00
diguaandCursor 74971c624a fix(semantic-index): only clamp sender names when over shared budget
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 15:11:51 +08:00
digua b2f20a15bd fix(semantic-index): harden embedding input guards 2026-07-10 15:11:51 +08:00
digua be60b3ccfb fix(router): avoid route preloading in development 2026-07-10 15:11:51 +08:00
digua dd40fc6502 feat(semantic-index): add local model download sources 2026-07-10 15:11:51 +08:00
digua ba2f09f56e fix(semantic-index): clamp oversized embedding inputs 2026-07-10 15:11:51 +08:00
digua 2b214b75df fix(storage): clarify managed data directory scope (resolve #241) 2026-07-07 17:08:51 +08:00
digua 0581b55deb fix(desktop): keep readonly database opens read-only
Avoid switching legacy DELETE-journal session databases to WAL from readonly validation paths. This prevents sync existence checks from treating valid databases as unreadable and deleting them.
2026-07-06 15:01:50 +08:00
digua 5f1a9bb34e fix(desktop): isolate better-sqlite3 electron binding 2026-07-06 15:01:50 +08:00
digua ac662d319d feat(contacts): relax relationship entry threshold 2026-07-05 22:51:39 +08:00
digua 9894329fd1 ci: avoid duplicate tests on dev branch pushes 2026-07-05 22:49:38 +08:00
digua 312a0306cb fix(parser-native): harden native parser test edge cases 2026-07-05 22:49:38 +08:00
digua c0548f63c8 feat(import): prepare native parser rollout 2026-07-05 22:49:38 +08:00
diguaandCursor c265925e3e fix(import): report accurate post-parse progress stages in real time
The UI stayed on "parsing messages" during the whole post-parse phase:
the importer emitted an 'importing' stage the frontend had no text for,
and on CLI Web the synchronous DB writes / index / FTS build starved the
event loop so buffered SSE progress events only arrived after the import
finished.

- Replace 'importing' with 'saving' (message writes) and a new 'indexing'
  stage (indexes / FTS / session index) in ParseProgress, with UI texts
  for all four locales.
- Yield a macrotask between native parser batches and before heavy
  synchronous steps so SSE progress events flush while importing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 22:49:38 +08:00
diguaandCursor f7150e2cff fix(nlp): stop rebuilding jieba instance on every call without custom dict
getJieba() invalidated its cache whenever no dict file existed on disk,
so users without a custom dict rebuilt a Jieba instance per tokenize call.
FTS indexing tokenizes every message, making imports seconds slower
(43MB sample: 9.2s -> 3.5s after the fix). Cache now only invalidates
when the on-disk dict state actually changes (added or removed).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 22:49:38 +08:00
diguaandCursor 1e7aefe08b feat(import): add Rust native parsing kernels for WeFlow and ChatLab JSON
Add @openchatlab/parser-native (napi-rs v3) with a shared byte-level JSON
scanner and two format kernels. Parsing large exports is 4-10x faster in
real-data benchmarks. The native module is an optional local build; the
pure-TS parsers remain as automatic fallback when it is unavailable,
disabled via CHATLAB_DISABLE_NATIVE_PERF=1, or rejects off-spec files.

The ChatLab kernel also parses the members array structurally, fixing the
TS head-regex heuristic that silently dropped avatars/roles for files with
nested arrays or long member lists.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 22:49:38 +08:00
digua bbf89332b2 release: v0.30.0 v0.30.0 2026-07-05 01:41:21 +08:00
Leo 51d38bc638 fix: bind overview card to selected time range 2026-07-04 15:51:26 +08:00
digua 73553c4c2c fix(query): clamp SQL rows and stabilize response stats
Clamp CLI SQL output after execution so user-provided LIMIT clauses cannot bypass the requested row cap. Add a deterministic message id tie-breaker for response-time statistics.
2026-07-04 15:12:50 +08:00
digua 8fd3f397e0 fix(query): hide context time filters
Remove time filter options from the message context command so agents do not pass unsupported bounds that would be silently ignored.
2026-07-04 15:12:50 +08:00
digua 6e5a0fa893 fix(query): dedupe expanded search tail
Avoid appending search hits that were already included as context when max message expansion limits only expand the first hits.
2026-07-04 15:12:50 +08:00
digua 801e7fc66a fix(cli): harden agent query safeguards
Tighten agent-facing query validation, privacy guards, SQL result handling, config writes, and LIKE search semantics for the CLI query workflow.
2026-07-04 15:12:50 +08:00
digua b33cbd065d docs(agent): add chatlab analyze skill 2026-07-04 15:12:50 +08:00
digua 98a92c73f1 docs(cli): add agent query usage guide 2026-07-04 15:12:50 +08:00
digua c4f5e06e5e feat(cli): add agent-facing query commands 2026-07-04 15:12:50 +08:00
digua fd97c55681 feat(query): extend shared chat query capabilities 2026-07-04 15:12:50 +08:00
digua 217e765305 feat(config): add CLI privacy gates 2026-07-04 15:12:50 +08:00
digua 32e0868f65 fix(records): clear member search text on reset 2026-07-02 10:35:02 +08:00
digua 89e96456bb fix(sync): reduce noisy pull failure logs 2026-07-02 10:35:02 +08:00
digua b346b51eee refactor(sync): share automation routes across runtimes 2026-07-02 10:35:02 +08:00
digua 70ada5031c fix(ai): share AI log opening route 2026-07-02 10:35:02 +08:00
digua b18181b514 refactor(chat): remove obsolete chat controls 2026-07-02 10:35:02 +08:00
digua da781bfdd9 fix(import): preserve avatars from streamed members (resolve #249) 2026-07-02 10:35:02 +08:00
digua 68987617dc fix(sql): restore SQL Lab CSV export (resolve #240) 2026-07-02 10:35:02 +08:00
digua 733cd0db95 feat(records): filter chat records by member 2026-07-02 10:35:02 +08:00
digua 3a4386b5f5 fix(records): improve messy chat content display 2026-07-02 10:35:02 +08:00
digua 57d6450430 release: v0.29.0 v0.29.0 2026-07-01 01:27:49 +08:00
digua 283d1e292b fix(relationships): keep galaxy detail panel dark 2026-07-01 01:11:19 +08:00
digua b71f18f8f0 refactor(relationships): clarify immersive galaxy framing 2026-07-01 01:06:36 +08:00
digua 33eab9b98c fix(relationships): polish galaxy node interactions 2026-07-01 01:06:36 +08:00
digua 0976818647 fix(relationships): refine 3d galaxy framing 2026-07-01 01:06:36 +08:00
digua 84223f26cb fix(relationships): polish galaxy privacy and canvas artifacts 2026-07-01 01:06:36 +08:00
digua 13fa375dbc fix(relationships): hide manual galaxy view switch 2026-07-01 01:06:36 +08:00
digua d54675cb3a fix(relationships): preserve orbit target with detail panel 2026-07-01 01:06:36 +08:00
digua de3494bc7f fix(relationships): reset selection when returning to panorama 2026-07-01 01:06:36 +08:00
digua a3510939d5 feat(relationships): enrich 3d galaxy colors 2026-07-01 01:06:36 +08:00
digua 97c5400f9e fix(relationships): rebuild 3d scene for selected node
Pass the active selectedKey into the 3D scene builder so focused relationship views use the selected-contact topology and layout. Add a regression check for the canvas scene wiring.
2026-06-30 22:02:44 +08:00
digua 9aeb3c56ab perf(sidebar): virtualize session list 2026-06-30 22:02:44 +08:00