From 1713e0d5774068118b7a63fe5487ac2567032000 Mon Sep 17 00:00:00 2001 From: digua Date: Sun, 12 Jul 2026 14:43:08 +0800 Subject: [PATCH] fix(insight): remove session facts on deletion --- packages/node-runtime/src/database-manager.ts | 2 ++ .../services/adapters/database-manager-adapter.test.ts | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/packages/node-runtime/src/database-manager.ts b/packages/node-runtime/src/database-manager.ts index e59a468e..d074aa45 100644 --- a/packages/node-runtime/src/database-manager.ts +++ b/packages/node-runtime/src/database-manager.ts @@ -28,6 +28,7 @@ import { } from './migrations' import { tokenizeForFts } from './nlp/fts-tokenizer' import { getContactsFactsCacheDir } from './services/contacts/paths' +import { getGlobalInsightFactsCacheDir } from './services/global-insight/paths' import { getPeopleRelationshipsFactsCacheDir } from './services/people/relationships/paths' function createMigrationDeps(overrides?: MigrationDeps): MigrationDeps { @@ -249,6 +250,7 @@ export class DatabaseManager { deleteSessionCache(sessionId, cacheDir) deleteSessionCache(sessionId, path.join(cacheDir, 'query')) deleteSessionCache(sessionId, getContactsFactsCacheDir(this.pathProvider.getUserDataDir())) + deleteSessionCache(sessionId, getGlobalInsightFactsCacheDir(this.pathProvider.getUserDataDir())) deleteSessionCache(sessionId, getPeopleRelationshipsFactsCacheDir(this.pathProvider.getUserDataDir())) return existed } diff --git a/packages/node-runtime/src/services/adapters/database-manager-adapter.test.ts b/packages/node-runtime/src/services/adapters/database-manager-adapter.test.ts index 80b70a83..f0b2b3ed 100644 --- a/packages/node-runtime/src/services/adapters/database-manager-adapter.test.ts +++ b/packages/node-runtime/src/services/adapters/database-manager-adapter.test.ts @@ -7,6 +7,7 @@ import type { PathProvider } from '@openchatlab/core' import { DatabaseManager } from '../../database-manager' import { createDatabaseManagerAdapter } from './database-manager-adapter' import { getContactsFactsCacheDir } from '../contacts/paths' +import { getGlobalInsightFactsCacheDir } from '../global-insight/paths' function makeTempDir(): string { const baseDir = fs.existsSync('/private/tmp') ? '/private/tmp' : os.tmpdir() @@ -47,12 +48,18 @@ test('DatabaseManager adapter deletes session database sidecar files and caches' getContactsFactsCacheDir(pathProvider.getUserDataDir()), `${sessionId}.cache.json` ) + const globalInsightFactsCachePath = path.join( + getGlobalInsightFactsCacheDir(pathProvider.getUserDataDir()), + `${sessionId}.cache.json` + ) fs.mkdirSync(path.dirname(cachePath), { recursive: true }) fs.mkdirSync(path.dirname(queryCachePath), { recursive: true }) fs.mkdirSync(path.dirname(contactsFactsCachePath), { recursive: true }) + fs.mkdirSync(path.dirname(globalInsightFactsCachePath), { recursive: true }) fs.writeFileSync(cachePath, '{}', 'utf-8') fs.writeFileSync(queryCachePath, '{}', 'utf-8') fs.writeFileSync(contactsFactsCachePath, '{}', 'utf-8') + fs.writeFileSync(globalInsightFactsCachePath, '{}', 'utf-8') assert.equal(adapter.deleteSessionFile(sessionId), true) assert.equal(fs.existsSync(dbPath), false) @@ -61,4 +68,5 @@ test('DatabaseManager adapter deletes session database sidecar files and caches' assert.equal(fs.existsSync(cachePath), false) assert.equal(fs.existsSync(queryCachePath), false) assert.equal(fs.existsSync(contactsFactsCachePath), false) + assert.equal(fs.existsSync(globalInsightFactsCachePath), false) })