feat(ui): add SearchHit type + search() client wrapper (T8.2, FR-SEARCH-1)
This commit is contained in:
@@ -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<void>("resume_transcription", { meetingId }),
|
||||
listMeetings: (query?: string) => invoke<MeetingListItem[]>("list_meetings", { query }),
|
||||
// Full-text search across transcripts + notes — distinct from listMeetings'
|
||||
// `query`, which only substring-matches the title.
|
||||
search: (query: string) => invoke<SearchHit[]>("search", { query }),
|
||||
getMeeting: (meetingId: MeetingId) => invoke<Meeting>("get_meeting", { meetingId }),
|
||||
deleteMeeting: (meetingId: MeetingId) => invoke<void>("delete_meeting", { meetingId }),
|
||||
updateNotes: (meetingId: MeetingId, markdown: string) =>
|
||||
|
||||
Reference in New Issue
Block a user