From 354588e1ab3fe212a7fb4a768a88552e4e5b5c38 Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Thu, 2 Jul 2026 10:07:55 -0500 Subject: [PATCH] feat(ui): add SearchHit type + search() client wrapper (T8.2, FR-SEARCH-1) --- src/lib/api.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lib/api.ts b/src/lib/api.ts index b23491e..2d42198 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -64,6 +64,17 @@ export interface MeetingListItem { status: MeetingStatus; } +// Full-text search hit (Phase 8, FR-SEARCH-1) — same shape as MeetingListItem +// plus a highlighted excerpt of what matched. +export interface SearchHit { + id: MeetingId; + title: string; + started_at: number; + duration_secs: number | null; + status: MeetingStatus; + snippet: string; +} + export interface TranscriptSegment { id: number; start_ms: number; @@ -265,6 +276,9 @@ export const api = { resumeTranscription: (meetingId: MeetingId) => invoke("resume_transcription", { meetingId }), listMeetings: (query?: string) => invoke("list_meetings", { query }), + // Full-text search across transcripts + notes — distinct from listMeetings' + // `query`, which only substring-matches the title. + search: (query: string) => invoke("search", { query }), getMeeting: (meetingId: MeetingId) => invoke("get_meeting", { meetingId }), deleteMeeting: (meetingId: MeetingId) => invoke("delete_meeting", { meetingId }), updateNotes: (meetingId: MeetingId, markdown: string) =>