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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/lib/stats-core.mjs +12 -2
- package/mem-cli.mjs +4 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "claude-mem-lite",
|
|
13
|
-
"version": "3.72.
|
|
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.
|
|
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"
|
package/lib/stats-core.mjs
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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,
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-mem-lite",
|
|
3
|
-
"version": "3.72.
|
|
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.
|
|
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.
|
|
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",
|