claude-mem-lite 2.9.4 → 2.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@
10
10
  "plugins": [
11
11
  {
12
12
  "name": "claude-mem-lite",
13
- "version": "2.9.4",
13
+ "version": "2.9.6",
14
14
  "source": "./",
15
15
  "description": "Lightweight persistent memory system for Claude Code — FTS5 search, episode batching, error-triggered recall"
16
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "2.9.4",
3
+ "version": "2.9.6",
4
4
  "description": "Lightweight persistent memory system for Claude Code — FTS5 search, episode batching, error-triggered recall",
5
5
  "author": {
6
6
  "name": "sdsrss"
package/.mcp.json CHANGED
@@ -1,3 +1,10 @@
1
1
  {
2
- "mcpServers": {}
2
+ "mcpServers": {
3
+ "mem": {
4
+ "command": "node",
5
+ "args": [
6
+ "${CLAUDE_PLUGIN_ROOT}/scripts/launch.mjs"
7
+ ]
8
+ }
9
+ }
3
10
  }
package/README.md CHANGED
@@ -461,7 +461,7 @@ claude-mem-lite/
461
461
  convert-commands.mjs # Converts command .md → SKILL.md in managed plugins
462
462
  index-managed.mjs # Offline indexer for managed resources
463
463
  # Test & benchmark (dev only)
464
- tests/ # Unit, property, integration, contract, E2E, pipeline tests (789 tests)
464
+ tests/ # Unit, property, integration, contract, E2E, pipeline tests
465
465
  benchmark/ # BM25 search quality benchmarks + CI gate
466
466
  ```
467
467
 
@@ -483,7 +483,7 @@ The benchmark suite runs as a CI gate (`npm run benchmark:gate`) to prevent sear
483
483
 
484
484
  ```bash
485
485
  npm run lint # ESLint static analysis
486
- npm test # Run all 789 tests (vitest)
486
+ npm test # Run full test suite (vitest)
487
487
  npm run test:smoke # Run 5 core smoke tests
488
488
  npm run test:coverage # Run tests with V8 coverage (≥70% lines/functions, ≥60% branches)
489
489
  npm run benchmark # Run full search quality benchmark
package/README.zh-CN.md CHANGED
@@ -461,7 +461,7 @@ claude-mem-lite/
461
461
  convert-commands.mjs # 将 command .md 转换为托管插件中的 SKILL.md
462
462
  index-managed.mjs # 托管资源离线索引器
463
463
  # 测试和基准(仅开发)
464
- tests/ # 单元、属性、集成、契约、E2E、管线测试(789 个)
464
+ tests/ # 单元、属性、集成、契约、E2E、管线测试
465
465
  benchmark/ # BM25 搜索质量基准 + CI 门控
466
466
  ```
467
467
 
@@ -483,7 +483,7 @@ claude-mem-lite/
483
483
 
484
484
  ```bash
485
485
  npm run lint # ESLint 静态分析
486
- npm test # 运行全部 789 个测试(vitest)
486
+ npm test # 运行完整测试套件(vitest)
487
487
  npm run test:smoke # 运行 5 个核心冒烟测试
488
488
  npm run test:coverage # 运行测试并生成 V8 覆盖率(≥70% 行/函数,≥60% 分支)
489
489
  npm run benchmark # 运行完整搜索质量基准测试
package/hook-update.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  // Checks for new versions on SessionStart, downloads and installs automatically.
3
3
  // Skips in dev mode (symlinked installs). Silent on network failure.
4
4
 
5
- import { execSync } from 'node:child_process';
5
+ import { execSync, execFileSync } from 'node:child_process';
6
6
  import { readFileSync, writeFileSync, copyFileSync, readdirSync, existsSync, lstatSync, mkdirSync, rmSync, renameSync } from 'node:fs';
7
7
  import { join, dirname } from 'node:path';
8
8
  import { tmpdir } from 'node:os';
@@ -195,7 +195,7 @@ const SOURCE_FILES = [
195
195
  'registry.mjs', 'registry-scanner.mjs', 'registry-indexer.mjs',
196
196
  'registry-retriever.mjs', 'resource-discovery.mjs',
197
197
  'dispatch.mjs', 'dispatch-inject.mjs', 'dispatch-feedback.mjs', 'dispatch-patterns.mjs', 'dispatch-workflow.mjs',
198
- 'install.mjs',
198
+ 'install.mjs', 'install-metadata.mjs',
199
199
  ];
200
200
  const SWITCHABLE_PATHS = [...SOURCE_FILES, 'scripts', 'registry', 'node_modules'];
201
201
 
@@ -317,7 +317,7 @@ function copyReleaseIntoStaging(sourceDir, stagingDir) {
317
317
  const stagedScripts = join(stagingDir, 'scripts');
318
318
  if (existsSync(stagedScripts)) {
319
319
  for (const sf of readdirSync(stagedScripts).filter(n => n.endsWith('.sh'))) {
320
- try { execSync(`chmod +x "${join(stagedScripts, sf)}"`, { stdio: 'pipe' }); } catch {}
320
+ try { execFileSync('chmod', ['+x', join(stagedScripts, sf)], { stdio: 'pipe' }); } catch {}
321
321
  }
322
322
  }
323
323