claude-mem-lite 2.9.5 → 2.9.7
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +3 -3
- package/README.zh-CN.md +3 -3
- package/hook-update.mjs +8 -3
- package/install.mjs +109 -1901
- package/package.json +1 -1
- package/schema.mjs +3 -2
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
|
|
464
|
+
tests/ # Unit, property, integration, contract, E2E, pipeline tests
|
|
465
465
|
benchmark/ # BM25 search quality benchmarks + CI gate
|
|
466
466
|
```
|
|
467
467
|
|
|
@@ -483,9 +483,9 @@ 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
|
|
486
|
+
npm test # Run full test suite (vitest)
|
|
487
487
|
npm run test:smoke # Run 5 core smoke tests
|
|
488
|
-
npm run test:coverage # Run tests with V8 coverage (≥
|
|
488
|
+
npm run test:coverage # Run tests with V8 coverage (≥75% lines/functions, ≥65% branches)
|
|
489
489
|
npm run benchmark # Run full search quality benchmark
|
|
490
490
|
npm run benchmark:gate # CI gate: fails if metrics regress beyond 5% tolerance
|
|
491
491
|
```
|
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
|
|
464
|
+
tests/ # 单元、属性、集成、契约、E2E、管线测试
|
|
465
465
|
benchmark/ # BM25 搜索质量基准 + CI 门控
|
|
466
466
|
```
|
|
467
467
|
|
|
@@ -483,9 +483,9 @@ claude-mem-lite/
|
|
|
483
483
|
|
|
484
484
|
```bash
|
|
485
485
|
npm run lint # ESLint 静态分析
|
|
486
|
-
npm test #
|
|
486
|
+
npm test # 运行完整测试套件(vitest)
|
|
487
487
|
npm run test:smoke # 运行 5 个核心冒烟测试
|
|
488
|
-
npm run test:coverage # 运行测试并生成 V8 覆盖率(≥
|
|
488
|
+
npm run test:coverage # 运行测试并生成 V8 覆盖率(≥75% 行/函数,≥65% 分支)
|
|
489
489
|
npm run benchmark # 运行完整搜索质量基准测试
|
|
490
490
|
npm run benchmark:gate # CI 门控:指标回退超过 5% 容差时失败
|
|
491
491
|
```
|
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';
|
|
@@ -83,10 +83,15 @@ export async function checkForUpdate(options = {}) {
|
|
|
83
83
|
latestVersion: latest.version,
|
|
84
84
|
updateAvailable: false,
|
|
85
85
|
rateLimited: false,
|
|
86
|
+
lastError: null,
|
|
86
87
|
});
|
|
87
88
|
return null;
|
|
88
89
|
} catch (err) {
|
|
89
90
|
debugCatch(err, 'checkForUpdate');
|
|
91
|
+
try {
|
|
92
|
+
const s = readState();
|
|
93
|
+
saveState({ ...s, lastCheck: new Date().toISOString(), lastError: err.message });
|
|
94
|
+
} catch {}
|
|
90
95
|
return null;
|
|
91
96
|
}
|
|
92
97
|
}
|
|
@@ -195,7 +200,7 @@ const SOURCE_FILES = [
|
|
|
195
200
|
'registry.mjs', 'registry-scanner.mjs', 'registry-indexer.mjs',
|
|
196
201
|
'registry-retriever.mjs', 'resource-discovery.mjs',
|
|
197
202
|
'dispatch.mjs', 'dispatch-inject.mjs', 'dispatch-feedback.mjs', 'dispatch-patterns.mjs', 'dispatch-workflow.mjs',
|
|
198
|
-
'install.mjs',
|
|
203
|
+
'install.mjs', 'install-metadata.mjs',
|
|
199
204
|
];
|
|
200
205
|
const SWITCHABLE_PATHS = [...SOURCE_FILES, 'scripts', 'registry', 'node_modules'];
|
|
201
206
|
|
|
@@ -317,7 +322,7 @@ function copyReleaseIntoStaging(sourceDir, stagingDir) {
|
|
|
317
322
|
const stagedScripts = join(stagingDir, 'scripts');
|
|
318
323
|
if (existsSync(stagedScripts)) {
|
|
319
324
|
for (const sf of readdirSync(stagedScripts).filter(n => n.endsWith('.sh'))) {
|
|
320
|
-
try {
|
|
325
|
+
try { execFileSync('chmod', ['+x', join(stagedScripts, sf)], { stdio: 'pipe' }); } catch {}
|
|
321
326
|
}
|
|
322
327
|
}
|
|
323
328
|
|