fix(insight): remove session facts on deletion

This commit is contained in:
digua committed 2026-07-12 15:29:09 +08:00
1 parent f198b41bdb
commit 1713e0d577
2 files changed
+10

No files matched your search

@@ -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
}
@@ -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)
})