Commit Graph
43 Commits
Author SHA1 Message Date
digua 39afeffbcd release: v0.36.1 2026-08-18 17:54:36 +08:00
digua cf1aee9e5b refactor(ai): upgrade pi runtime and define execution semantics 2026-08-18 17:27:48 +08:00
digua bcaa19c27b release: v0.36.0 2026-08-11 14:18:26 +08:00
digua b12018b916 release: v0.35.0 2026-08-09 12:01:23 +08:00
digua b130e43e73 release: v0.34.3 2026-08-06 14:29:39 +08:00
digua 034f0b768f release: v0.34.2 2026-08-01 17:09:49 +08:00
digua 2bb5eb3715 test(apps): strengthen application and build verification 2026-08-01 16:41:30 +08:00
digua 93fc26fb83 fix(cli): avoid installing local embedding runtime 2026-08-01 13:19:41 +08:00
kelaocai d48745f00b fix(cli): declare sqlite-vec and @huggingface/transformers as runtime dependencies
The CLI tsup build inlines @openchatlab/node-runtime into dist chunks.
Both sqlite-vec and @huggingface/transformers load platform-specific
native packages at runtime (sqlite-vec-linux-arm64, onnxruntime-node,
sharp), so inlining them breaks global/npm and Docker installs of
chatlab-cli: the bundled chunks reference native packages that were
never installed, and configuring the semantic index vector model fails
with HTTP 500 (Cannot find package 'sqlite-vec-linux-arm64').

Declare both packages as chatlab-cli dependencies and mark them as tsup
external so they are installed from npm with their native bindings,
matching how better-sqlite3 and @node-rs/jieba are already handled.
2026-08-01 11:33:41 +08:00
digua db60339829 release: v0.34.1 2026-07-27 23:57:06 +08:00
digua d0a9a03f7c release: v0.34.0 2026-07-23 22:20:46 +08:00
digua 179b8c12c2 release: v0.33.0 2026-07-22 10:14:31 +08:00
digua 73c6de364e chore(web): add Web WASM development workflow 2026-07-20 17:24:55 +08:00
digua dd6765baf3 release: v0.32.0 2026-07-18 17:44:15 +08:00
digua 32bd268af4 release: v0.31.3 2026-07-17 11:17:22 +08:00
digua 35c696b1a4 release: v0.31.2 2026-07-16 11:30:01 +08:00
digua 61cfc0a51e release: v0.31.1 2026-07-15 20:32:19 +08:00
digua a5e11d2fc8 release: v0.31.0 2026-07-13 10:17:25 +08:00
digua fba575660d release: v0.30.2 2026-07-10 20:26:40 +08:00
digua bbf89332b2 release: v0.30.0 2026-07-05 01:41:21 +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 57d6450430 release: v0.29.0 2026-07-01 01:27:49 +08:00
digua f74aae1bb4 release: v0.28.1 2026-06-26 10:07:20 +08:00
digua a2158cccc4 release: v0.28.0 2026-06-25 00:12:53 +08:00
digua 46fb1cd4ca release: v0.27.2 2026-06-24 00:02:01 +08:00
digua 5bb01966fa release: v0.27.1 2026-06-23 14:39:53 +08:00
digua 307b0380bd release: v0.27.0 2026-06-22 13:56:43 +08:00
digua fd55e85d05 release: v0.26.3 2026-06-15 10:14:09 +08:00
diguaandClaude Sonnet 4.6 c80ee8b8ec fix(cli): sync cli package version with product version to stop false update notice
In CLI Web mode, the frontend displays __APP_VERSION__ injected from the
root package.json at build time (0.26.2), while the server-side getVersion()
reads apps/cli/package.json at runtime (stuck at 0.25.1). This caused
buildWebUpdateCheckResult to compare remote 0.26.2 against local 0.25.1,
permanently reporting a false update notice even when the user was already
on the latest version.

Fix apps/cli/package.json to 0.26.2 to align with the product version.

Also extend set_release_version.sh to keep apps/cli/package.json in sync
with the root package.json on every release, preventing the drift from
recurring. apps/desktop/package.json is intentionally kept at 0.0.0 (the
desktop runtime uses app.getVersion() with __APP_VERSION__ fallback).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 16:24:53 +08:00
diguaandClaude Sonnet 4.6 1c7781d85b fix: establish runtime identity for data directory gates
Use the packaged app version (not Electron's dev-mode 0.0.0) across all
compatibility checks. Make DatabaseManager require a RuntimeIdentity so
every gate write carries a verified version and kind.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 10:14:42 +08:00
diguaandCursor a8f0d5cb88 refactor: extract shared HTTP routes into @openchatlab/http-routes package
Migrate 30+ endpoints from apps/cli/src/http/ to packages/http-routes/
with a platform-agnostic HttpRouteContext DI interface, enabling future
reuse by Electron Internal Server.

Batch 1: auth, errors, context, sessions, members, preferences
Batch 2: analytics, sql, session-index, export, nlp
Batch 3: REST system, REST sessions

Includes 7 smoke tests via Fastify inject covering /api/v1/* and /_web/*
route groups.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 15:41:21 +08:00
diguaandClaude Sonnet 4.6 c1e317a38a feat(cli): add clb as a short alias for the chatlab command
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:56:08 +08:00
diguaandCursor 6c3d36e7df feat(ai): upgrade pi-ai from @mariozechner 0.54 to @earendil-works 0.74
- Replace @mariozechner/pi-ai and pi-agent-core with @earendil-works scope
- Adapt to AgentTool.execute() params type change (Record → unknown)
- Migrate Agent constructor to use initialState for systemPrompt/tools/messages
- Update onPayload callback signature to include model parameter
- Filter finalMessages with isPiMessage() for new AgentMessage union type
- Use state.errorMessage instead of deprecated state.error

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 23:19:47 +08:00
digua 795d10d8c9 feat(changelog): add icon and i18n for ci change type 2026-05-23 16:28:50 +08:00
digua 56902fea1c ci(release): publish CLI package from release workflow 2026-05-21 21:59:10 +08:00
digua 04427a98d8 chore(cli): prepare npm release docs 2026-05-22 10:20:39 +08:00
digua 6fa92bc2e4 chore(mcp): prepare npm publish 2026-05-22 10:20:39 +08:00
diguaandCursor d022bed48f refactor(mcp): extract MCP core into shared chatlab-mcp package
Move MCP Server logic (tool registration, resource registration, schema
conversion) from apps/cli/src/mcp.ts to packages/mcp-server so both CLI
and Desktop can share the same MCP implementation.

- New package: chatlab-mcp (packages/mcp-server) with McpDatabaseManager
  interface abstraction
- CLI mcp.ts slimmed to thin entry (~37 lines) calling startMcpServer()
- Desktop helper prototype at apps/desktop/helper/mcp.ts for dev-time
  MCP without GUI
- All 8 MCP tools and 3 resources unchanged

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 10:20:39 +08:00
digua 0aa30359ab fix(cli): resolve ESM module resolution for tsx dev mode
- Remove "type": "module" from apps/cli/package.json to avoid
  ESM/CJS interop issues with workspace packages in tsx dev mode
- Configure tsup to output .mjs files (always treated as ESM by Node.js)
- Rename bin entry from chatlab.js to chatlab.mjs
- Change chatlab web default port to 3100 (serve keeps 3110)
- Fix vite plugin: use pnpm instead of npx for tsx invocation
2026-05-19 22:13:00 +08:00
digua 09d4b1ddac feat(cli): add chatlab web command for one-click Web UI launch
- New `chatlab web` subcommand: starts HTTP API + serves Web SPA + auto-opens browser
- Options: --port, --host, --no-open
- Cross-platform `openBrowser()` using open/start/xdg-open
- Add `setWebMode()` in auth: static resources bypass token auth in web mode
- Add `build:full` and `prepare:web` scripts for dist-web preparation
2026-05-19 21:53:00 +08:00
digua b1427e2422 feat(cli): add tsup build pipeline for npm publishing
- Rename package to `chatlab-cli`, version 0.1.0
- Add tsup config with ESM output, bundle @openchatlab/* + stream-json
- Update bin/chatlab.js from stub to actual entry point
- Unify version reading via src/version.ts (CLI/MCP/HTTP API)
- Add publishing fields: type, files, engines, publishConfig, keywords
- Move @openchatlab/* to devDependencies (bundled into dist/)
- Add better-sqlite3 to dependencies, @node-rs/jieba to optionalDependencies
- Fix --web default path for bundled dist/ directory structure
2026-05-19 21:46:00 +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