Commit Graph
1245 Commits
Author SHA1 Message Date
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
hh7418695 1dabcf4dfd fix(parser): support bracketed WhatsApp TXT timestamps 2026-07-11 10:51:30 +08:00
digua fba575660d release: v0.30.2 v0.30.2 2026-07-10 20:26:40 +08:00
axzhang1216 6f051813e3 fix(web): parse markdown responses as text in WebPlatformAdapter.fetchRemoteConfig
Importing a skill from the cloud market failed with
'SyntaxError: No number after minus sign in JSON at position 1 (line 1 column 2)'
because the WebPlatformAdapter hard-coded res.json() for every response, while
the same IPC handler on Electron already routes by Content-Type / .json suffix
(see apps/desktop/main/ipc/window.ts: '支持 JSON 和纯文本/Markdown').

The Electron path handled skill bodies (.md) correctly; the Web path only
worked for the catalog (skill.json). Aligning the Web adapter with the same
Content-Type / .json-suffix rule fixes both fetchCloudCatalog and
importFromCloud at once, with no new abstraction.
2026-07-10 20:25:54 +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
diguaandCursor 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
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