claude-mem-lite 2.1.2 → 2.1.4

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.1.2",
13
+ "version": "2.1.4",
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.1.2",
3
+ "version": "2.1.4",
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,6 +1,8 @@
1
1
  {
2
- "mem": {
3
- "command": "node",
4
- "args": ["${CLAUDE_PLUGIN_ROOT}/server.mjs"]
2
+ "mcpServers": {
3
+ "mem": {
4
+ "command": "node",
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/scripts/launch.mjs"]
6
+ }
5
7
  }
6
8
  }
package/hooks/hooks.json CHANGED
@@ -1,22 +1,15 @@
1
1
  {
2
2
  "description": "claude-mem-lite memory system hooks",
3
3
  "hooks": {
4
- "Setup": [
4
+ "SessionStart": [
5
5
  {
6
- "matcher": "*",
6
+ "matcher": "startup|clear|compact",
7
7
  "hooks": [
8
8
  {
9
9
  "type": "command",
10
10
  "command": "bash \"${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh\"",
11
- "timeout": 120
12
- }
13
- ]
14
- }
15
- ],
16
- "SessionStart": [
17
- {
18
- "matcher": "startup|clear|compact",
19
- "hooks": [
11
+ "timeout": 30
12
+ },
20
13
  {
21
14
  "type": "command",
22
15
  "command": "node \"${CLAUDE_PLUGIN_ROOT}/hook.mjs\" session-start",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "Lightweight persistent memory system for Claude Code",
5
5
  "type": "module",
6
6
  "engines": {
@@ -48,6 +48,7 @@
48
48
  "skill.md",
49
49
  "commands/mem.md",
50
50
  "hooks/hooks.json",
51
+ "scripts/launch.mjs",
51
52
  "scripts/setup.sh",
52
53
  "scripts/post-tool-use.sh",
53
54
  ".claude-plugin/plugin.json",
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ // launch.mjs — Auto-installs dependencies then starts MCP server
3
+ // Uses only Node built-ins so it works before npm install
4
+ import { execSync } from 'node:child_process';
5
+ import { existsSync } from 'node:fs';
6
+ import { dirname, join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const ROOT = process.env.CLAUDE_PLUGIN_ROOT || join(__dirname, '..');
11
+
12
+ if (!existsSync(join(ROOT, 'node_modules', 'better-sqlite3'))) {
13
+ process.stderr.write('[claude-mem-lite] Installing dependencies...\n');
14
+ execSync('npm install --omit=dev', {
15
+ cwd: ROOT,
16
+ stdio: ['ignore', 'pipe', 'inherit'], // stdout piped (discard), stderr inherit
17
+ timeout: 120_000,
18
+ });
19
+ process.stderr.write('[claude-mem-lite] Dependencies installed\n');
20
+ }
21
+
22
+ await import(new URL('../server.mjs', import.meta.url).href);
package/scripts/setup.sh CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  #
3
- # claude-mem-lite Setup Hook
4
- # Installs native dependencies (better-sqlite3) on first run
3
+ # claude-mem-lite SessionStart pre-hook
4
+ # Data directory setup and migrations (deps handled by launch.mjs)
5
5
  #
6
6
 
7
7
  set -euo pipefail
@@ -28,26 +28,13 @@ log_info() { echo -e "${BLUE}ℹ${NC} $*" >&2; }
28
28
  log_warn() { echo -e "${YELLOW}⚠${NC} $*" >&2; }
29
29
  log_err() { echo -e "${RED}✗${NC} $*" >&2; }
30
30
 
31
- # 1. Install npm dependencies if needed
32
- if [[ ! -d "$ROOT/node_modules/better-sqlite3" ]]; then
33
- log_info "Installing dependencies..."
34
- if npm install --omit=dev --prefix "$ROOT" 2>&1; then
35
- log_ok "Dependencies installed"
36
- else
37
- log_err "npm install failed"
38
- exit 1
39
- fi
40
- else
41
- log_ok "Dependencies up to date"
42
- fi
43
-
44
- # 2. Migrate unhidden dir (~/claude-mem-lite/ → ~/.claude-mem-lite/)
31
+ # 1. Migrate unhidden dir (~/claude-mem-lite/ → ~/.claude-mem-lite/)
45
32
  if [[ -d "$OLD_UNHIDDEN_DIR" && ! -d "$DATA_DIR" ]]; then
46
33
  mv "$OLD_UNHIDDEN_DIR" "$DATA_DIR"
47
34
  log_ok "Migrated ~/claude-mem-lite/ → ~/.claude-mem-lite/"
48
35
  fi
49
36
 
50
- # 2b. Ensure data directory exists (runtime created after migration check)
37
+ # 2. Ensure data directory exists (runtime created after migration check)
51
38
  mkdir -p "$DATA_DIR"
52
39
  log_ok "Data directory: $DATA_DIR"
53
40
 
@@ -68,7 +55,7 @@ if [[ -f "$OLD_DIR/claude-mem.db" && ! -f "$DATA_DIR/claude-mem-lite.db" && ! -f
68
55
  fi
69
56
  fi
70
57
 
71
- # 3b. Rename claude-mem.db → claude-mem-lite.db in same directory
58
+ # 4. Rename claude-mem.db → claude-mem-lite.db in same directory
72
59
  if [[ -f "$DATA_DIR/claude-mem.db" && ! -f "$DATA_DIR/claude-mem-lite.db" ]]; then
73
60
  mv "$DATA_DIR/claude-mem.db" "$DATA_DIR/claude-mem-lite.db"
74
61
  mv "$DATA_DIR/claude-mem.db-wal" "$DATA_DIR/claude-mem-lite.db-wal" 2>/dev/null || true
@@ -76,7 +63,7 @@ if [[ -f "$DATA_DIR/claude-mem.db" && ! -f "$DATA_DIR/claude-mem-lite.db" ]]; th
76
63
  log_ok "Database renamed: claude-mem.db → claude-mem-lite.db"
77
64
  fi
78
65
 
79
- # 4. Ensure runtime directory exists (after migration to not mask migration check)
66
+ # 5. Ensure runtime directory exists (after migration to not mask migration check)
80
67
  mkdir -p "$DATA_DIR/runtime"
81
68
 
82
69
  log_ok "claude-mem-lite ready"