fix(epg): let the guide return catch-up to live and normalise programme-search rows

The guide source contract gains an optional livePlayback signal: while the
host plays a catch-up URL, the active row may be activated again, which is
how the M3U host returns to live. EPG_DB_SEARCH_PROGRAMS now maps the raw
snake_case rows to the EpgProgram shape the bridge promises (plus the joined
channel name), so search hits resolve their channel and keep descriptions.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 committed 2026-09-06 17:36:55 +02:00
1 parent c00ebe69a2
commit c15598b33f
10 files changed
+128 -9

No files matched your search

@@ -357,6 +357,11 @@ export interface ElectronBridgeEpgMapping {
playlistId: string | null;
}
/** A programme-search hit: the programme plus the XMLTV channel's display name. */
export interface ElectronBridgeEpgSearchProgram extends EpgProgram {
channelName: string | null;
}
export interface ElectronBridgeEpgSearchResult {
id: string;
displayName: string;
@@ -830,7 +835,7 @@ export interface ElectronBridgeApi {
searchEpgPrograms: (
searchTerm: string,
limit?: number
) => Promise<EpgProgram[]>;
) => Promise<ElectronBridgeEpgSearchProgram[]>;
// EPG channel mapping (manual user overrides)
getEpgMapping: (