linksee-memory 0.16.0 → 0.16.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.
Files changed (2) hide show
  1. package/dist/mcp/server.js +14 -9
  2. package/package.json +1 -1
@@ -72,6 +72,16 @@ if (subcommand && Object.prototype.hasOwnProperty.call(SUBCOMMANDS, subcommand))
72
72
  }
73
73
  const db = openDb();
74
74
  runMigrations(db);
75
+ // Distill triage runs on EVERY start, before the first request. It is one indexed scan and a
76
+ // handful of JSON rewrites — cheap — and 0.16.0 had tucked it inside the auto-consolidate block
77
+ // below, which runs at most once a week and only after a 3-second timer. So it never ran.
78
+ try {
79
+ const t = triageDistillQueue(db);
80
+ if (t.noise + t.stale > 0) {
81
+ process.stderr.write(`[linksee-memory] distill triage: archived ${t.noise} noise + ${t.stale} stale, ${t.remaining} remain\n`);
82
+ }
83
+ }
84
+ catch { /* never block startup */ }
75
85
  // Auto-maintenance: consolidate stale memories on startup (non-blocking)
76
86
  setTimeout(() => {
77
87
  try {
@@ -91,13 +101,6 @@ setTimeout(() => {
91
101
  if (shouldRun) {
92
102
  runConsolidate(db, { scope: 'all', min_age_days: 7 });
93
103
  process.stderr.write('[linksee-memory] auto-consolidate complete\n');
94
- // Triage the distill queue by rule before any agent is asked to think about it.
95
- try {
96
- const t = triageDistillQueue(db);
97
- if (t.noise + t.stale > 0)
98
- process.stderr.write(`[linksee-memory] distill triage: archived ${t.noise} noise + ${t.stale} stale, ${t.remaining} remain\n`);
99
- }
100
- catch { /* never block startup */ }
101
104
  }
102
105
  }
103
106
  catch { /* non-fatal */ }
@@ -1470,7 +1473,7 @@ async function handleRecallUnified(args) {
1470
1473
  // Folded surfaces (roadmap 5): locating yourself and the triage session are ways of
1471
1474
  // recalling, not separate tools.
1472
1475
  if (args?.dream)
1473
- return handleDream({ domain: args.domain });
1476
+ return handleDream({ domain: args.domain, distill: args.distill });
1474
1477
  if (args?.where !== undefined && args?.where !== false) {
1475
1478
  return handleWhereAmI({ query: args.where === true ? undefined : String(args.where), project: args.project, limit: args.limit });
1476
1479
  }
@@ -2004,7 +2007,9 @@ function handleDream(args) {
2004
2007
  friction,
2005
2008
  friction_total: friction.length,
2006
2009
  distill_queue: distillQueue,
2007
- distill_total: distillQueue.length,
2010
+ distill_total: distillPending(db),
2011
+ distill_shown: distillQueue.length,
2012
+ distill_hint: 'Ordered by value (caveats first, named entities, longer text). Pass distill: N (max 25) for a longer drain. Rules already set a distill_verdict on acknowledgements, bare paths and 90-day-old never-recalled items — you only see what needs judgement.',
2008
2013
  guide: guideParts.join(' '),
2009
2014
  });
2010
2015
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linksee-memory",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "mcpName": "io.github.michielinksee/linksee-memory",
5
5
  "description": "Hand a project over — to your next session, to Cursor/Codex/Gemini, to your successor — with the reasons attached. Local-first memory MCP for coding agents: decisions re-injected before the agent acts, drift detection across every project you run. One SQLite file, nothing leaves your machine.",
6
6
  "type": "module",