Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
56de090
docs(contributing): build chatlab-mcp before running pnpm test
Zycheng114514 Sep 8, 2026
f750b4d
feat(electron): add UI scale setting
Zycheng114514 Sep 8, 2026
eb2488f
feat(tools): localize tool descriptions by locale for every runtime
Zycheng114514 Sep 8, 2026
a0065b1
feat(search): add message search benchmark script
Zycheng114514 Sep 8, 2026
e366771
feat(search): differentiate any/all queries in the search benchmark
Zycheng114514 Sep 8, 2026
6bae810
feat(search): add FTS5 trigram index for message content
Zycheng114514 Sep 8, 2026
919b033
feat(search): route keyword search through the FTS5 index
Zycheng114514 Sep 8, 2026
bb864f4
feat(search): build the message search index on Node import and migra…
Zycheng114514 Sep 8, 2026
a662cfa
feat(search): create the message search index in the browser runtime
Zycheng114514 Sep 8, 2026
c3d399c
feat(search): rank AI search hits by relevance and split deep search off
Zycheng114514 Sep 8, 2026
22b2ddd
test(search): cover the v11 migration in the desktop migration list
Zycheng114514 Sep 8, 2026
a944206
test(search): assert the import benchmark backfills the search index
Zycheng114514 Sep 8, 2026
532cce9
docs(contributing): note that chatlab-mcp must be rebuilt after sourc…
Zycheng114514 Sep 8, 2026
a5fe5cf
fix(electron): reapply the current UI scale after renderer reloads
Zycheng114514 Sep 8, 2026
09aa99c
test(import): reproduce cross-source duplicates when appending to a s…
Zycheng114514 Sep 8, 2026
e5d9867
feat(import): carry a chosen import target through the backends
Zycheng114514 Sep 8, 2026
ba0a61f
feat(import): let users choose the import target session
Zycheng114514 Sep 8, 2026
6d6b09a
fix(import): dedupe cross-source messages when appending to a session
Zycheng114514 Sep 8, 2026
65b4b96
docs(standard): define the attachments field of the ChatLab format
Zycheng114514 Sep 8, 2026
d339ec7
feat(semantic-index): reuse existing vectors for identical embedding …
Zycheng114514 Sep 8, 2026
ba7757d
feat(semantic-index): carry the semantic index over to a merged session
Zycheng114514 Sep 8, 2026
531747c
feat(merge): hand the merged session to the semantic index
Zycheng114514 Sep 8, 2026
3ddbe0e
feat(core): add message_attachment table and meta.source_dir
Zycheng114514 Sep 8, 2026
2f04ba0
feat(parser): emit attachments for ChatLab, Telegram, Discord and Ins…
Zycheng114514 Sep 8, 2026
4378155
feat(records): show message attachments
Zycheng114514 Sep 8, 2026
740b92c
chore(parser-native): regenerate the wasm bindings with attachment re…
Zycheng114514 Sep 8, 2026
581ef1e
docs(standard): point the pull protocol's attachments at the format spec
Zycheng114514 Sep 8, 2026
67aeb8b
merge: integrate docs/test-prereq-mcp-build into round-1
Zycheng114514 Sep 8, 2026
22f8e36
merge: integrate feat/ui-scale into round-1
Zycheng114514 Sep 8, 2026
796f538
merge: integrate feat/tool-descriptions-i18n into round-1
Zycheng114514 Sep 8, 2026
4722bc1
merge: integrate feat/message-fts5 into round-1
Zycheng114514 Sep 8, 2026
1649244
merge: integrate feat/semantic-index-carryover into round-1
Zycheng114514 Sep 8, 2026
528df75
merge: integrate feat/import-target-choice into round-1
Zycheng114514 Sep 8, 2026
34675fe
merge: integrate feat/message-attachments into round-1
Zycheng114514 Sep 8, 2026
bb36af2
test(migrations): cover the v11 and v12 upgrade path on one v10 database
Zycheng114514 Sep 8, 2026
486037a
feat(parser): add Telegram parser benchmark script
Zycheng114514 Sep 8, 2026
d3cde6b
feat(parser-native): add Telegram kernel
Zycheng114514 Sep 8, 2026
1552ba9
feat(web): parse Telegram exports with the Rust WASM kernel
Zycheng114514 Sep 8, 2026
0e384a6
feat(parser): add Discord parser benchmark script
Zycheng114514 Sep 8, 2026
2ac7bf1
feat(parser-native): add Discord kernel
Zycheng114514 Sep 8, 2026
4235609
feat(parser-native): scan Telegram chats with the Rust kernel
Zycheng114514 Sep 8, 2026
402a02e
merge: integrate feat/native-telegram-discord into round-1
Zycheng114514 Sep 8, 2026
5873957
feat(transcription): add local whisper transcription service
Zycheng114514 Sep 8, 2026
0bc4533
feat(cli): add transcribe command
Zycheng114514 Sep 8, 2026
91694c5
feat(transcription): add transcription benchmark script
Zycheng114514 Sep 8, 2026
4a6de9c
feat(transcription): detect the session language and transcribe PCM b…
Zycheng114514 Sep 8, 2026
c777ec9
refactor(node-runtime): share the worker thread transport
Zycheng114514 Sep 8, 2026
9bcf369
feat(transcription): run whisper in a worker thread
Zycheng114514 Sep 9, 2026
7789595
feat(electron): add transcription IPC
Zycheng114514 Sep 9, 2026
b304370
feat(cli-web): add transcription routes
Zycheng114514 Sep 9, 2026
7dabd77
feat(transcription): add the renderer audio decoder and platform service
Zycheng114514 Sep 9, 2026
09ed636
feat(records): transcribe voice attachments from the session page
Zycheng114514 Sep 9, 2026
6876ae0
feat(settings): add transcription model and language settings
Zycheng114514 Sep 9, 2026
8ceaecc
fix(records): refresh the session however the transcription modal is …
Zycheng114514 Sep 9, 2026
85f73c8
merge: integrate feat/voice-transcription into round-1
Zycheng114514 Sep 9, 2026
a33137b
feat(transcription): normalize Chinese transcripts to the session's s…
Zycheng114514 Sep 9, 2026
eb9d079
feat(settings): choose the Chinese script for transcripts
Zycheng114514 Sep 9, 2026
51dad5f
merge: integrate feat/transcription-chinese-script into round-1
Zycheng114514 Sep 9, 2026
a91ecb7
fix(records): show the voice transcription tool in the header tools menu
Zycheng114514 Sep 9, 2026
8e59cb1
merge: integrate fix/transcription-header-entry into round-1
Zycheng114514 Sep 9, 2026
5c26933
refactor(records): decode voice attachments directly at 16 kHz
Zycheng114514 Sep 9, 2026
d121ed1
merge: integrate fix/transcription-decode-at-16k into round-1
Zycheng114514 Sep 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
docs(contributing): build chatlab-mcp before running pnpm test
apps/cli imports chatlab-mcp through the workspace dependency, so on a
fresh clone pnpm test fails with ERR_MODULE_NOT_FOUND in
runtime-compat-startup.test.ts until the package is built. CI already
runs the build step; document it for local runs in both language guides.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
  • Loading branch information
Zycheng114514 and claude committed Sep 8, 2026
commit 56de090b0f0f3423a48b72a7af995d50f68a47a3
1 change: 1 addition & 0 deletions docs/cn/contributing/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR=1
- 修复会影响用户数据、业务逻辑、异步任务、缓存状态、跨端共享 service、公开 API 契约、导入解析、去重逻辑、权限认证、AI 工具 allowlist、配置/API key 迁移或数据库 schema/迁移的行为 bug 时,必须优先补能失败的回归测试。
- 只改 UI 文案、i18n key/翻译、样式、类型声明、日志、注释、无行为变化的小重构,或修复低风险展示细节时,可以不新增测试,但仍需运行相关类型检查、lint 和 format;不要为了低价值页面文案或源码字符串扫描新增脆弱测试。
- 日常默认运行 `pnpm test`;需要优先验证相关文件时运行 `pnpm test -- path/to/file.test.ts`。
- 首次运行 `pnpm test` 前先执行 `pnpm --filter chatlab-mcp build`:`apps/cli` 通过 workspace 依赖导入 `chatlab-mcp` 的构建产物,未构建时相关测试会以 `ERR_MODULE_NOT_FOUND` 失败。CI 的测试工作流已包含这一步。
- `pnpm test` 默认只包含单元/集成测试,不应依赖真实 LLM、真实 Electron、真实浏览器、真实网络或长时间 E2E。
- 与单个业务模块强相关的单元测试就近放在被测文件同目录,命名为 `*.test.ts` 或 `*.test.js`。
- 跨模块、集成、E2E、测试工具或归属不明显的测试放在根目录 `tests/`。
Expand Down
1 change: 1 addition & 0 deletions docs/en/contributing/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ Compatibility-related changes should cover:
- After changing public docs, run `pnpm docs:build` or targeted formatting checks for the changed Markdown/config files.
- After changing shared cross-platform logic, confirm Electron and CLI Web entry points do not diverge in behavior.
- Daily default test command is `pnpm test`; to prioritize related tests, run `pnpm test -- path/to/file.test.ts`.
- Run `pnpm --filter chatlab-mcp build` before the first `pnpm test`: `apps/cli` imports the built output of `chatlab-mcp` through the workspace dependency, so the related tests fail with `ERR_MODULE_NOT_FOUND` until it is built. The CI test workflow already includes this step.
- `pnpm test` should include only unit/integration tests and must not depend on real LLMs, real Electron, real browsers, real network, or long-running E2E.
- Unit tests tightly coupled to one business module should live next to the tested file and use `*.test.ts` or `*.test.js`.
- Cross-module, integration, E2E, test utility, or unclear-ownership tests should live in the root `tests/` directory.
Expand Down