Merge remote-tracking branch 'origin/main' into add-hachidori-backend

This commit is contained in:
sudacode committed 2026-09-29 18:49:49 -07:00
commit f00b830054
32 files changed
+1122 -117

No files matched your search

+31 -1
View File
@@ -99,6 +99,7 @@ import type {
ControllerConfigUpdate,
ControllerPreferenceUpdate,
ResolvedControllerConfig,
SessionHelpOpenPayload,
SessionNumericSelectionStartPayload,
SubtitleMiningContext,
YoutubePickerOpenPayload,
@@ -109,6 +110,7 @@ import type {
ChangelogSnapshot,
MediaTimingReviewActionResult,
MediaTimingReviewOpenPayload,
MediaTimingReviewPreviewPosition,
MediaTimingReviewPreviewRequest,
MediaTimingReviewResolveRequest,
MediaTimingReviewFrameRequest,
@@ -214,7 +216,15 @@ function createLatestValueIpcListenerWithPayload<T>(
}
const onOpenRuntimeOptionsEvent = createQueuedIpcListener(IPC_CHANNELS.event.runtimeOptionsOpen);
const onOpenSessionHelpEvent = createQueuedIpcListener(IPC_CHANNELS.event.sessionHelpOpen);
const onOpenSessionHelpEvent = createQueuedIpcListenerWithPayload<SessionHelpOpenPayload>(
IPC_CHANNELS.event.sessionHelpOpen,
(payload) => ({
commandsEnabled:
typeof payload === 'object' &&
payload !== null &&
(payload as Partial<SessionHelpOpenPayload>).commandsEnabled === true,
}),
);
const onOpenChangelogEvent = createQueuedIpcListener(IPC_CHANNELS.event.changelogOpen);
const onOpenCharacterDictionaryManagerEvent = createQueuedIpcListener(
IPC_CHANNELS.event.characterDictionaryManagerOpen,
@@ -549,6 +559,26 @@ const electronAPI: ElectronAPI = {
onOpenYoutubeTrackPicker: onOpenYoutubeTrackPickerEvent,
onOpenMediaTimingReview: onOpenMediaTimingReviewEvent,
onMediaTimingReviewPreviewEnded: onMediaTimingReviewPreviewEndedEvent,
onMediaTimingReviewPreviewPosition: (
callback: (position: MediaTimingReviewPreviewPosition) => void,
): void => {
ipcRenderer.on(
IPC_CHANNELS.event.mediaTimingReviewPreviewPosition,
(_event, payload: unknown) => {
if (
typeof payload !== 'object' ||
payload === null ||
!('reviewId' in payload) ||
typeof payload.reviewId !== 'string' ||
!('time' in payload) ||
typeof payload.time !== 'number' ||
!Number.isFinite(payload.time)
)
return;
callback({ reviewId: payload.reviewId, time: payload.time });
},
);
},
previewMediaTimingReview: (
request: MediaTimingReviewPreviewRequest,
): Promise<MediaTimingReviewActionResult> =>