fix(ai-vault-search): satisfy the preload bridge and Windows-lane teardown ratchets after rebase

main now requires concrete return types on every bridge key and refuses raw
recursive rm in tests that run on the Windows package job.
This commit is contained in:
Jinwoo-H
2026-09-06 04:48:14 -04:00
parent a4c0ca4798
commit 13ecd20b79
3 changed files with 14 additions and 7 deletions
@@ -1,7 +1,8 @@
import { mkdtemp, rm, writeFile } from 'node:fs/promises'
import { mkdtemp, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
import { removeTree } from '../../shared/windows-transient-lock-removal'
import type SyncDatabase from '../sqlite/sync-database'
import { resetSessionParseCacheForTests } from '../ai-vault/session-scanner-parse-cache'
import { registerSessionSearchIndexSink } from '../ai-vault/session-search-capture'
@@ -23,7 +24,7 @@ beforeEach(() => {
afterEach(async () => {
registerSessionSearchIndexSink(null)
await Promise.all(tempRoots.map((root) => rm(root, { recursive: true, force: true })))
await Promise.all(tempRoots.map((root) => removeTree(root)))
tempRoots = []
})
@@ -1,7 +1,8 @@
import { mkdtemp, rm, stat, writeFile } from 'node:fs/promises'
import { mkdtemp, stat, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import { removeTree } from '../../shared/windows-transient-lock-removal'
import type SyncDatabase from '../sqlite/sync-database'
import {
SESSION_SEARCH_SCHEMA_VERSION,
@@ -12,7 +13,7 @@ import {
let roots: string[] = []
afterEach(async () => {
await Promise.all(roots.map((root) => rm(root, { recursive: true, force: true })))
await Promise.all(roots.map((root) => removeTree(root)))
roots = []
})
+8 -3
View File
@@ -11,15 +11,20 @@ import type {
import type { AiVaultSessionTitlesArgs } from '../../shared/ai-vault-session-title'
import type { AiVaultPrepareSessionResumeArgs } from '../../shared/ai-vault-resume-preparation'
import type { PreloadApi } from '../api-types'
import type { AiVaultSearchArgs } from '../../shared/ai-vault-search-types'
import type {
AiVaultSearchArgs,
AiVaultSearchCoverage,
AiVaultSearchResult
} from '../../shared/ai-vault-search-types'
export const aiVaultApi = {
listSessions: (args?: AiVaultListArgs) => ipcRenderer.invoke('aiVault:listSessions', args),
resolveSessionTitles: (args: AiVaultSessionTitlesArgs) =>
ipcRenderer.invoke('aiVault:resolveSessionTitles', args),
searchSessions: (args: AiVaultSearchArgs): Promise<unknown> =>
searchSessions: (args: AiVaultSearchArgs): Promise<AiVaultSearchResult> =>
ipcRenderer.invoke('aiVault:searchSessions', args),
searchCoverage: (): Promise<unknown> => ipcRenderer.invoke('aiVault:searchCoverage'),
searchCoverage: (): Promise<AiVaultSearchCoverage> =>
ipcRenderer.invoke('aiVault:searchCoverage'),
cancelListSessions: (args: { requestToken: string }): Promise<void> =>
ipcRenderer.invoke('aiVault:cancelListSessions', args),
prepareSessionResume: (args: AiVaultPrepareSessionResumeArgs) =>