feat: improve application responsiveness

This commit is contained in:
mesalogo
2026-08-15 18:06:02 +08:00
parent 1329251b5a
commit 79e2511f6f
18 changed files with 3268 additions and 355 deletions
+36
View File
@@ -43,6 +43,7 @@ import type {
AssistantTask,
TokenUsageSummary,
ConversationSnapshot,
LocalConversationSaveBatch,
WorkspaceChanges,
WorkspaceDirectoryListing,
WorkspaceFilePreview,
@@ -146,6 +147,30 @@ const desktopApi: DesktopApi = {
handler
)
},
onBeforeQuit: (listener) => {
const handler = (
_event: Electron.IpcRendererEvent,
requestId: string
): void => {
const acknowledge = (): void => {
void ipcRenderer.invoke(
ipcChannels.appRendererPersistenceComplete,
requestId
)
}
void listener().then(acknowledge, acknowledge)
}
ipcRenderer.on(
ipcChannels.appRendererPersistenceRequest,
handler
)
void ipcRenderer.invoke(ipcChannels.appRendererPersistenceReady)
return () =>
ipcRenderer.removeListener(
ipcChannels.appRendererPersistenceRequest,
handler
)
},
clearLocalData: async () => {
await ipcRenderer.invoke(ipcChannels.appClearLocalData)
},
@@ -555,6 +580,17 @@ const desktopApi: DesktopApi = {
conversations
)
},
saveLocal: async (batch: LocalConversationSaveBatch) => {
await ipcRenderer.invoke(
ipcChannels.conversationsSaveLocal,
batch
)
},
deleteLocal: (conversationId: string) =>
ipcRenderer.invoke(
ipcChannels.conversationsDeleteLocal,
conversationId
) as Promise<boolean>,
onChanged: (listener) => {
const handler = (): void => listener()
ipcRenderer.on(ipcChannels.conversationsChanged, handler)