@claude-flow/memory 3.0.5 → 3.0.7

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.
@@ -80,6 +80,8 @@ export interface ImportResult {
80
80
  imported: number;
81
81
  /** Number of entries skipped (already in AgentDB) */
82
82
  skipped: number;
83
+ /** Number of AgentDB entries deleted because their source heading was removed */
84
+ deleted: number;
83
85
  /** Files processed */
84
86
  files: string[];
85
87
  /** Duration in milliseconds */
@@ -180,8 +182,12 @@ export declare class AutoMemoryBridge extends EventEmitter {
180
182
  private queryRecentInsights;
181
183
  private classifyEntry;
182
184
  private appendToTopicFile;
183
- /** Fetch all existing content hashes from the auto-memory namespace in one query */
184
- private fetchExistingContentHashes;
185
+ /**
186
+ * Fetch all existing auto-memory entries in one query, returning both the
187
+ * content-hash set (dedup-on-import) and a per-source-file key->id index
188
+ * (delete-sync: find entries whose heading no longer exists in the file).
189
+ */
190
+ private fetchExistingAutoMemoryIndex;
185
191
  private startPeriodicSync;
186
192
  }
187
193
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auto-memory-bridge.d.ts","sourceRoot":"","sources":["../src/auto-memory-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-memory-bridge.d.ts","sourceRoot":"","sources":["../src/auto-memory-bridge.ts"],"names":[],"mappings":"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"}
@@ -227,28 +227,52 @@ export class AutoMemoryBridge extends EventEmitter {
227
227
  const startTime = Date.now();
228
228
  const memoryDir = this.config.memoryDir;
229
229
  if (!existsSync(memoryDir)) {
230
- return { imported: 0, skipped: 0, files: [], durationMs: 0 };
230
+ return { imported: 0, skipped: 0, deleted: 0, files: [], durationMs: 0 };
231
231
  }
232
232
  let imported = 0;
233
233
  let skipped = 0;
234
234
  const processedFiles = [];
235
235
  const files = readdirSync(memoryDir).filter(f => f.endsWith('.md'));
236
- // Pre-fetch existing content hashes to avoid N queries
237
- const existingHashes = await this.fetchExistingContentHashes();
238
- // Batch entries for bulk insert
236
+ // Pre-fetch existing content hashes + per-file key->id index to avoid N queries
237
+ const { hashes: existingHashes, byFile: existingByFile } = await this.fetchExistingAutoMemoryIndex();
238
+ // Batch entries for bulk insert / stale ids for bulk delete
239
239
  const batch = [];
240
+ const deleteBatch = [];
240
241
  for (const file of files) {
241
242
  const filePath = path.join(memoryDir, file);
242
- const content = await fs.readFile(filePath, 'utf-8');
243
- const entries = parseMarkdownEntries(content);
243
+ const oldKeysForFile = existingByFile.get(file);
244
+ let content;
245
+ let entries;
246
+ try {
247
+ content = await fs.readFile(filePath, 'utf-8');
248
+ entries = parseMarkdownEntries(content);
249
+ }
250
+ catch (err) {
251
+ // A transient read/parse failure must never be treated as "the file
252
+ // is now empty" — that would delete-sync every entry this file ever
253
+ // wrote. Skip delete-sync for this file only; keep processing the rest.
254
+ this.emit('import:file-error', { file, reason: 'read-failed', error: err });
255
+ continue;
256
+ }
257
+ const newKeysForFile = new Set();
258
+ if (entries.length === 0 && content.trim().length > 0 && oldKeysForFile && oldKeysForFile.size > 0) {
259
+ // Non-empty source parsed to zero entries while AgentDB holds entries
260
+ // for this file already — more likely a parser/encoding edge case
261
+ // than "every heading was really removed." Refuse to delete-sync.
262
+ this.emit('import:delete-skipped', { file, reason: 'suspicious-empty-parse' });
263
+ processedFiles.push(file);
264
+ continue;
265
+ }
244
266
  for (const entry of entries) {
245
267
  const contentHash = hashContent(entry.content);
268
+ const key = `auto-memory:${file}:${entry.heading}`;
269
+ newKeysForFile.add(key);
246
270
  if (existingHashes.has(contentHash)) {
247
271
  skipped++;
248
272
  continue;
249
273
  }
250
274
  const input = {
251
- key: `auto-memory:${file}:${entry.heading}`,
275
+ key,
252
276
  content: entry.content,
253
277
  namespace: 'auto-memory',
254
278
  type: 'semantic',
@@ -256,6 +280,7 @@ export class AutoMemoryBridge extends EventEmitter {
256
280
  metadata: {
257
281
  sourceFile: file,
258
282
  heading: entry.heading,
283
+ memoryDir: this.config.memoryDir,
259
284
  importedAt: new Date().toISOString(),
260
285
  contentHash,
261
286
  },
@@ -264,19 +289,52 @@ export class AutoMemoryBridge extends EventEmitter {
264
289
  existingHashes.add(contentHash);
265
290
  imported++;
266
291
  }
292
+ if (oldKeysForFile) {
293
+ for (const [oldKey, oldId] of oldKeysForFile) {
294
+ if (!newKeysForFile.has(oldKey)) {
295
+ deleteBatch.push(oldId);
296
+ }
297
+ }
298
+ }
267
299
  processedFiles.push(file);
268
300
  }
301
+ // Delete-sync, part 2: a source file removed entirely from disk (not
302
+ // just emptied) is never visited by the loop above, so its entries would
303
+ // otherwise become permanent orphans. `existingByFile` came from AgentDB,
304
+ // independent of the current directory listing, so this is free — no
305
+ // extra query. Same false-wipe concern as the per-file guard: if the
306
+ // directory listing itself looks suspiciously empty against non-trivial
307
+ // prior history, skip rather than treat it as "every file was deleted."
308
+ if (files.length === 0 && existingByFile.size > 0) {
309
+ this.emit('import:delete-skipped', { file: '*', reason: 'suspicious-empty-directory' });
310
+ }
311
+ else {
312
+ const currentFileSet = new Set(files);
313
+ for (const [oldFile, keyIndex] of existingByFile) {
314
+ if (!currentFileSet.has(oldFile)) {
315
+ for (const oldId of keyIndex.values()) {
316
+ deleteBatch.push(oldId);
317
+ }
318
+ }
319
+ }
320
+ }
269
321
  // Bulk insert all at once
270
322
  if (batch.length > 0) {
271
323
  await this.backend.bulkInsert(batch);
272
324
  }
325
+ // Delete-sync: remove entries whose source heading no longer exists.
326
+ let deleted = 0;
327
+ if (deleteBatch.length > 0) {
328
+ deleted = await this.backend.bulkDelete(deleteBatch);
329
+ }
273
330
  // ADR-049: Build knowledge graph from imported entries
274
- if (this.memoryGraph && batch.length > 0) {
331
+ if (this.memoryGraph && (batch.length > 0 || deleted > 0)) {
275
332
  await this.memoryGraph.buildFromBackend(this.backend, 'auto-memory');
276
333
  }
277
334
  const result = {
278
335
  imported,
279
336
  skipped,
337
+ deleted,
280
338
  files: processedFiles,
281
339
  durationMs: Date.now() - startTime,
282
340
  };
@@ -551,8 +609,12 @@ export class AutoMemoryBridge extends EventEmitter {
551
609
  };
552
610
  await this.writeInsightToFiles(insight);
553
611
  }
554
- /** Fetch all existing content hashes from the auto-memory namespace in one query */
555
- async fetchExistingContentHashes() {
612
+ /**
613
+ * Fetch all existing auto-memory entries in one query, returning both the
614
+ * content-hash set (dedup-on-import) and a per-source-file key->id index
615
+ * (delete-sync: find entries whose heading no longer exists in the file).
616
+ */
617
+ async fetchExistingAutoMemoryIndex() {
556
618
  try {
557
619
  const entries = await this.backend.query({
558
620
  type: 'hybrid',
@@ -560,15 +622,33 @@ export class AutoMemoryBridge extends EventEmitter {
560
622
  limit: 10_000,
561
623
  });
562
624
  const hashes = new Set();
625
+ const byFile = new Map();
563
626
  for (const entry of entries) {
564
627
  const hash = entry.metadata?.contentHash;
565
628
  if (hash)
566
629
  hashes.add(hash);
630
+ // Delete-sync eligibility is scoped to entries written by THIS
631
+ // memoryDir. The same backend can be shared across multiple memory
632
+ // dirs (e.g. the SessionStart hook's main dir vs. a worktree dir
633
+ // from worktreeMemoryDir()) — without this check, importing one dir
634
+ // would see the other dir's same-named file/heading as "gone" and
635
+ // delete it. Legacy entries written before this field existed have
636
+ // no `memoryDir` and are therefore never delete-sync eligible.
637
+ const sourceFile = entry.metadata?.sourceFile;
638
+ const entryMemoryDir = entry.metadata?.memoryDir;
639
+ if (sourceFile && entry.key && entry.id && entryMemoryDir === this.config.memoryDir) {
640
+ let fileIndex = byFile.get(sourceFile);
641
+ if (!fileIndex) {
642
+ fileIndex = new Map();
643
+ byFile.set(sourceFile, fileIndex);
644
+ }
645
+ fileIndex.set(entry.key, entry.id);
646
+ }
567
647
  }
568
- return hashes;
648
+ return { hashes, byFile };
569
649
  }
570
650
  catch {
571
- return new Set();
651
+ return { hashes: new Set(), byFile: new Map() };
572
652
  }
573
653
  }
574
654
  startPeriodicSync() {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-memory-bridge.js","sourceRoot":"","sources":["../src/auto-memory-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-memory-bridge.js","sourceRoot":"","sources":["../src/auto-memory-bridge.ts"],"names":[],"mappings":"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"}
@@ -798,6 +798,189 @@ Already in DB
798
798
  expect(result.files).toContain('empty.md');
799
799
  });
800
800
  });
801
+ describe('importFromAutoMemory - delete-sync (Dream Cycle 2026-10-13)', () => {
802
+ // #4080 (2026-10-12) flagged importFromAutoMemory() as additive-only: it
803
+ // never deletes an AgentDB entry whose source heading was removed from
804
+ // the markdown file. These tests are the baseline-fails/candidate-passes
805
+ // discriminating set for that fix.
806
+ it('deletes the AgentDB entry for a heading removed from its source file', async () => {
807
+ backend.query.mockResolvedValue([
808
+ {
809
+ id: 'old-1',
810
+ key: 'auto-memory:test.md:Old',
811
+ metadata: { sourceFile: 'test.md', heading: 'Old', memoryDir: testDir, contentHash: 'stale-hash' },
812
+ },
813
+ ]);
814
+ backend.bulkDelete.mockImplementation(async (ids) => ids.length);
815
+ fsSync.writeFileSync(path.join(testDir, 'test.md'), '## New\nNew content\n', 'utf-8');
816
+ const result = await bridge.importFromAutoMemory();
817
+ expect(backend.bulkDelete).toHaveBeenCalledWith(['old-1']);
818
+ expect(result.deleted).toBe(1);
819
+ });
820
+ it('does not delete an entry for an unchanged heading (no-op case)', async () => {
821
+ backend.query.mockResolvedValue([
822
+ {
823
+ id: 'x-1',
824
+ key: 'auto-memory:same.md:Keep',
825
+ metadata: { sourceFile: 'same.md', heading: 'Keep', memoryDir: testDir, contentHash: hashContent('Keep me') },
826
+ },
827
+ ]);
828
+ fsSync.writeFileSync(path.join(testDir, 'same.md'), '## Keep\nKeep me\n', 'utf-8');
829
+ const result = await bridge.importFromAutoMemory();
830
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
831
+ expect(result.deleted).toBe(0);
832
+ });
833
+ it('scopes deletion per source file — a same-named heading in another file is untouched', async () => {
834
+ backend.query.mockResolvedValue([
835
+ {
836
+ id: 'a-1',
837
+ key: 'auto-memory:a.md:Shared',
838
+ metadata: { sourceFile: 'a.md', heading: 'Shared', memoryDir: testDir, contentHash: hashContent('Content A') },
839
+ },
840
+ {
841
+ id: 'b-1',
842
+ key: 'auto-memory:b.md:Shared',
843
+ metadata: { sourceFile: 'b.md', heading: 'Shared', memoryDir: testDir, contentHash: 'stale-b-hash' },
844
+ },
845
+ ]);
846
+ backend.bulkDelete.mockImplementation(async (ids) => ids.length);
847
+ // a.md keeps its '## Shared' heading; b.md's was removed.
848
+ fsSync.writeFileSync(path.join(testDir, 'a.md'), '## Shared\nContent A\n', 'utf-8');
849
+ fsSync.writeFileSync(path.join(testDir, 'b.md'), '## Other\nContent B\n', 'utf-8');
850
+ const result = await bridge.importFromAutoMemory();
851
+ expect(backend.bulkDelete).toHaveBeenCalledWith(['b-1']);
852
+ expect(result.deleted).toBe(1);
853
+ });
854
+ it('refuses to delete-sync when a non-empty file parses to zero entries (guards against a false full wipe)', async () => {
855
+ backend.query.mockResolvedValue([
856
+ {
857
+ id: 'ghost-1',
858
+ key: 'auto-memory:ghost.md:Something',
859
+ metadata: { sourceFile: 'ghost.md', heading: 'Something', memoryDir: testDir, contentHash: 'h' },
860
+ },
861
+ ]);
862
+ // Frontmatter-only file: non-empty raw content, but the body parses to
863
+ // zero entries (no '##' headings, nothing left after trimming).
864
+ fsSync.writeFileSync(path.join(testDir, 'ghost.md'), '---\nname: ghost\n---\n\n', 'utf-8');
865
+ let skipEvent;
866
+ bridge.on('import:delete-skipped', (e) => { skipEvent = e; });
867
+ const result = await bridge.importFromAutoMemory();
868
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
869
+ expect(result.deleted).toBe(0);
870
+ expect(skipEvent).toEqual({ file: 'ghost.md', reason: 'suspicious-empty-parse' });
871
+ });
872
+ it('catches a per-file read failure without deleting that file\'s entries or aborting the rest of the batch', async () => {
873
+ // A directory named *.md matches the readdirSync filter but throws
874
+ // EISDIR on readFile — a read failure that is NOT permission-dependent
875
+ // (unlike chmod, which no-ops when the test runner is root).
876
+ // Pre-seed an existing entry for 'broken.md' itself, so "doesn't delete
877
+ // that file's entries" is actually exercised rather than vacuously true
878
+ // (adversarial critic finding: the prior version of this test had no
879
+ // old entries for broken.md, so the bulkDelete-not-called assertion
880
+ // would have passed even without the catch block).
881
+ backend.query.mockResolvedValue([
882
+ {
883
+ id: 'broken-1',
884
+ key: 'auto-memory:broken.md:Stale',
885
+ metadata: { sourceFile: 'broken.md', heading: 'Stale', memoryDir: testDir, contentHash: 'h' },
886
+ },
887
+ ]);
888
+ fsSync.mkdirSync(path.join(testDir, 'broken.md'));
889
+ fsSync.writeFileSync(path.join(testDir, 'good.md'), '## Still Here\nContent\n', 'utf-8');
890
+ let errorEvent;
891
+ bridge.on('import:file-error', (e) => { errorEvent = e; });
892
+ const result = await bridge.importFromAutoMemory();
893
+ expect(errorEvent).toBeDefined();
894
+ expect(errorEvent.file).toBe('broken.md');
895
+ expect(result.files).toContain('good.md');
896
+ expect(result.files).not.toContain('broken.md');
897
+ // broken.md IS still present on disk (as a directory) — it's just
898
+ // unreadable — so it must NOT be treated as "removed from disk" either.
899
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
900
+ });
901
+ it('deletes all of a source file\'s entries when the file is removed entirely from disk (not just emptied)', async () => {
902
+ backend.query.mockResolvedValue([
903
+ {
904
+ id: 'gone-1',
905
+ key: 'auto-memory:vanished.md:A',
906
+ metadata: { sourceFile: 'vanished.md', heading: 'A', memoryDir: testDir, contentHash: 'h1' },
907
+ },
908
+ {
909
+ id: 'gone-2',
910
+ key: 'auto-memory:vanished.md:B',
911
+ metadata: { sourceFile: 'vanished.md', heading: 'B', memoryDir: testDir, contentHash: 'h2' },
912
+ },
913
+ {
914
+ id: 'kept-1',
915
+ key: 'auto-memory:present.md:C',
916
+ metadata: { sourceFile: 'present.md', heading: 'C', memoryDir: testDir, contentHash: hashContent('still here') },
917
+ },
918
+ ]);
919
+ backend.bulkDelete.mockImplementation(async (ids) => ids.length);
920
+ // Only present.md exists on disk this run; vanished.md was deleted.
921
+ fsSync.writeFileSync(path.join(testDir, 'present.md'), '## C\nstill here\n', 'utf-8');
922
+ const result = await bridge.importFromAutoMemory();
923
+ const deletedIds = backend.bulkDelete.mock.calls[0][0];
924
+ expect(new Set(deletedIds)).toEqual(new Set(['gone-1', 'gone-2']));
925
+ expect(result.deleted).toBe(2);
926
+ });
927
+ it('refuses the whole-file-removed delete-sync when the memory dir looks suspiciously empty', async () => {
928
+ backend.query.mockResolvedValue([
929
+ {
930
+ id: 'x-1',
931
+ key: 'auto-memory:a.md:Heading',
932
+ metadata: { sourceFile: 'a.md', heading: 'Heading', memoryDir: testDir, contentHash: 'h' },
933
+ },
934
+ ]);
935
+ // No .md files written to testDir at all this run.
936
+ let skipEvent;
937
+ bridge.on('import:delete-skipped', (e) => { skipEvent = e; });
938
+ const result = await bridge.importFromAutoMemory();
939
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
940
+ expect(result.deleted).toBe(0);
941
+ expect(skipEvent).toEqual({ file: '*', reason: 'suspicious-empty-directory' });
942
+ });
943
+ it('scopes delete-sync to this memoryDir — an entry written by a different memoryDir sharing the same backend is untouched (review finding)', async () => {
944
+ // The same backend can be shared across multiple memory dirs — e.g. the
945
+ // SessionStart hook's main dir vs. a worktree dir from
946
+ // worktreeMemoryDir(). Importing one dir must never treat the other
947
+ // dir's same-named file/heading as "gone" and delete it.
948
+ backend.query.mockResolvedValue([
949
+ {
950
+ id: 'other-dir-1',
951
+ key: 'auto-memory:shared.md:Heading',
952
+ metadata: {
953
+ sourceFile: 'shared.md',
954
+ heading: 'Heading',
955
+ memoryDir: '/some/other/worktree/memory/dir',
956
+ contentHash: 'h',
957
+ },
958
+ },
959
+ ]);
960
+ // testDir has no 'shared.md' at all — if the other dir's entry were
961
+ // eligible, both the per-file diff and the whole-file-removed pass
962
+ // would delete it.
963
+ fsSync.writeFileSync(path.join(testDir, 'present.md'), '## Still Here\nContent\n', 'utf-8');
964
+ const result = await bridge.importFromAutoMemory();
965
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
966
+ expect(result.deleted).toBe(0);
967
+ });
968
+ it('a legacy entry with no recorded memoryDir is never delete-sync eligible', async () => {
969
+ backend.query.mockResolvedValue([
970
+ {
971
+ id: 'legacy-1',
972
+ key: 'auto-memory:legacy.md:Old',
973
+ metadata: { sourceFile: 'legacy.md', heading: 'Old', contentHash: 'h' }, // no memoryDir field
974
+ },
975
+ ]);
976
+ // legacy.md is absent from disk — it would read as "removed from disk"
977
+ // if the legacy entry were eligible for delete-sync.
978
+ fsSync.writeFileSync(path.join(testDir, 'present.md'), '## Still Here\nContent\n', 'utf-8');
979
+ const result = await bridge.importFromAutoMemory();
980
+ expect(backend.bulkDelete).not.toHaveBeenCalled();
981
+ expect(result.deleted).toBe(0);
982
+ });
983
+ });
801
984
  describe('curateIndex - edge cases', () => {
802
985
  it('should skip index write when topic files have no extractable summaries', async () => {
803
986
  // #1556: curateIndex must be non-destructive when there's nothing to