claude-mem-lite 6.8.0 → 6.8.1

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.
@@ -9,7 +9,7 @@
9
9
  "plugins": [
10
10
  {
11
11
  "name": "claude-mem-lite",
12
- "version": "6.8.0",
12
+ "version": "6.8.1",
13
13
  "source": "./",
14
14
  "homepage": "https://github.com/sdsrss/claude-mem-lite",
15
15
  "description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark)."
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "6.8.0",
3
+ "version": "6.8.1",
4
4
  "description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark).",
5
5
  "author": {
6
6
  "name": "sdsrss"
package/README.md CHANGED
@@ -248,9 +248,16 @@ table being completely empty, which one ordinary `mem_save` falsifies forever. I
248
248
  once per database, keyed on its own marker, and retries on a later open if it fails. A store
249
249
  that never ran `import-jsonl` matches no rows and pays nothing.
250
250
 
251
- Those rows become reachable through `recall` / `mem_recall` and the prompt-submit path. They
252
- do **not** become reachable through the pre-tool recall hook, which admits only
253
- `importance >= 2` and every imported row carries `1`.
251
+ Those rows become reachable through `recall` / `mem_recall` and the prompt-submit path. Two
252
+ limits, both measured:
253
+
254
+ - Not through the pre-tool recall hook, which admits only `importance >= 2` while every
255
+ imported row carries `1`.
256
+ - Not for `NotebookEdit` rows imported before 6.7.2. Those were stored with an empty
257
+ modified-files list, because the importer of the day read `file_path` and `NotebookEdit`
258
+ sets `notebook_path` instead — so the backfill, which selects on that column being
259
+ non-empty, passes over them. Re-importing the transcript is what recovers those, and 6.7.2
260
+ made that work by putting the path into the title the dedup key is built from.
254
261
 
255
262
  *`doctor --json` changes shape.* Checks that print a repair command now carry it in a
256
263
  `details` array — previously the human screen got the command and the JSON got only the
package/README.zh-CN.md CHANGED
@@ -208,8 +208,13 @@ rm -rf ~/claude-mem-lite/ # v0.5 前的非隐藏目录(如未自动迁移)
208
208
  「这张表完全为空」——任何一次正常的 `mem_save` 都会让它永久为假。现在它按自己的标记每个库跑
209
209
  一次,失败则下次开库重试。从没跑过 `import-jsonl` 的库匹配不到任何行,代价为零。
210
210
 
211
- 这些行会经 `recall` / `mem_recall` 和 UserPromptSubmit 这条路变得可达;**不会**经 pre-tool
212
- 召回钩子变得可达——那条腿只收 `importance >= 2`,而导入的行一律是 `1`。
211
+ 这些行会经 `recall` / `mem_recall` 和 UserPromptSubmit 这条路变得可达。两个边界,都是实测的:
212
+
213
+ - **不会**经 pre-tool 召回钩子变得可达——那条腿只收 `importance >= 2`,而导入的行一律是 `1`。
214
+ - **不覆盖 6.7.2 之前导入的 `NotebookEdit` 行**。它们当时存下来的「修改过的文件」列表是空的
215
+ (那时的导入器读 `file_path`,而 `NotebookEdit` 给的是 `notebook_path`),而回填按该列非空
216
+ 筛选,于是跳过它们。这一部分要靠重新导入该 transcript 来恢复——6.7.2 把路径写进了去重键所用的
217
+ 标题,重导才开始有效。
213
218
 
214
219
  *`doctor --json` 的输出形状变了。* 带修复命令的检查项现在把命令放在 `details` 数组里——此前
215
220
  人类界面拿到命令、JSON 界面只拿到诊断。另外四个检查项(dev drift、managed files、hook 脚本的
@@ -48,9 +48,11 @@ const TOOL_TO_TYPE = {
48
48
  * This returns the RAW title and both sites scrub it through `scrubRecord` exactly once.
49
49
  * The first cut scrubbed HERE, which left the storage side scrubbed twice (`scrubRecord`
50
50
  * scrubs `title` again) against the preview's once — equal only while `scrubSecrets` is
51
- * idempotent, which is an assumption about the pattern table, not a property anything
52
- * enforces. Pre-ship review named the asymmetry; one scrub per side removes the assumption
53
- * rather than betting on it.
51
+ * idempotent. It is NOT: `Bash: deploy --token ghp_… secret: v` imported three rows for
52
+ * three runs of one transcript, and `AccountKey=https://a:b@h` drifts through a second
53
+ * arm. `tests/property.test.mjs` claimed to enforce idempotence and was vacuous — its
54
+ * generator produced nothing the scrubber touches. One scrub per side removes the
55
+ * dependency instead of waiting for the pattern table to be reordered (D#46).
54
56
  */
55
57
  function importedObsTitle(toolUse) {
56
58
  const detail = toolUse?.input?.command || toolEditPath(toolUse?.input) || '';
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "6.8.0",
3
+ "version": "6.8.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "claude-mem-lite",
9
- "version": "6.8.0",
9
+ "version": "6.8.1",
10
10
  "os": [
11
11
  "darwin",
12
12
  "linux",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "6.8.0",
3
+ "version": "6.8.1",
4
4
  "description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark).",
5
5
  "type": "module",
6
6
  "packageManager": "npm@10.9.2",