memctx 1.0.8 → 1.0.10

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.
@@ -0,0 +1,149 @@
1
+ -- Migration: Add Memory System Tables
2
+ -- Date: 2026-04-03
3
+ -- Description: Extends ClaudeContext with preferences, knowledge, patterns, tasks, and contacts
4
+
5
+ -- User preferences
6
+ CREATE TABLE IF NOT EXISTS preferences (
7
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
8
+ category TEXT NOT NULL, -- communication_style, coding, workflow, testing
9
+ key TEXT NOT NULL,
10
+ value TEXT NOT NULL,
11
+ confidence REAL DEFAULT 1.0, -- 0-1 confidence score
12
+ source_session_id TEXT,
13
+ created_at INTEGER DEFAULT (unixepoch()),
14
+ updated_at INTEGER DEFAULT (unixepoch()),
15
+ UNIQUE(category, key),
16
+ FOREIGN KEY (source_session_id) REFERENCES sessions(id)
17
+ );
18
+
19
+ CREATE INDEX IF NOT EXISTS idx_preferences_category ON preferences(category);
20
+ CREATE INDEX IF NOT EXISTS idx_preferences_updated ON preferences(updated_at DESC);
21
+
22
+ -- Relationships/Contacts
23
+ CREATE TABLE IF NOT EXISTS contacts (
24
+ id TEXT PRIMARY KEY,
25
+ name TEXT NOT NULL,
26
+ type TEXT NOT NULL, -- person, team, organization
27
+ role TEXT,
28
+ email TEXT,
29
+ metadata TEXT, -- JSON for additional fields
30
+ created_at INTEGER DEFAULT (unixepoch()),
31
+ updated_at INTEGER DEFAULT (unixepoch())
32
+ );
33
+
34
+ CREATE INDEX IF NOT EXISTS idx_contacts_type ON contacts(type);
35
+ CREATE INDEX IF NOT EXISTS idx_contacts_name ON contacts(name);
36
+
37
+ -- Interaction history
38
+ CREATE TABLE IF NOT EXISTS interactions (
39
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
40
+ contact_id TEXT NOT NULL,
41
+ session_id TEXT,
42
+ interaction_type TEXT, -- mentioned, collaborated, discussed, reviewed
43
+ context TEXT,
44
+ created_at INTEGER DEFAULT (unixepoch()),
45
+ FOREIGN KEY (contact_id) REFERENCES contacts(id) ON DELETE CASCADE,
46
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
47
+ );
48
+
49
+ CREATE INDEX IF NOT EXISTS idx_interactions_contact ON interactions(contact_id);
50
+ CREATE INDEX IF NOT EXISTS idx_interactions_session ON interactions(session_id);
51
+ CREATE INDEX IF NOT EXISTS idx_interactions_created ON interactions(created_at DESC);
52
+
53
+ -- Domain knowledge
54
+ CREATE TABLE IF NOT EXISTS knowledge_items (
55
+ id TEXT PRIMARY KEY,
56
+ category TEXT NOT NULL, -- technology, business, architecture, debugging
57
+ topic TEXT NOT NULL,
58
+ content TEXT NOT NULL,
59
+ confidence REAL DEFAULT 0.5, -- 0-1 confidence score
60
+ source_session_id TEXT,
61
+ last_accessed_at INTEGER,
62
+ access_count INTEGER DEFAULT 0,
63
+ created_at INTEGER DEFAULT (unixepoch()),
64
+ updated_at INTEGER DEFAULT (unixepoch()),
65
+ FOREIGN KEY (source_session_id) REFERENCES sessions(id) ON DELETE SET NULL
66
+ );
67
+
68
+ CREATE INDEX IF NOT EXISTS idx_knowledge_category ON knowledge_items(category);
69
+ CREATE INDEX IF NOT EXISTS idx_knowledge_topic ON knowledge_items(topic);
70
+ CREATE INDEX IF NOT EXISTS idx_knowledge_confidence ON knowledge_items(confidence DESC);
71
+ CREATE INDEX IF NOT EXISTS idx_knowledge_accessed ON knowledge_items(last_accessed_at DESC);
72
+
73
+ -- Full-text search for knowledge
74
+ CREATE VIRTUAL TABLE IF NOT EXISTS knowledge_fts USING fts5(
75
+ topic, content,
76
+ content=knowledge_items,
77
+ content_rowid=rowid
78
+ );
79
+
80
+ -- Triggers to keep FTS in sync
81
+ CREATE TRIGGER IF NOT EXISTS knowledge_fts_insert AFTER INSERT ON knowledge_items BEGIN
82
+ INSERT INTO knowledge_fts(rowid, topic, content) VALUES (new.rowid, new.topic, new.content);
83
+ END;
84
+
85
+ CREATE TRIGGER IF NOT EXISTS knowledge_fts_delete AFTER DELETE ON knowledge_items BEGIN
86
+ DELETE FROM knowledge_fts WHERE rowid = old.rowid;
87
+ END;
88
+
89
+ CREATE TRIGGER IF NOT EXISTS knowledge_fts_update AFTER UPDATE ON knowledge_items BEGIN
90
+ DELETE FROM knowledge_fts WHERE rowid = old.rowid;
91
+ INSERT INTO knowledge_fts(rowid, topic, content) VALUES (new.rowid, new.topic, new.content);
92
+ END;
93
+
94
+ -- Learned patterns
95
+ CREATE TABLE IF NOT EXISTS learned_patterns (
96
+ id TEXT PRIMARY KEY,
97
+ pattern_type TEXT NOT NULL, -- debugging, problem_solving, code_pattern, workflow
98
+ title TEXT NOT NULL,
99
+ description TEXT NOT NULL,
100
+ example TEXT,
101
+ success_count INTEGER DEFAULT 0,
102
+ failure_count INTEGER DEFAULT 0,
103
+ last_used_at INTEGER,
104
+ created_at INTEGER DEFAULT (unixepoch()),
105
+ updated_at INTEGER DEFAULT (unixepoch())
106
+ );
107
+
108
+ CREATE INDEX IF NOT EXISTS idx_patterns_type ON learned_patterns(pattern_type);
109
+ CREATE INDEX IF NOT EXISTS idx_patterns_success ON learned_patterns(success_count DESC);
110
+ CREATE INDEX IF NOT EXISTS idx_patterns_used ON learned_patterns(last_used_at DESC);
111
+
112
+ -- Pending tasks
113
+ CREATE TABLE IF NOT EXISTS tasks (
114
+ id TEXT PRIMARY KEY,
115
+ title TEXT NOT NULL,
116
+ description TEXT,
117
+ status TEXT DEFAULT 'pending', -- pending, in_progress, completed, blocked, cancelled
118
+ priority TEXT DEFAULT 'medium', -- low, medium, high, urgent
119
+ project_id TEXT,
120
+ tags TEXT, -- JSON array
121
+ created_session_id TEXT,
122
+ completed_session_id TEXT,
123
+ due_date INTEGER,
124
+ created_at INTEGER DEFAULT (unixepoch()),
125
+ updated_at INTEGER DEFAULT (unixepoch()),
126
+ completed_at INTEGER,
127
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
128
+ FOREIGN KEY (created_session_id) REFERENCES sessions(id) ON DELETE SET NULL,
129
+ FOREIGN KEY (completed_session_id) REFERENCES sessions(id) ON DELETE SET NULL
130
+ );
131
+
132
+ CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
133
+ CREATE INDEX IF NOT EXISTS idx_tasks_priority ON tasks(priority);
134
+ CREATE INDEX IF NOT EXISTS idx_tasks_project ON tasks(project_id);
135
+ CREATE INDEX IF NOT EXISTS idx_tasks_created ON tasks(created_at DESC);
136
+
137
+ -- Memory metadata (for tracking memory health)
138
+ CREATE TABLE IF NOT EXISTS memory_metadata (
139
+ key TEXT PRIMARY KEY,
140
+ value TEXT NOT NULL,
141
+ updated_at INTEGER DEFAULT (unixepoch())
142
+ );
143
+
144
+ -- Insert initial metadata
145
+ INSERT OR IGNORE INTO memory_metadata (key, value) VALUES
146
+ ('schema_version', '1'),
147
+ ('memory_enabled', 'true'),
148
+ ('last_consolidation', '0'),
149
+ ('total_memories', '0');
@@ -0,0 +1,25 @@
1
+ -- Migration: Add project_id to memory tables
2
+ -- Date: 2026-04-03
3
+ -- Description: Make memory project-specific instead of global
4
+
5
+ -- Add project_id to preferences
6
+ ALTER TABLE preferences ADD COLUMN project_id TEXT REFERENCES projects(id);
7
+ CREATE INDEX IF NOT EXISTS idx_preferences_project ON preferences(project_id);
8
+
9
+ -- Add project_id to knowledge_items
10
+ ALTER TABLE knowledge_items ADD COLUMN project_id TEXT REFERENCES projects(id);
11
+ CREATE INDEX IF NOT EXISTS idx_knowledge_project ON knowledge_items(project_id);
12
+
13
+ -- Add project_id to learned_patterns
14
+ ALTER TABLE learned_patterns ADD COLUMN project_id TEXT REFERENCES projects(id);
15
+ CREATE INDEX IF NOT EXISTS idx_patterns_project ON learned_patterns(project_id);
16
+
17
+ -- Add project_id to contacts
18
+ ALTER TABLE contacts ADD COLUMN project_id TEXT REFERENCES projects(id);
19
+ CREATE INDEX IF NOT EXISTS idx_contacts_project ON contacts(project_id);
20
+
21
+ -- Update existing test data with project_id
22
+ UPDATE preferences SET project_id = 'c6d8edec13ba353f' WHERE project_id IS NULL;
23
+ UPDATE knowledge_items SET project_id = 'c6d8edec13ba353f' WHERE project_id IS NULL;
24
+ UPDATE learned_patterns SET project_id = 'c6d8edec13ba353f' WHERE project_id IS NULL;
25
+ UPDATE contacts SET project_id = 'c6d8edec13ba353f' WHERE project_id IS NULL;
@@ -0,0 +1,27 @@
1
+ -- Migration 003: Enhance Sessions Schema for v2.0
2
+ -- Adds 7 new columns for enhanced summarization and 5 performance indexes
3
+
4
+ -- Add new columns to sessions table
5
+ ALTER TABLE sessions ADD COLUMN summary_mood TEXT;
6
+ ALTER TABLE sessions ADD COLUMN summary_complexity TEXT;
7
+ ALTER TABLE sessions ADD COLUMN summary_blockers TEXT;
8
+ ALTER TABLE sessions ADD COLUMN summary_resolved TEXT;
9
+ ALTER TABLE sessions ADD COLUMN summary_key_insight TEXT;
10
+ ALTER TABLE sessions ADD COLUMN duration_seconds INTEGER;
11
+ ALTER TABLE sessions ADD COLUMN embedding_summary TEXT;
12
+
13
+ -- Create performance indexes
14
+ CREATE INDEX IF NOT EXISTS idx_sessions_project_ended
15
+ ON sessions(project_id, ended_at DESC);
16
+
17
+ CREATE INDEX IF NOT EXISTS idx_sessions_status_project
18
+ ON sessions(status, project_id);
19
+
20
+ CREATE INDEX IF NOT EXISTS idx_sessions_started
21
+ ON sessions(started_at DESC);
22
+
23
+ CREATE INDEX IF NOT EXISTS idx_observations_session_type
24
+ ON observations(session_id, event_type);
25
+
26
+ CREATE INDEX IF NOT EXISTS idx_observations_project_created
27
+ ON observations(project_id, created_at DESC);
@@ -0,0 +1,5 @@
1
+ -- Add is_bookmarked column to sessions table
2
+ ALTER TABLE sessions ADD COLUMN is_bookmarked INTEGER DEFAULT 0;
3
+
4
+ -- Create index for faster bookmark queries
5
+ CREATE INDEX IF NOT EXISTS idx_sessions_bookmarked ON sessions(is_bookmarked, project_id);
@@ -0,0 +1,21 @@
1
+ -- Add tags table and session_tags junction table
2
+ CREATE TABLE IF NOT EXISTS tags (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ project_id TEXT NOT NULL REFERENCES projects(id),
5
+ name TEXT NOT NULL,
6
+ color TEXT,
7
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
8
+ UNIQUE(project_id, name)
9
+ );
10
+
11
+ CREATE TABLE IF NOT EXISTS session_tags (
12
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
13
+ tag_id INTEGER NOT NULL REFERENCES tags(id) ON DELETE CASCADE,
14
+ created_at INTEGER NOT NULL DEFAULT (unixepoch()),
15
+ PRIMARY KEY (session_id, tag_id)
16
+ );
17
+
18
+ -- Create indexes for faster queries
19
+ CREATE INDEX IF NOT EXISTS idx_tags_project ON tags(project_id);
20
+ CREATE INDEX IF NOT EXISTS idx_session_tags_session ON session_tags(session_id);
21
+ CREATE INDEX IF NOT EXISTS idx_session_tags_tag ON session_tags(tag_id);
@@ -0,0 +1,2 @@
1
+ -- Add notes column to sessions table
2
+ ALTER TABLE sessions ADD COLUMN notes TEXT;
@@ -0,0 +1,2 @@
1
+ -- Add is_archived column to sessions table
2
+ ALTER TABLE sessions ADD COLUMN is_archived INTEGER DEFAULT 0;
@@ -0,0 +1,11 @@
1
+ -- Add activity tracking columns (skip if already exist)
2
+ -- SQLite will error if column exists, but migration system should handle this
3
+
4
+ -- Create index for worker queries
5
+ CREATE INDEX IF NOT EXISTS idx_sessions_activity
6
+ ON sessions(status, last_activity);
7
+
8
+ -- Backfill last_activity for existing sessions
9
+ UPDATE sessions
10
+ SET last_activity = COALESCE(ended_at, started_at)
11
+ WHERE last_activity IS NULL;
package/dist/src/index.js CHANGED
@@ -30,6 +30,7 @@ const memory_decay_1 = require("./services/memory-decay");
30
30
  const session_timeout_1 = require("./services/session-timeout");
31
31
  const rate_limit_1 = require("./middleware/rate-limit");
32
32
  const stale_session_worker_1 = require("./services/stale-session-worker");
33
+ const logger_1 = require("./services/logger");
33
34
  process.on('uncaughtException', (err) => {
34
35
  console.error('Uncaught exception:', err);
35
36
  });
@@ -69,10 +70,14 @@ async function main() {
69
70
  app.use('/api/settings', settings_1.settingsRouter);
70
71
  const dashboardDist = path_1.default.join(__dirname, '..', '..', 'dashboard', 'dist');
71
72
  app.use(express_1.default.static(dashboardDist));
72
- app.get('/*', (req, res) => {
73
+ // Catch-all for SPA routing - serve index.html for non-API routes
74
+ app.use((req, res, next) => {
73
75
  if (!req.path.startsWith('/api')) {
74
76
  res.sendFile(path_1.default.join(dashboardDist, 'index.html'));
75
77
  }
78
+ else {
79
+ next();
80
+ }
76
81
  });
77
82
  const server = (0, http_1.createServer)(app);
78
83
  const wss = new ws_1.WebSocketServer({ server });
@@ -89,20 +94,20 @@ async function main() {
89
94
  (0, session_timeout_1.startSessionTimeoutChecker)();
90
95
  // Start stale session worker
91
96
  stale_session_worker_1.staleSessionWorker.start();
92
- console.log('[Worker] Stale session worker started');
97
+ logger_1.logger.info('Worker', 'Stale session worker started');
93
98
  server.listen(config_1.CONFIG.port, () => {
94
- console.log(`ClaudeContext running at http://localhost:${config_1.CONFIG.port}`);
95
- console.log(`API Key: ${config_1.CONFIG.apiKey ? 'configured' : 'NOT SET (summaries disabled)'}`);
99
+ logger_1.logger.info('Server', `ClaudeContext running at http://localhost:${config_1.CONFIG.port}`);
100
+ logger_1.logger.info('Server', `API Key: ${config_1.CONFIG.apiKey ? 'configured' : 'NOT SET (summaries disabled)'}`);
96
101
  });
97
102
  }
98
103
  // Graceful shutdown
99
104
  process.on('SIGINT', () => {
100
- console.log('[Worker] Stopping stale session worker...');
105
+ logger_1.logger.info('Worker', 'Stopping stale session worker...');
101
106
  stale_session_worker_1.staleSessionWorker.stop();
102
107
  process.exit(0);
103
108
  });
104
109
  process.on('SIGTERM', () => {
105
- console.log('[Worker] Stopping stale session worker...');
110
+ logger_1.logger.info('Worker', 'Stopping stale session worker...');
106
111
  stale_session_worker_1.staleSessionWorker.stop();
107
112
  process.exit(0);
108
113
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAC7B,+BAAmC;AACnC,2BAAoC;AACpC,gDAAuB;AACvB,wCAAoC;AACpC,qCAAuC;AACvC,6CAA+C;AAC/C,6CAA+C;AAC/C,2CAA6C;AAC7C,yCAA2C;AAC3C,yCAA2C;AAC3C,qDAAuD;AACvD,yCAA2C;AAC3C,oEAAiD;AACjD,4DAAyC;AACzC,0DAAuC;AACvC,+DAA+D;AAC/D,qCAAuC;AACvC,qCAAuC;AACvC,6CAA+C;AAC/C,gDAAiD;AACjD,8CAAkD;AAClD,qCAAiC;AACjC,0DAAqD;AACrD,gEAAuE;AACvE,wDAA2D;AAC3D,0EAAoE;AACpE,8CAA0C;AAE1C,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,IAAI;IACjB,IAAA,eAAM,GAAE,CAAA;IAER,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAExC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QAC9C,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAA;QACzE,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAA;QAC7E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QAC7D,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,wCAAwC;IACxC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,8BAAiB,CAAC,CAAA;IAElC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAA;IAChC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,yBAAc,CAAC,CAAA;IACxC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,yBAAc,CAAC,CAAA;IACxC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAa,CAAC,CAAA;IACtC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAY,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAY,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,iCAAkB,CAAC,CAAA;IAChD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAY,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,qBAAiB,CAAC,CAAA;IAC9C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAa,CAAC,CAAA;IACtC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAY,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,yCAAqB,CAAC,CAAA;IACxD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAA;IAChC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAA;IAChC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,yBAAc,CAAC,CAAA;IAExC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC3E,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAEtC,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAA;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,IAAI,oBAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3C,IAAA,kBAAM,EAAC,GAAG,CAAC,CAAA;IAEX,IAAI,CAAC;QACH,IAAA,sBAAY,GAAE,CAAA;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,+BAA+B;IAC/B,0BAAW,CAAC,mBAAmB,EAAE,CAAA;IAEjC,gCAAgC;IAChC,IAAA,4CAA0B,GAAE,CAAA;IAE5B,6BAA6B;IAC7B,yCAAkB,CAAC,KAAK,EAAE,CAAA;IAC1B,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAA;IAErD,MAAM,CAAC,MAAM,CAAC,eAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC9B,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,6CAA6C,eAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACjF,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oBAAoB;AACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAA;IACzD,yCAAkB,CAAC,IAAI,EAAE,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAA;IACzD,yCAAkB,CAAC,IAAI,EAAE,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memctx",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Autonomous session memory for Claude Code - automatically captures, analyzes, and summarizes your development sessions",
5
5
  "author": "Fahad Aziz Qureshi <info@memctx.dev> (https://memctx.dev)",
6
6
  "license": "MIT",
@@ -43,7 +43,7 @@
43
43
  "dev": "NODE_NO_WARNINGS=1 tsx watch src/index.ts",
44
44
  "dev:dashboard": "cd dashboard && vite --port $PORT",
45
45
  "build": "pnpm run build:worker && pnpm run build:dashboard",
46
- "build:worker": "tsc -p tsconfig.worker.json && cp -r installer/hooks-settings.json dist/installer/ && cp -r src/hooks/*.js dist/src/hooks/ 2>/dev/null || true",
46
+ "build:worker": "tsc -p tsconfig.worker.json && cp -r installer/hooks-settings.json dist/installer/ && cp -r src/hooks/*.js dist/src/hooks/ 2>/dev/null || true && cp -r src/db/migrations dist/src/db/",
47
47
  "build:dashboard": "cd dashboard && pnpm install && pnpm vite build",
48
48
  "start": "node dist/index.js",
49
49
  "typecheck": "tsc -p tsconfig.json --noEmit"