diff --git a/src/main/ai-vault-search/session-search-scope-entry-points.test.ts b/src/main/ai-vault-search/session-search-scope-entry-points.test.ts index 8e162a2f359..9bce1715d3b 100644 --- a/src/main/ai-vault-search/session-search-scope-entry-points.test.ts +++ b/src/main/ai-vault-search/session-search-scope-entry-points.test.ts @@ -1,6 +1,7 @@ import { afterEach, describe, expect, it } from 'vitest' import { AiVaultHandler } from '../../relay/ai-vault-handler' import type { RelayDispatcher } from '../../relay/dispatcher' +import { createSessionSearchClient } from '../../shared/ai-vault-search-client' import { fakeSearchService } from '../../shared/ai-vault-search-test-fixture' import { searchAllExecutionHosts } from '../ipc/ai-vault-search-all-hosts' import { RpcDispatcher } from '../runtime/rpc/dispatcher' @@ -87,6 +88,20 @@ describe('every search entry point carries the scope identity through', () => { }) }) +describe('the shared remote client', () => { + it('carries the identity out and the acknowledgement back across a transport', async () => { + setSessionSearchService(fakeSearchService()) + installSessionSearchScopeCatalogSource(() => CATALOG) + const client = createSessionSearchClient( + (_method, params) => searchSessionService(params, 'relay'), + 'relay' + ) + expect(await client.searchSessions({ query: 'needle', within: WITHIN })).toMatchObject({ + resolvedWithin: { kind: 'workspace', paths: 1 } + }) + }) +}) + describe('an all-computers merge across mixed host versions', () => { it('drops an old host’s unscoped hits and names it as needing an update', async () => { const response = await searchAllExecutionHosts({ query: 'needle', within: WITHIN }, [ diff --git a/src/main/ai-vault-search/session-search-service-registry.ts b/src/main/ai-vault-search/session-search-service-registry.ts index 5af65187e99..1714f970f5c 100644 --- a/src/main/ai-vault-search/session-search-service-registry.ts +++ b/src/main/ai-vault-search/session-search-service-registry.ts @@ -72,7 +72,7 @@ type ScopedSessionSearch = { * does not know the workspace or project, which is an answer — never a reason to * fall back to searching everything. */ -export function applySessionSearchScope(parsed: AiVaultSearchRequest): ScopedSessionSearch | null { +function applySessionSearchScope(parsed: AiVaultSearchRequest): ScopedSessionSearch | null { const { within, ...request } = parsed if (!within) { return { request }