claude-mem-lite 3.68.0 → 3.68.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.
@@ -10,7 +10,7 @@
10
10
  "plugins": [
11
11
  {
12
12
  "name": "claude-mem-lite",
13
- "version": "3.68.0",
13
+ "version": "3.68.1",
14
14
  "source": "./",
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)."
16
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "3.68.0",
3
+ "version": "3.68.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"
@@ -56,6 +56,17 @@ export const sleepMs = (ms) => new Promise(r => setTimeout(r, ms));
56
56
  // same age escape hatch the reaper applies to other processes' slots. 0 = not held.
57
57
  let localHeldAt = 0;
58
58
 
59
+ /**
60
+ * Test-only: force the local hold record to an arbitrary age. The staleness
61
+ * escape hatch above is otherwise unreachable in a test — it needs a record
62
+ * older than LLM_SEM_STALE_MS (120s), and a suite cannot wait that long. It was
63
+ * shipped untested in v3.68.0 and a post-tag review showed the gate still passed
64
+ * 16/16 when the escape hatch was deleted outright. Mirrors the `_resetMode` /
65
+ * `_resetHeadlessFlag` hooks in haiku-client.mjs.
66
+ * @param {number} ts epoch ms, or 0 for "not held"
67
+ */
68
+ export function _setLocalHeldAt(ts) { localHeldAt = ts; }
69
+
59
70
  /**
60
71
  * Acquire a file-based semaphore slot for LLM calls.
61
72
  * Uses acquire-then-verify: atomically creates a slot file, then checks total count.
package/hook.mjs CHANGED
@@ -878,8 +878,15 @@ async function handleStop() {
878
878
  }
879
879
  }
880
880
 
881
- // Spawn background for session summary (pass sessionId and project)
882
- spawnBackground('llm-summary', sessionId, project);
881
+ // Spawn background for session summary (pass sessionId and project).
882
+ // CLAUDE_MEM_SKIP_SUMMARY brings this in line with every other background
883
+ // worker (auto-compress / llm-optimize / auto-maintain all have one). It was
884
+ // the only ungated spawnBackground, which made Stop untestable end-to-end
885
+ // without residue: the detached child outlives the parent process an e2e test
886
+ // waits on, then recreates the sandbox tree behind the test's cleanup. Any
887
+ // grace period for that is a race, not a barrier — the post-tag review timed a
888
+ // recreate at 432ms and watched a 300ms grace lose.
889
+ if (!process.env.CLAUDE_MEM_SKIP_SUMMARY) spawnBackground('llm-summary', sessionId, project);
883
890
 
884
891
  // Clean session file AFTER spawning background
885
892
  try { unlinkSync(sessionFile()); } catch {}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "3.68.0",
3
+ "version": "3.68.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "claude-mem-lite",
9
- "version": "3.68.0",
9
+ "version": "3.68.1",
10
10
  "dependencies": {
11
11
  "@modelcontextprotocol/sdk": "^1.26.0",
12
12
  "better-sqlite3": "^12.6.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "3.68.0",
3
+ "version": "3.68.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",