From bf4ae227b3474d9047e8660ccc26775683ab56bb Mon Sep 17 00:00:00 2001 From: Benjamin Lu Date: Sun, 20 Apr 2025 12:28:59 -0400 Subject: [PATCH] Add manual update check (#3504) Co-authored-by: Benjamin Lu Co-authored-by: github-actions Co-authored-by: Chenlei Hu --- package-lock.json | 8 ++++---- package.json | 2 +- src/extensions/core/electronAdapter.ts | 23 ++++++++++++++++++++++- src/locales/en/commands.json | 3 +++ src/locales/en/main.json | 5 ++++- src/locales/es/commands.json | 3 +++ src/locales/es/main.json | 5 ++++- src/locales/fr/commands.json | 3 +++ src/locales/fr/main.json | 5 ++++- src/locales/ja/commands.json | 3 +++ src/locales/ja/main.json | 5 ++++- src/locales/ko/commands.json | 3 +++ src/locales/ko/main.json | 5 ++++- src/locales/ru/commands.json | 3 +++ src/locales/ru/main.json | 5 ++++- src/locales/zh/commands.json | 3 +++ src/locales/zh/main.json | 5 ++++- 17 files changed, 76 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bdde74ad..f050f865a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@alloc/quick-lru": "^5.2.0", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/comfyui-electron-types": "^0.4.36", + "@comfyorg/comfyui-electron-types": "^0.4.39", "@comfyorg/litegraph": "^0.13.6", "@primevue/forms": "^4.2.5", "@primevue/themes": "^4.2.5", @@ -476,9 +476,9 @@ } }, "node_modules/@comfyorg/comfyui-electron-types": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@comfyorg/comfyui-electron-types/-/comfyui-electron-types-0.4.36.tgz", - "integrity": "sha512-chKucN+Zyva2sE+NfVC2u7tTetsAMbbyl3Z/XMiwygktGrKmzIoAKQXGSCrWOpld4hGI9/SO51D1Hm9VNrecqA==", + "version": "0.4.39", + "resolved": "https://registry.npmjs.org/@comfyorg/comfyui-electron-types/-/comfyui-electron-types-0.4.39.tgz", + "integrity": "sha512-5ZPaXy3SMMi5YO2gjgUWrRhmh/Ble1Qh//s+QKMyDP+FbMvVJu5eq6kc/5NiYngzaWziCcthgAlDBDz5oV5j4A==", "license": "GPL-3.0-only" }, "node_modules/@comfyorg/litegraph": { diff --git a/package.json b/package.json index 532cd7b84..231ab96ba 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "dependencies": { "@alloc/quick-lru": "^5.2.0", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/comfyui-electron-types": "^0.4.36", + "@comfyorg/comfyui-electron-types": "^0.4.39", "@comfyorg/litegraph": "^0.13.6", "@primevue/forms": "^4.2.5", "@primevue/themes": "^4.2.5", diff --git a/src/extensions/core/electronAdapter.ts b/src/extensions/core/electronAdapter.ts index abbef6f24..034f5ca37 100644 --- a/src/extensions/core/electronAdapter.ts +++ b/src/extensions/core/electronAdapter.ts @@ -158,6 +158,27 @@ import { checkMirrorReachable } from '@/utils/networkUtil' window.open('https://comfyorg.notion.site/', '_blank') } }, + { + id: 'Comfy-Desktop.CheckForUpdates', + label: 'Check for Updates', + icon: 'pi pi-sync', + async function() { + const updateAvailable = await electronAPI.checkForUpdates({ + disableUpdateReadyAction: true + }) + if (updateAvailable.isUpdateAvailable) { + const version = updateAvailable.version + const proceed = await useDialogService().confirm({ + title: t('desktopUpdate.updateFoundTitle', { version }), + message: t('desktopUpdate.updateAvailableMessage'), + type: 'default' + }) + if (proceed) { + electronAPI.restartAndInstall() + } + } + } + }, { id: 'Comfy-Desktop.Reinstall', label: 'Reinstall', @@ -223,7 +244,7 @@ import { checkMirrorReachable } from '@/utils/networkUtil' }, { path: ['Help'], - commands: ['Comfy-Desktop.Reinstall'] + commands: ['Comfy-Desktop.CheckForUpdates', 'Comfy-Desktop.Reinstall'] } ], diff --git a/src/locales/en/commands.json b/src/locales/en/commands.json index d2ac0aa9e..f0b07b451 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "Check for Updates" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "Open Custom Nodes Folder" }, diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 5585fee4c..b1efd0bca 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -602,6 +602,7 @@ "Workflow": "Workflow", "Edit": "Edit", "Help": "Help", + "Check for Updates": "Check for Updates", "Open Custom Nodes Folder": "Open Custom Nodes Folder", "Open Inputs Folder": "Open Inputs Folder", "Open Logs Folder": "Open Logs Folder", @@ -992,7 +993,9 @@ "desktopUpdate": { "title": "Updating ComfyUI Desktop", "description": "ComfyUI Desktop is installing new dependencies. This may take a few minutes.", - "terminalDefaultMessage": "Any console output from the update will be shown here." + "terminalDefaultMessage": "Any console output from the update will be shown here.", + "updateFoundTitle": "Update Found (v{version})", + "updateAvailableMessage": "An update is available. Do you want to restart and update now?" }, "clipboard": { "successMessage": "Copied to clipboard", diff --git a/src/locales/es/commands.json b/src/locales/es/commands.json index 9299e9a95..381f04f20 100644 --- a/src/locales/es/commands.json +++ b/src/locales/es/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "Buscar actualizaciones" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "Abrir carpeta de nodos personalizados" }, diff --git a/src/locales/es/main.json b/src/locales/es/main.json index 4868e0c23..21b5d3e4f 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUI Desktop está instalando nuevas dependencias. Esto puede tardar unos minutos.", "terminalDefaultMessage": "Cualquier salida de consola de la actualización se mostrará aquí.", - "title": "Actualizando ComfyUI Desktop" + "title": "Actualizando ComfyUI Desktop", + "updateAvailableMessage": "Hay una actualización disponible. ¿Quieres reiniciar y actualizar ahora?", + "updateFoundTitle": "Actualización encontrada (v{version})" }, "downloadGit": { "gitWebsite": "Descargar git", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "Evitar/No evitar nodos seleccionados", "Canvas Toggle Link Visibility": "Alternar visibilidad de enlace en lienzo", "Canvas Toggle Lock": "Alternar bloqueo en lienzo", + "Check for Updates": "Buscar actualizaciones", "Clear Pending Tasks": "Borrar tareas pendientes", "Clear Workflow": "Borrar flujo de trabajo", "Clipspace": "Espacio de clip", diff --git a/src/locales/fr/commands.json b/src/locales/fr/commands.json index f9931a014..bf562c5ea 100644 --- a/src/locales/fr/commands.json +++ b/src/locales/fr/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "Vérifier les mises à jour" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "Ouvrir le dossier des nœuds personnalisés" }, diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 634f81cd8..6c1ae1701 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUI Desktop installe de nouvelles dépendances. Cela peut prendre quelques minutes.", "terminalDefaultMessage": "Toute sortie de console de la mise à jour sera affichée ici.", - "title": "Mise à jour de ComfyUI Desktop" + "title": "Mise à jour de ComfyUI Desktop", + "updateAvailableMessage": "Une mise à jour est disponible. Voulez-vous redémarrer et mettre à jour maintenant?", + "updateFoundTitle": "Mise à jour trouvée (v{version})" }, "downloadGit": { "gitWebsite": "Télécharger git", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "Contourner/Ne pas contourner les nœuds sélectionnés", "Canvas Toggle Link Visibility": "Basculer la visibilité du lien de la toile", "Canvas Toggle Lock": "Basculer le verrouillage de la toile", + "Check for Updates": "Vérifier les mises à jour", "Clear Pending Tasks": "Effacer les tâches en attente", "Clear Workflow": "Effacer le flux de travail", "Clipspace": "Espace de clip", diff --git a/src/locales/ja/commands.json b/src/locales/ja/commands.json index b1559340e..8b436f6cb 100644 --- a/src/locales/ja/commands.json +++ b/src/locales/ja/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "更新を確認する" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "カスタムノードフォルダを開く" }, diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index 72c0a14cf..13db4d403 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUIデスクトップは新しい依存関係をインストールしています。これには数分かかる場合があります。", "terminalDefaultMessage": "更新からの任意のコンソール出力はここに表示されます。", - "title": "ComfyUIデスクトップの更新" + "title": "ComfyUIデスクトップの更新", + "updateAvailableMessage": "アップデートが利用可能です。今すぐ再起動してアップデートしますか?", + "updateFoundTitle": "アップデートが見つかりました (v{version})" }, "downloadGit": { "gitWebsite": "Gitをダウンロード", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "選択したノードのバイパス/バイパス解除", "Canvas Toggle Link Visibility": "キャンバスのリンク表示を切り替え", "Canvas Toggle Lock": "キャンバスのロックを切り替え", + "Check for Updates": "更新を確認する", "Clear Pending Tasks": "保留中のタスクをクリア", "Clear Workflow": "ワークフローをクリア", "Clipspace": "クリップスペース", diff --git a/src/locales/ko/commands.json b/src/locales/ko/commands.json index b60df8055..85cb10f3e 100644 --- a/src/locales/ko/commands.json +++ b/src/locales/ko/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "업데이트 확인" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "사용자 정의 노드 폴더 열기" }, diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 81c7ebd9f..0ecdc03f1 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUI 데스크톱이 새로운 종속성을 설치하고 있습니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.", "terminalDefaultMessage": "업데이트 콘솔 출력은 여기에 표시됩니다.", - "title": "ComfyUI 데스크톱 업데이트 중" + "title": "ComfyUI 데스크톱 업데이트 중", + "updateAvailableMessage": "업데이트가 가능합니다. 지금 재시작하고 업데이트하시겠습니까?", + "updateFoundTitle": "업데이트 발견 (v{version})" }, "downloadGit": { "gitWebsite": "git 프로그램 다운로드", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "선택한 노드 우회/우회 해제", "Canvas Toggle Link Visibility": "캔버스 토글 링크 가시성", "Canvas Toggle Lock": "캔버스 토글 잠금", + "Check for Updates": "업데이트 확인", "Clear Pending Tasks": "보류 중인 작업 제거하기", "Clear Workflow": "워크플로 지우기", "Clipspace": "클립스페이스", diff --git a/src/locales/ru/commands.json b/src/locales/ru/commands.json index 9133f6f7c..936cdbcd8 100644 --- a/src/locales/ru/commands.json +++ b/src/locales/ru/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "Проверить наличие обновлений" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "Открыть папку пользовательских нод" }, diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index 97abf51d2..757dbb015 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUI Desktop устанавливает новые зависимости. Это может занять несколько минут.", "terminalDefaultMessage": "Любой вывод консоли из обновления будет отображаться здесь.", - "title": "Обновление ComfyUI Desktop" + "title": "Обновление ComfyUI Desktop", + "updateAvailableMessage": "Доступно обновление. Вы хотите перезагрузить и обновить сейчас?", + "updateFoundTitle": "Найдено обновление (v{version})" }, "downloadGit": { "gitWebsite": "Скачать git", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "Обойти/восстановить выбранные ноды", "Canvas Toggle Link Visibility": "Переключение видимости ссылки на холст", "Canvas Toggle Lock": "Переключение блокировки холста", + "Check for Updates": "Проверить наличие обновлений", "Clear Pending Tasks": "Очистить ожидающие задачи", "Clear Workflow": "Очистить рабочий процесс", "Clipspace": "Клиппространство", diff --git a/src/locales/zh/commands.json b/src/locales/zh/commands.json index 67644414e..ee04be6ba 100644 --- a/src/locales/zh/commands.json +++ b/src/locales/zh/commands.json @@ -1,4 +1,7 @@ { + "Comfy-Desktop_CheckForUpdates": { + "label": "检查更新" + }, "Comfy-Desktop_Folders_OpenCustomNodesFolder": { "label": "打开自定义节点文件夹" }, diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 36cd05cf5..a0c76e8ac 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -137,7 +137,9 @@ "desktopUpdate": { "description": "ComfyUI桌面正在安装新的依赖项。这可能需要几分钟的时间。", "terminalDefaultMessage": "更新过程中的任何控制台输出都将在这里显示。", - "title": "正在更新ComfyUI桌面" + "title": "正在更新ComfyUI桌面", + "updateAvailableMessage": "有可用的更新。您现在要重启并更新吗?", + "updateFoundTitle": "找到更新 (v{version})" }, "downloadGit": { "gitWebsite": "下载 git", @@ -565,6 +567,7 @@ "Bypass/Unbypass Selected Nodes": "忽略/取消忽略选定节点", "Canvas Toggle Link Visibility": "切换连线可见性", "Canvas Toggle Lock": "切换视图锁定", + "Check for Updates": "检查更新", "Clear Pending Tasks": "清除待处理任务", "Clear Workflow": "清除工作流", "Clipspace": "剪贴空间",