claude-mem-lite 3.72.0 → 3.72.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.72.0",
13
+ "version": "3.72.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.72.0",
3
+ "version": "3.72.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"
@@ -18,7 +18,17 @@ import { DAY_MS } from './time-constants.mjs';
18
18
  * blocks produced them ({c}/{t}/{v} single-row objects, arrays for distributions)
19
19
  * so both call sites render with minimal diff.
20
20
  */
21
- export function computeStatsFeed(db, { project = null, days = 30, now = Date.now() } = {}) {
21
+ /**
22
+ * @param {import('better-sqlite3').Database} db
23
+ * @param {{project?: string|null, currentProject?: string|null, days?: number, now?: number}} [opts]
24
+ * `project` filters the whole report. `currentProject` steers ONLY the tier context —
25
+ * tier classification is relative to the project you are standing in, so with the wrong
26
+ * one the distribution collapses (measured on a fixture: {active:3, working:1} becomes
27
+ * {active:4}). v3.72.0 gave CLI read commands a DB-aware project but this feed still asked
28
+ * inferProject(), so from a subdirectory `recent` and `stats` disagreed about "current".
29
+ * Defaults to inferProject() because the MCP twin has no CLI-layer resolver (D#144).
30
+ */
31
+ export function computeStatsFeed(db, { project = null, currentProject = null, days = 30, now = Date.now() } = {}) {
22
32
  const cutoff = now - days * DAY_MS;
23
33
  const projectFilter = project ? 'AND project = ?' : '';
24
34
  const baseParams = project ? [project] : [];
@@ -95,7 +105,7 @@ export function computeStatsFeed(db, { project = null, days = 30, now = Date.now
95
105
  ).get(...baseParams);
96
106
 
97
107
  // Tier distribution
98
- const tierCtx = { now, currentProject: project || inferProject(), currentSessionId: '' };
108
+ const tierCtx = { now, currentProject: project || currentProject || inferProject(), currentSessionId: '' };
99
109
  const tdParams = tierSqlParams(tierCtx);
100
110
  const tierDist = db.prepare(`
101
111
  SELECT tier, COUNT(*) as c FROM (
package/mem-cli.mjs CHANGED
@@ -1213,7 +1213,10 @@ async function cmdStats(db, args) {
1213
1213
  obsTotal, sessTotal, promptTotal, obsRecent, sessRecent,
1214
1214
  types, projects, daily, tokenEst, avgImp, lowVal, lowSignalTitle,
1215
1215
  noiseRatio, lowSignalRatio, compressedCount, supersededOnlyCount, tierMap,
1216
- } = computeStatsFeed(db, { project, days, now });
1216
+ // currentProject steers the TIER context only (the report itself stays global unless
1217
+ // --project was given). Without it, `stats` from a subdirectory tiered every row against
1218
+ // the empty cwd-derived name while `recent` had already resolved to the work-tree root.
1219
+ } = computeStatsFeed(db, { project, currentProject: cliProject(db), days, now });
1217
1220
 
1218
1221
  // Hook self-observation: count PreToolUse / Skill-bridge script failures
1219
1222
  // recorded in the last 24h. Surfaces silent breakage (DB corruption,
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "claude-mem-lite",
3
- "version": "3.72.0",
3
+ "version": "3.72.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "claude-mem-lite",
9
- "version": "3.72.0",
9
+ "version": "3.72.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.72.0",
3
+ "version": "3.72.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",