diff --git a/electron-builder.yml b/electron-builder.yml index 8adbcd61..2ef53d5e 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -63,13 +63,5 @@ electronDownload: afterSign: scripts/notarize.js releaseInfo: releaseNotes: | - 新功能: - - 支持代码风格切换 @injurka - - 增加任务栏图标 - - 智能体新增精选分类 - - 支持 Mermaid 图表预览和下载 - - 增加多 API 密钥支持 - - 侧边栏增加提示信息 - 错误修复: - - 修复 Mermaid 图表无法显示问题 - - 修复气泡模式代码颜色问题 + 修复 Windows 窗口最小化后进入任务栏问题 + 增加 API 密钥批量检查功能 diff --git a/package.json b/package.json index 78d0dd36..331a0610 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "CherryStudio", - "version": "0.8.11", + "version": "0.8.12", "private": true, "description": "A powerful AI assistant for producer.", "main": "./out/main/index.js", diff --git a/src/main/index.ts b/src/main/index.ts index 668a9f9a..1ab36849 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -11,57 +11,59 @@ import { updateUserDataPath } from './utils/upgrade' // Check for single instance lock if (!app.requestSingleInstanceLock()) { app.quit() -} + process.exit(0) +} else { + // This method will be called when Electron has finished + // initialization and is ready to create browser windows. + // Some APIs can only be used after this event occurs. + app.whenReady().then(async () => { + await updateUserDataPath() -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.whenReady().then(async () => { - await updateUserDataPath() + // Set app user model id for windows + electronApp.setAppUserModelId(import.meta.env.VITE_MAIN_BUNDLE_ID || 'com.kangfenmao.CherryStudio') - // Set app user model id for windows - electronApp.setAppUserModelId(import.meta.env.VITE_MAIN_BUNDLE_ID || 'com.kangfenmao.CherryStudio') + const mainWindow = windowService.createMainWindow() + new TrayService() - const mainWindow = windowService.createMainWindow() - new TrayService() + app.on('activate', function () { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) { + windowService.createMainWindow() + } else { + windowService.showMainWindow() + } + }) - app.on('activate', function () { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (BrowserWindow.getAllWindows().length === 0) { - windowService.createMainWindow() - } else { - windowService.showMainWindow() + registerZoomShortcut(mainWindow) + + registerIpc(mainWindow, app) + + if (process.env.NODE_ENV === 'development') { + installExtension(REDUX_DEVTOOLS) + .then((name) => console.log(`Added Extension: ${name}`)) + .catch((err) => console.log('An error occurred: ', err)) } }) - registerZoomShortcut(mainWindow) + // Listen for second instance + app.on('second-instance', () => { + const mainWindow = BrowserWindow.getAllWindows()[0] + if (mainWindow) { + mainWindow.isMinimized() && mainWindow.restore() + mainWindow.show() + mainWindow.focus() + } + }) - registerIpc(mainWindow, app) + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window) + }) - if (process.env.NODE_ENV === 'development') { - installExtension(REDUX_DEVTOOLS) - .then((name) => console.log(`Added Extension: ${name}`)) - .catch((err) => console.log('An error occurred: ', err)) - } -}) + app.on('before-quit', () => { + app.isQuitting = true + }) -// Listen for second instance -app.on('second-instance', () => { - const mainWindow = BrowserWindow.getAllWindows()[0] - if (mainWindow) { - mainWindow.isMinimized() && mainWindow.restore() - mainWindow.focus() - } -}) - -app.on('browser-window-created', (_, window) => { - optimizer.watchWindowShortcuts(window) -}) - -app.on('before-quit', () => { - app.isQuitting = true -}) - -// In this file you can include the rest of your app"s specific main process -// code. You can also put them in separate files and require them here. + // In this file you can include the rest of your app"s specific main process + // code. You can also put them in separate files and require them here. +}