@log0u7/opencode-memory 0.6.1 → 0.7.0

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/CHANGELOG.md CHANGED
@@ -5,7 +5,22 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.6.1] - 2026-11-04
8
+ ## [0.7.0] - 2026-11-04
9
+
10
+ ### Added
11
+
12
+ - Transcript retention: opt-in policy (off by default) to sweep exported
13
+ session transcripts. `retrieval.retentionDays` (age threshold),
14
+ `retrieval.keepRecent` (safety floor, default 10), `retrieval.maxSessions`
15
+ (hard cap), `retrieval.autoSweep` (default true). Age is based on the most
16
+ recent of access/modification time, so a transcript still being read is kept.
17
+ - `memory_transcript_list` tool: storage visibility (scope, size, age, last touch).
18
+ - `memory_transcript_cleanup` tool: dry run by default; `apply:true` removes
19
+ eligible files. Override policy per call or target specific session ids.
20
+ - `/memory-cleanup` command: runs the sweep (dry run unless `apply`).
21
+ - Auto-sweep 30s after startup and after each compaction, when enabled.
22
+
23
+ ## [0.6.2] - 2026-11-04
9
24
 
10
25
  ### Fixed
11
26
 
package/README.md CHANGED
@@ -63,6 +63,8 @@ memory_stats()
63
63
  | `memory_restore` | `id` | Put a trashed entry back, wherever it lived. |
64
64
  | `memory_session_search` | `query`, `sessionID?`, `contextLines?`, `maxBytes?` | Search exported session transcripts for exact lines (case-insensitive), with line numbers and surrounding context. |
65
65
  | `memory_session_read` | `sessionID`, `offset?`, `limit?`, `maxBytes?` | Read a numbered window of one exported transcript by 1-based line. |
66
+ | `memory_transcript_list` | `all?`, `scope?` | List exported transcripts with size, age and last touch (storage visibility). |
67
+ | `memory_transcript_cleanup` | `dryRun?`, `apply?`, `allScopes?`, `sessionIDs?`, `retentionDays?`, `keepRecent?`, `maxSessions?` | Sweep transcripts per retention policy; dry run by default. |
66
68
 
67
69
  Entry `kind` is free-form; conventions that work well: `decision`, `fact`, `preference`, `gotcha`, `lesson`, `compaction`.
68
70
 
@@ -105,6 +107,10 @@ Options (under the plugin options object):
105
107
  - `enabled` (default `true`): `false` restores the plain summary flow and hides the two retrieval tools.
106
108
  - `dir` (default `~/.local/share/opencode-memory/transcripts`): where transcripts are exported.
107
109
  - `inlineOutputMaxBytes` (default 50000): tool output above this size is truncated head+tail in the transcript, with the tool call id kept in the marker so the full output stays recoverable from OpenCode's tool-output store.
110
+ - `retentionDays` (default 0, disabled): transcripts whose last touch is older than this many days become eligible for removal. 0 keeps everything (recommended default).
111
+ - `keepRecent` (default 10): safety floor, never remove the N newest transcripts of a scope even if they are old.
112
+ - `maxSessions` (default 0, unlimited): hard cap on transcripts per scope (newest kept).
113
+ - `autoSweep` (default true): when `retentionDays` or `maxSessions` is set, run a sweep 30s after startup and after each compaction. Set false to keep manual control only.
108
114
 
109
115
  This feature is V2-only (it hooks the V2 compaction request). The transcript holds the full session history, which can include secrets typed or read during the session: the directory is created `0700` and files `0600` regardless of umask, and the store never leaves the machine.
110
116
 
@@ -114,6 +120,8 @@ If the export fails (disk full or permission error), compaction falls back to th
114
120
 
115
121
  The `/memory-continue <sessionID>` command brings a past session into the current one: it exports the transcript if needed and injects the retrieval pointer (path, last request, working rule) as a prompt.
116
122
 
123
+ The `/memory-cleanup` command runs the retention sweep (dry run by default; pass `apply` to delete) and reports eligible files. Auto-sweep, when enabled, runs 30s after startup and after each compaction.
124
+
117
125
  Measured on a live ~40k-token session with GLM-5.3-Flash (openrouter): the model-written summary cost 39,620 input tokens and $0.0018; the retrieval pointer compaction completed with no model call at all. The agent then recovered an exact value planted in the compacted session from a fresh session via `memory_session_search`. Live measurement on the local 30k-context model was not possible: a fresh session already overflows its window before any history exists, so compaction cannot run on it (model limitation, unrelated to this feature).
118
126
 
119
127
  ### Design decisions
package/dist/options.d.ts CHANGED
@@ -2,6 +2,14 @@ export type RetrievalOptions = {
2
2
  enabled?: boolean;
3
3
  dir?: string;
4
4
  inlineOutputMaxBytes?: number;
5
+ /** Delete transcripts older than this many days. 0 (default) disables age-based deletion. */
6
+ retentionDays?: number;
7
+ /** Always keep this many newest transcripts per scope, regardless of age. Default 10. */
8
+ keepRecent?: number;
9
+ /** Hard cap on transcripts per scope (newest kept). 0 (default) disables the cap. */
10
+ maxSessions?: number;
11
+ /** Run the retention sweep automatically when enabled. Default true. */
12
+ autoSweep?: boolean;
5
13
  };
6
14
  export type PluginOptions = {
7
15
  dbPath?: string;
@@ -17,6 +25,10 @@ export type RetrievalConfig = {
17
25
  enabled: boolean;
18
26
  dir: string;
19
27
  inlineOutputMaxBytes: number;
28
+ retentionDays: number;
29
+ keepRecent: number;
30
+ maxSessions: number;
31
+ autoSweep: boolean;
20
32
  };
21
33
  export declare function parseRetrievalConfig(options?: PluginOptions): RetrievalConfig;
22
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,eAAe,wjBAIoD,CAAC;AAEjF,eAAO,MAAM,kBAAkB,QAG0B,CAAC;AAE1D,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAK7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAMrE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,CAS7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1E"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,eAAe,wjBAIoD,CAAC;AAEjF,eAAO,MAAM,kBAAkB,QAG0B,CAAC;AAE1D,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAK7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAMrE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,CA8B7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1E"}
package/dist/options.js CHANGED
@@ -26,11 +26,29 @@ export function defaultTranscriptsDir(options) {
26
26
  }
27
27
  export function parseRetrievalConfig(options) {
28
28
  const bytes = options?.retrieval?.inlineOutputMaxBytes;
29
+ const retentionDays = typeof options?.retrieval?.retentionDays === "number" &&
30
+ Number.isFinite(options.retrieval.retentionDays) &&
31
+ options.retrieval.retentionDays > 0
32
+ ? Math.floor(options.retrieval.retentionDays)
33
+ : 0;
34
+ const keepRecentRaw = options?.retrieval?.keepRecent;
35
+ const keepRecent = typeof keepRecentRaw === "number" && Number.isFinite(keepRecentRaw) && keepRecentRaw > 0
36
+ ? Math.max(1, Math.floor(keepRecentRaw))
37
+ : 10;
38
+ const maxSessionsRaw = options?.retrieval?.maxSessions;
39
+ const maxSessions = typeof maxSessionsRaw === "number" && Number.isFinite(maxSessionsRaw) && maxSessionsRaw > 0
40
+ ? Math.floor(maxSessionsRaw)
41
+ : 0;
42
+ const autoSweep = options?.retrieval?.autoSweep !== false;
29
43
  return {
30
44
  enabled: options?.retrieval?.enabled !== false,
31
45
  dir: defaultTranscriptsDir(options),
32
46
  // 128 keeps the truncation marker smaller than the cap for degenerate configs.
33
47
  inlineOutputMaxBytes: typeof bytes === "number" && bytes > 0 ? Math.max(128, bytes) : INLINE_OUTPUT_MAX_BYTES,
48
+ retentionDays,
49
+ keepRecent,
50
+ maxSessions,
51
+ autoSweep,
34
52
  };
35
53
  }
36
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAmB3D,MAAM,CAAC,MAAM,eAAe,GAAG;;;;gFAIiD,CAAC;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAC7B,+GAA+G;IAC/G,yGAAyG;IACzG,uDAAuD,CAAC;AAE1D,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,eAAe,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,IAAI,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,eAAe,EAAE,4BAA4B,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAC3D,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC;IAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,eAAe,EAAE,8BAA8B,CAAC;AAC5D,CAAC;AAQD,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,MAAM,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC;IACvD,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,KAAK;QAC9C,GAAG,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACnC,+EAA+E;QAC/E,oBAAoB,EAClB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB;KAC1F,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAiB,EAAE,SAAkB;IAChE,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-v2.d.ts","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAyD1C,eAAO,MAAM,QAAQ,eAgcnB,CAAC"}
1
+ {"version":3,"file":"plugin-v2.d.ts","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA+D1C,eAAO,MAAM,QAAQ,eAwrBnB,CAAC"}
package/dist/plugin-v2.js CHANGED
@@ -1,4 +1,4 @@
1
- import { existsSync } from "node:fs";
1
+ import { existsSync, unlinkSync } from "node:fs";
2
2
  import { Plugin } from "@opencode/plugin";
3
3
  import { openMemoryDb } from "./lib/db.js";
4
4
  import { TOOL_DESCRIPTIONS, createMemoryOps, memoryInventory, oncePerSession, } from "./lib/memory-ops.js";
@@ -8,6 +8,7 @@ import { canonicalScope } from "./lib/store.js";
8
8
  import { compactionSummary, handleCompaction, transcriptExcerpt, transcriptFilePath, writeTranscriptFile, } from "./compaction.js";
9
9
  import { renderTranscript, sessionInfoToMessages } from "./transcripts.js";
10
10
  import { readTranscript, searchTranscripts } from "./session-search.js";
11
+ import { collectTranscripts, effectiveLastTouch, formatSweepResult, sweepTranscripts, } from "./transcript-retention.js";
11
12
  const textPart = (text) => ({ type: "text", text });
12
13
  /** Reconnect backoff for the v2 event stream: short first retry, capped growth. */
13
14
  const RECONNECT_MIN_MS = 250;
@@ -121,6 +122,27 @@ export const MemoryV2 = Plugin.define({
121
122
  await ctx.session.prompt({ sessionID, text, delivery });
122
123
  },
123
124
  });
125
+ editor.add({
126
+ name: "memory-cleanup",
127
+ description: "Sweep exported session transcripts per the retention policy (dry run by default): " +
128
+ "report eligible files, then remove when confirmed.",
129
+ execute: async ({ sessionID, prompt, delivery }) => {
130
+ const arg = prompt.text.trim().toLowerCase();
131
+ const dryRun = arg !== "apply" && arg !== "run" && arg !== "yes";
132
+ const result = sweepTranscripts(retrieval.dir, {
133
+ retentionDays: retrieval.retentionDays,
134
+ keepRecent: retrieval.keepRecent,
135
+ maxSessions: retrieval.maxSessions,
136
+ scope: projectScope,
137
+ protectedSessionID: sessionID,
138
+ dryRun,
139
+ now: Date.now(),
140
+ });
141
+ const text = `${dryRun ? "dry run (pass 'apply' to delete)" : "applied"}\n` +
142
+ formatSweepResult(result, dryRun);
143
+ await ctx.session.prompt({ sessionID, text, delivery });
144
+ },
145
+ });
124
146
  });
125
147
  }
126
148
  await ctx.tool.transform((editor) => {
@@ -321,6 +343,163 @@ export const MemoryV2 = Plugin.define({
321
343
  };
322
344
  },
323
345
  });
346
+ editor.add({
347
+ name: "memory_transcript_list",
348
+ description: "List exported session transcripts with scope, size, age and last-touch time, " +
349
+ "so storage usage is visible before any cleanup.",
350
+ input: {
351
+ type: "object",
352
+ properties: {
353
+ all: {
354
+ type: "boolean",
355
+ description: "List every project's transcripts on this machine, not just this project's",
356
+ },
357
+ scope: { type: "string", description: "Limit to one scope key" },
358
+ },
359
+ additionalProperties: false,
360
+ },
361
+ async execute(args) {
362
+ const a = args;
363
+ const entries = collectTranscripts(retrieval.dir);
364
+ const filtered = a.all === true
365
+ ? entries
366
+ : a.scope
367
+ ? entries.filter((e) => e.scope === a.scope)
368
+ : entries.filter((e) => e.scope === projectScope);
369
+ const now = Date.now();
370
+ const rows = filtered
371
+ .map((e) => ({
372
+ scope: e.scope,
373
+ sessionID: e.sessionID,
374
+ bytes: e.size,
375
+ ageDays: Math.max(0, Math.floor((now - effectiveLastTouch(e)) / (24 * 60 * 60 * 1000))),
376
+ lastTouch: new Date(effectiveLastTouch(e)).toISOString(),
377
+ }))
378
+ .sort((x, y) => y.ageDays - x.ageDays || x.sessionID.localeCompare(y.sessionID));
379
+ // Keep output bounded.
380
+ const capped = rows.slice(0, 200);
381
+ return {
382
+ content: JSON.stringify({
383
+ total: rows.length,
384
+ shown: capped.length,
385
+ transcripts: capped,
386
+ }, null, 2),
387
+ };
388
+ },
389
+ });
390
+ editor.add({
391
+ name: "memory_transcript_cleanup",
392
+ description: "Sweep exported session transcripts per the retention policy. Defaults to a dry run " +
393
+ "(report only). Pass apply:true to actually remove. retentionDays/keepRecent/maxSessions " +
394
+ "override the configured policy for this call; sessionIDs limits the sweep to those sessions.",
395
+ input: {
396
+ type: "object",
397
+ properties: {
398
+ dryRun: { type: "boolean", description: "Report only, do not delete (default true)" },
399
+ apply: { type: "boolean", description: "Actually remove eligible transcripts" },
400
+ allScopes: {
401
+ type: "boolean",
402
+ description: "Sweep every project's transcripts, not just this project's",
403
+ },
404
+ sessionIDs: {
405
+ type: "array",
406
+ items: { type: "string" },
407
+ description: "Limit the sweep to these session ids",
408
+ },
409
+ retentionDays: { type: "number", description: "Override configured retention days" },
410
+ keepRecent: { type: "number", description: "Override configured keepRecent floor" },
411
+ maxSessions: { type: "number", description: "Override configured maxSessions cap" },
412
+ },
413
+ additionalProperties: false,
414
+ },
415
+ async execute(args, context) {
416
+ const a = args;
417
+ const dryRun = a.apply === true ? false : a.dryRun !== false;
418
+ // When sessionIDs provided, treat as targeted: disable age/cap triggers by setting
419
+ // retentionDays 0 and maxSessions 0, but force those specific ids as candidates by
420
+ // a separate path. Simpler: sweep all then filter candidates to the requested ids.
421
+ const targeted = !!(a.sessionIDs && a.sessionIDs.length > 0);
422
+ // Targeted mode must never let the policy sweep delete unrelated transcripts:
423
+ // run the policy pass as a dry run, then delete only the explicitly requested ids.
424
+ const sweepDryRun = dryRun || targeted;
425
+ const result = sweepTranscripts(retrieval.dir, {
426
+ retentionDays: a.retentionDays !== undefined
427
+ ? a.retentionDays
428
+ : targeted
429
+ ? 1
430
+ : retrieval.retentionDays,
431
+ keepRecent: a.keepRecent !== undefined ? a.keepRecent : targeted ? 0 : retrieval.keepRecent,
432
+ maxSessions: a.maxSessions !== undefined ? a.maxSessions : targeted ? 0 : retrieval.maxSessions,
433
+ scope: a.allScopes === true ? undefined : projectScope,
434
+ protectedSessionID: context.sessionID,
435
+ dryRun: sweepDryRun,
436
+ now: Date.now(),
437
+ });
438
+ // Targeted filter.
439
+ let filtered = result;
440
+ if (a.sessionIDs && a.sessionIDs.length > 0) {
441
+ const wanted = new Set(a.sessionIDs);
442
+ const cand = result.candidates.filter((c) => wanted.has(c.sessionID));
443
+ // If targeted, mark all requested (existing) as candidates regardless of age.
444
+ // Rebuild candidates from collected entries for requested ids not already eligible.
445
+ let entries = collectTranscripts(retrieval.dir);
446
+ if (a.allScopes !== true) {
447
+ entries = entries.filter((e) => e.scope === projectScope);
448
+ }
449
+ const extra = [];
450
+ for (const e of entries) {
451
+ if (!wanted.has(e.sessionID))
452
+ continue;
453
+ if (cand.some((c) => c.path === e.path))
454
+ continue;
455
+ if (e.sessionID === context.sessionID)
456
+ continue;
457
+ extra.push({
458
+ path: e.path,
459
+ scope: e.scope,
460
+ sessionID: e.sessionID,
461
+ reason: "targeted",
462
+ bytes: e.size,
463
+ ageDays: Math.max(0, Math.floor((Date.now() - effectiveLastTouch(e)) / (24 * 60 * 60 * 1000))),
464
+ });
465
+ }
466
+ const allCand = [...cand, ...extra];
467
+ // Apply deletion for targeted if not dryRun.
468
+ const removed = [];
469
+ const errors = [];
470
+ let bytesFreed = 0;
471
+ if (!dryRun) {
472
+ for (const c of allCand) {
473
+ try {
474
+ unlinkSync(c.path);
475
+ removed.push(c);
476
+ bytesFreed += c.bytes;
477
+ }
478
+ catch (err) {
479
+ errors.push(`${c.path}: ${err instanceof Error ? err.message : String(err)}`);
480
+ }
481
+ }
482
+ }
483
+ filtered = {
484
+ candidates: allCand,
485
+ removed: dryRun ? [] : removed,
486
+ kept: result.kept,
487
+ bytesFreed: dryRun ? 0 : bytesFreed,
488
+ errors,
489
+ };
490
+ }
491
+ // Scope filtering for allScopes=false (default): only current project scope.
492
+ if (!a.allScopes && !(a.sessionIDs && a.sessionIDs.length > 0)) {
493
+ // Already swept all scopes in sweepTranscripts (it walks all). Restrict results to projectScope.
494
+ filtered = {
495
+ ...filtered,
496
+ candidates: filtered.candidates.filter((c) => c.scope === projectScope),
497
+ removed: filtered.removed.filter((c) => c.scope === projectScope),
498
+ };
499
+ }
500
+ return { content: formatSweepResult(filtered, dryRun) };
501
+ },
502
+ });
324
503
  });
325
504
  // The v1 system transform maps to the v2 context hook: guidance first, then the
326
505
  // once-per-session inventory.
@@ -367,7 +546,51 @@ export const MemoryV2 = Plugin.define({
367
546
  catch {
368
547
  // Silent fallback to the documented summary flow.
369
548
  }
549
+ // Opportunistic retention sweep after an export: cheap, local, never blocks compaction.
550
+ if (retrieval.retentionDays > 0 || retrieval.maxSessions > 0) {
551
+ try {
552
+ sweepTranscripts(retrieval.dir, {
553
+ retentionDays: retrieval.retentionDays,
554
+ keepRecent: retrieval.keepRecent,
555
+ maxSessions: retrieval.maxSessions,
556
+ scope: projectScope,
557
+ protectedSessionID: event.sessionID,
558
+ dryRun: false,
559
+ now: Date.now(),
560
+ });
561
+ }
562
+ catch {
563
+ // Sweep failures are environmental; never affect compaction.
564
+ }
565
+ }
370
566
  });
567
+ // Optional, delayed retention sweep: opt-in (retentionDays > 0), never blocks startup,
568
+ // and never runs during the first 30s so it does not compete with session init.
569
+ if (retrieval.enabled &&
570
+ retrieval.autoSweep &&
571
+ (retrieval.retentionDays > 0 || retrieval.maxSessions > 0)) {
572
+ const timer = setTimeout(() => {
573
+ if (disposed) {
574
+ return;
575
+ }
576
+ try {
577
+ sweepTranscripts(retrieval.dir, {
578
+ retentionDays: retrieval.retentionDays,
579
+ keepRecent: retrieval.keepRecent,
580
+ maxSessions: retrieval.maxSessions,
581
+ scope: projectScope,
582
+ dryRun: false,
583
+ now: Date.now(),
584
+ });
585
+ }
586
+ catch {
587
+ // Environmental; ignore.
588
+ }
589
+ }, 30_000);
590
+ if (typeof timer.unref === "function") {
591
+ timer.unref();
592
+ }
593
+ }
371
594
  const cleanup = async () => {
372
595
  disposed = true;
373
596
  injected.reset();
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-v2.js","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-v2.js","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /** One transcript file discovered on disk, with the stats needed for retention decisions. */
2
+ export type TranscriptEntry = {
3
+ path: string;
4
+ scope: string;
5
+ sessionID: string;
6
+ mtimeMs: number;
7
+ atimeMs: number;
8
+ size: number;
9
+ };
10
+ export type TranscriptCandidate = {
11
+ path: string;
12
+ scope: string;
13
+ sessionID: string;
14
+ reason: string;
15
+ bytes: number;
16
+ ageDays: number;
17
+ };
18
+ export type SweepOptions = {
19
+ /** Limit the sweep to one scope (project). Unset sweeps every scope on disk. */
20
+ scope?: string | undefined;
21
+ /** Epoch ms "now". Defaults to Date.now(). */
22
+ now?: number;
23
+ /** Delete transcripts older than this many days. 0 (default) disables age-based deletion. */
24
+ retentionDays?: number;
25
+ /** Always keep this many newest transcripts per scope, regardless of age. Default 10. */
26
+ keepRecent?: number;
27
+ /** Hard cap on transcripts per scope (newest kept). 0 (default) disables the cap. */
28
+ maxSessions?: number;
29
+ /** Session id that must never be deleted (the active session). */
30
+ protectedSessionID?: string;
31
+ /** When true, report candidates without deleting. Default false. */
32
+ dryRun?: boolean;
33
+ };
34
+ export type SweepResult = {
35
+ candidates: TranscriptCandidate[];
36
+ removed: TranscriptCandidate[];
37
+ kept: number;
38
+ bytesFreed: number;
39
+ errors: string[];
40
+ };
41
+ /** Last touch = most recent of access or modification. Falls back to modification when
42
+ * atime is unavailable (noatime mounts) or invalid. */
43
+ export declare function effectiveLastTouch(stat: {
44
+ mtimeMs: number;
45
+ atimeMs: number;
46
+ }): number;
47
+ /** Walk every scope directory and return one entry per regular .md transcript file. */
48
+ export declare function collectTranscripts(dir: string): TranscriptEntry[];
49
+ /** Determine which transcripts are eligible for removal under the given policy. Never
50
+ * mutates disk unless `dryRun` is false. Returns the candidate list (plus removal
51
+ * results when applied) so callers can report and audit. */
52
+ export declare function sweepTranscripts(dir: string, options?: SweepOptions): SweepResult;
53
+ /** Human-readable summary of a sweep result, bounded so it never floods the context. */
54
+ export declare function formatSweepResult(result: SweepResult, dryRun: boolean): string;
55
+ //# sourceMappingURL=transcript-retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-retention.d.ts","sourceRoot":"","sources":["../src/transcript-retention.ts"],"names":[],"mappings":"AAGA,6FAA6F;AAC7F,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAIF;uDACuD;AACvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIrF;AAUD,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAyDjE;AAED;;4DAE4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CA8FrF;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CA4B9E"}
@@ -0,0 +1,199 @@
1
+ import { lstatSync, readdirSync, statSync, unlinkSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ const MS_PER_DAY = 24 * 60 * 60 * 1000;
4
+ /** Last touch = most recent of access or modification. Falls back to modification when
5
+ * atime is unavailable (noatime mounts) or invalid. */
6
+ export function effectiveLastTouch(stat) {
7
+ const atime = Number.isFinite(stat.atimeMs) ? stat.atimeMs : 0;
8
+ const mtime = Number.isFinite(stat.mtimeMs) ? stat.mtimeMs : 0;
9
+ return Math.max(atime, mtime, 0);
10
+ }
11
+ function isRegularFile(path) {
12
+ try {
13
+ return lstatSync(path).isFile();
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }
19
+ /** Walk every scope directory and return one entry per regular .md transcript file. */
20
+ export function collectTranscripts(dir) {
21
+ const out = [];
22
+ let scopeEntries;
23
+ try {
24
+ scopeEntries = readdirSync(dir, { withFileTypes: true });
25
+ }
26
+ catch {
27
+ return out;
28
+ }
29
+ for (const entry of (scopeEntries ?? [])) {
30
+ if (!entry.isDirectory()) {
31
+ continue;
32
+ }
33
+ let scope;
34
+ try {
35
+ scope = decodeURIComponent(entry.name);
36
+ }
37
+ catch {
38
+ scope = entry.name;
39
+ }
40
+ const scopeDirPath = join(dir, entry.name);
41
+ let names;
42
+ try {
43
+ names = readdirSync(scopeDirPath);
44
+ }
45
+ catch {
46
+ continue;
47
+ }
48
+ for (const name of names) {
49
+ if (!name.endsWith(".md")) {
50
+ continue;
51
+ }
52
+ const path = join(scopeDirPath, name);
53
+ if (!isRegularFile(path)) {
54
+ continue;
55
+ }
56
+ let stat;
57
+ try {
58
+ stat = statSync(path);
59
+ }
60
+ catch {
61
+ // Stat failure: treat as unknown and preserve (do not collect for deletion).
62
+ continue;
63
+ }
64
+ let sessionID;
65
+ try {
66
+ sessionID = decodeURIComponent(name.slice(0, -".md".length));
67
+ }
68
+ catch {
69
+ sessionID = name.slice(0, -".md".length);
70
+ }
71
+ out.push({
72
+ path,
73
+ scope,
74
+ sessionID,
75
+ mtimeMs: stat.mtimeMs,
76
+ atimeMs: stat.atimeMs,
77
+ size: stat.size,
78
+ });
79
+ }
80
+ }
81
+ return out;
82
+ }
83
+ /** Determine which transcripts are eligible for removal under the given policy. Never
84
+ * mutates disk unless `dryRun` is false. Returns the candidate list (plus removal
85
+ * results when applied) so callers can report and audit. */
86
+ export function sweepTranscripts(dir, options = {}) {
87
+ const now = typeof options.now === "number" && Number.isFinite(options.now) ? options.now : Date.now();
88
+ const retentionDays = typeof options.retentionDays === "number" && options.retentionDays > 0
89
+ ? options.retentionDays
90
+ : 0;
91
+ const keepRecent = Math.max(1, Math.floor(options.keepRecent ?? 10));
92
+ const maxSessions = typeof options.maxSessions === "number" && options.maxSessions > 0
93
+ ? Math.floor(options.maxSessions)
94
+ : 0;
95
+ const protectedID = typeof options.protectedSessionID === "string" && options.protectedSessionID.length > 0
96
+ ? options.protectedSessionID
97
+ : undefined;
98
+ const dryRun = options.dryRun === true;
99
+ let entries = collectTranscripts(dir);
100
+ if (typeof options.scope === "string" && options.scope.length > 0) {
101
+ entries = entries.filter((entry) => entry.scope === options.scope);
102
+ }
103
+ // Group by scope, newest first by effective last touch.
104
+ const byScope = new Map();
105
+ for (const entry of entries) {
106
+ const list = byScope.get(entry.scope);
107
+ if (list) {
108
+ list.push(entry);
109
+ }
110
+ else {
111
+ byScope.set(entry.scope, [entry]);
112
+ }
113
+ }
114
+ const candidates = [];
115
+ for (const [, list] of byScope) {
116
+ const ordered = [...list].sort((a, b) => effectiveLastTouch(b) - effectiveLastTouch(a));
117
+ for (let index = 0; index < ordered.length; index++) {
118
+ const entry = ordered[index];
119
+ if (entry === undefined) {
120
+ continue;
121
+ }
122
+ if (protectedID !== undefined && entry.sessionID === protectedID) {
123
+ continue;
124
+ }
125
+ // Safety floor: never touch the newest `keepRecent`.
126
+ if (index < keepRecent) {
127
+ continue;
128
+ }
129
+ const reasons = [];
130
+ const ageMs = now - effectiveLastTouch(entry);
131
+ const ageDays = Math.max(0, Math.floor(ageMs / MS_PER_DAY));
132
+ if (retentionDays > 0 && ageMs > retentionDays * MS_PER_DAY) {
133
+ reasons.push(`age ${ageDays}d > ${retentionDays}d`);
134
+ }
135
+ if (maxSessions > 0 && index >= maxSessions) {
136
+ reasons.push(`beyond maxSessions ${maxSessions}`);
137
+ }
138
+ if (reasons.length === 0) {
139
+ continue;
140
+ }
141
+ candidates.push({
142
+ path: entry.path,
143
+ scope: entry.scope,
144
+ sessionID: entry.sessionID,
145
+ reason: reasons.join("; "),
146
+ bytes: entry.size,
147
+ ageDays,
148
+ });
149
+ }
150
+ }
151
+ // Oldest first for a readable report.
152
+ candidates.sort((a, b) => a.ageDays - b.ageDays || a.path.localeCompare(b.path));
153
+ const removed = [];
154
+ const errors = [];
155
+ let bytesFreed = 0;
156
+ if (!dryRun) {
157
+ for (const candidate of candidates) {
158
+ try {
159
+ unlinkSync(candidate.path);
160
+ removed.push(candidate);
161
+ bytesFreed += candidate.bytes;
162
+ }
163
+ catch (error) {
164
+ const message = error instanceof Error ? error.message : String(error);
165
+ errors.push(`${candidate.path}: ${message}`);
166
+ }
167
+ }
168
+ }
169
+ const kept = entries.length - (dryRun ? 0 : removed.length);
170
+ return { candidates, removed, kept, bytesFreed, errors };
171
+ }
172
+ /** Human-readable summary of a sweep result, bounded so it never floods the context. */
173
+ export function formatSweepResult(result, dryRun) {
174
+ const lines = [];
175
+ if (dryRun) {
176
+ lines.push(`dry run: ${result.candidates.length} transcript(s) eligible for removal`);
177
+ }
178
+ else {
179
+ lines.push(`removed ${result.removed.length} transcript(s), freed ${result.bytesFreed} bytes`);
180
+ if (result.errors.length > 0) {
181
+ lines.push(`errors: ${result.errors.length}`);
182
+ }
183
+ }
184
+ lines.push(`kept ${result.kept} transcript(s)`);
185
+ const preview = (dryRun ? result.candidates : result.removed).slice(0, 20);
186
+ for (const item of preview) {
187
+ lines.push(`- ${item.scope}/${item.sessionID} (${item.bytes} bytes, ${item.ageDays}d): ${item.reason}`);
188
+ }
189
+ if ((dryRun ? result.candidates : result.removed).length > preview.length) {
190
+ lines.push(`... and ${(dryRun ? result.candidates : result.removed).length - preview.length} more`);
191
+ }
192
+ if (result.errors.length > 0) {
193
+ for (const error of result.errors.slice(0, 10)) {
194
+ lines.push(`! ${error}`);
195
+ }
196
+ }
197
+ return lines.join("\n");
198
+ }
199
+ //# sourceMappingURL=transcript-retention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-retention.js","sourceRoot":"","sources":["../src/transcript-retention.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@log0u7/opencode-memory",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Working memory for OpenCode: shared SQLite store with hybrid search, shared across all sessions on a machine.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",