Commit Graph
37 Commits
Author SHA1 Message Date
digua c2382b77f2 build(cli): target skill validators for Node 22 2026-08-18 17:27:48 +08:00
digua 47299a94cb feat(cli): make clb web the primary web command 2026-08-12 12:47:00 +08:00
digua 5e7e88fc84 fix(startup): benchmark full presentation samples
Create the CDP target on a blank page and reset the session playback marker before retained samples so warmups cannot turn splash timing into reload timing.
2026-08-08 21:47:47 +08:00
digua 967bfe1084 feat(startup): use splash animation as preload window 2026-08-08 21:47:47 +08:00
digua 5e8d1caf30 perf(sessions): reuse validated overview cache on startup 2026-08-08 21:47:47 +08:00
digua 3b123b15f2 perf(startup): progressively initialize renderer shell 2026-08-08 21:47:47 +08:00
digua 3e080d21c4 perf(import): avoid loading existing messages for dedup 2026-08-03 18:45:00 +08:00
digua 883fa0896d docs(search): record FTS removal benchmarks 2026-08-03 17:28:19 +08:00
digua 2bb5eb3715 test(apps): strengthen application and build verification 2026-08-01 16:41:30 +08:00
digua 982f37ced6 chore(import): remove obsolete streaming benchmark
Remove the one-off synthetic streaming import benchmark and its script-only tests now that the performance investigation and results have been finalized.
2026-07-31 20:22:50 +08:00
digua 62b7104f1f feat(import): add safe batch coordinator 2026-07-31 20:22:50 +08:00
digua bd7c838c3f fix(import): make performance baselines trustworthy
Run benchmarks in isolated GC-enabled workers, report sparse RSS samples accurately, and hash canonical imported output. Require the Rust Native WeFlow kernel and reject any measured import that falls back to TypeScript so timing and memory baselines remain comparable.
2026-07-31 16:37:40 +08:00
digua bbbd0bb3c6 perf(import): establish end-to-end import baseline 2026-07-31 16:37:40 +08:00
digua 5d943ab0b3 feat(parser): add shuakami/qq-chat-exporter native parser 2026-07-30 21:01:20 +08:00
digua 73c6de364e chore(web): add Web WASM development workflow 2026-07-20 17:24:55 +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 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 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 c0548f63c8 feat(import): prepare native parser rollout 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 25b658e981 chore(tests): clarify runtime and regression rules 2026-06-27 15:54:08 +08:00
digua 8f9433bf62 chore(i18n): prune unused locale keys 2026-06-21 16:18:39 +08:00
diguaandClaude Sonnet 4.6 5d40db0fc3 chore: remove dev:app script and frontend-only dev selector
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 19:31:14 +08:00
diguaandClaude Sonnet 4.6 f5e83748ff fix(ai): register execute_sql tool in Electron tool registry
sqlQueryTool (execute_sql) was listed in BUILTIN_TOOL_CATALOG and
available in the CLI AGENT_TOOL_REGISTRY, but was never imported or
registered in the Electron-specific TOOL_REGISTRY. Users who enabled
the tool via the assistant config panel would trigger a missing-tool
error at inference time.

Add sqlQueryTool to the Electron registry following the same
adaptSharedTool pattern used by all other analysis tools. Add a
catalog/registry drift guard test (name + category) covering all
BUILTIN_TOOL_CATALOG entries, enabled via
--experimental-test-module-mocks to mock Electron runtime deps.
Document the general-over-specific assertion rule in AGENTS.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 00:15:25 +08:00
digua 2d88215d63 test: add default test runner 2026-06-08 10:14:42 +08:00
digua 953471a514 fix(dev): clean up web backend lifecycle 2026-06-05 11:12:42 +08:00
CEQ151 15470444e5 feat(ai): improve chart runtime UX 2026-06-05 11:12:42 +08:00
digua a780517539 docs: add contributor development guide 2026-06-04 14:37:12 +08:00
diguaandClaude Opus 4.8 f09d40f436 feat(changelog): generate per-language markdown from JSON
Add scripts/changelog-to-markdown.mjs that renders changelogs/{cn,en,tw,ja}.json
into readable Markdown files. Runs idempotently; output passes Prettier without
changes.

Wire the script into the sync-changelog skill (step 4, before the release commit)
and update commit_release_changelogs.sh to include the four .md files in the
release: v<version> commit, with a preflight guard that errors if the md files
are missing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 00:46:34 +08:00
digua 3a8f61fdf0 fix(cli): start web dev backend with start command 2026-05-30 14:19:42 +08:00
digua e3370b52c2 fix(web): align dev server node runtime 2026-05-22 10:20:39 +08:00
digua 78e41a65b5 refactor: migrate CLI from packages/server to apps/cli
Move the CLI application from packages/server/ to apps/cli/ to align
with the monorepo convention (apps/ for deployable applications,
packages/ for shared libraries). Rename package to @openchatlab/chatlab.

Also fix a bug in ensureToken() that used raw string manipulation to
write config.toml, causing duplicate token fields that corrupted the
TOML file. This led to config parse failures and user_data_dir being
overwritten with defaults. Now uses writeConfigField() for safe writes.
2026-05-19 21:33:00 +08:00
digua 2bcbb84711 feat: add interactive dev mode selector (pnpm dev)
Adds a zero-dependency Node.js script with arrow-key selection
for choosing between Desktop (Electron), Web (CLI serve + frontend),
Server Only (API backend), and Frontend-only dev modes.

Remembers last selection in node_modules/.cache/dev-mode.
2026-05-19 00:35:00 +08:00
digua e5dc1fcb9b fix(dev): tsx watch not detecting workspace package changes
tsx watch's symlink-based file watching doesn't trigger on changes to
pnpm workspace packages (tsx#221). Add --include flags for packages/core
and packages/node-runtime source directories to both dev:serve script
and vite.web.config.mts auto-serve plugin. Extract long command to
scripts/dev-serve.sh for cleaner package.json.
2026-05-18 22:43:00 +08:00