mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-28 10:12:11 +00:00
feat: add Update ComfyUI option to Help Center for non-desktop environments (#7578)
## Summary - Adds "Update ComfyUI" menu item to Help Center for portable/localhost environments - Wires existing `/v2/manager/queue/update_comfyui` endpoint to the frontend - Only visible in non-desktop, non-cloud distributions (where Electron update mechanism isn't available) ## Changes 1. **Service layer**: Added `updateComfyUI()` method to `comfyManagerService.ts` 2. **UI**: Added menu item with download icon to `HelpCenterMenuContent.vue` 3. **i18n**: Added translation key for the new menu item ## Context The new Manager UI (v4) lost the ability to update ComfyUI core in non-desktop environments. This restores that functionality by integrating the existing manager endpoint into the Help Center menu. ## Test plan - [ ] Verify menu item appears in portable/localhost environments - [ ] Verify menu item does NOT appear in desktop (Electron) environments - [ ] Verify menu item does NOT appear in cloud environments - [ ] Test clicking the menu item triggers update and reboot ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7578-feat-add-Update-ComfyUI-option-to-Help-Center-for-non-desktop-environments-2cc6d73d3650811e9e4fe55515f50333) by [Unito](https://www.unito.io)
This commit is contained in:
committed by
GitHub
parent
3e111bd75c
commit
890ab2019f
@@ -12,6 +12,7 @@ type ManagerQueueStatus = components['schemas']['QueueStatus']
|
||||
type InstallPackParams = components['schemas']['InstallPackParams']
|
||||
type InstalledPacksResponse = components['schemas']['InstalledPacksResponse']
|
||||
type UpdateAllPacksParams = components['schemas']['UpdateAllPacksParams']
|
||||
type UpdateComfyUIParams = components['schemas']['UpdateComfyUIParams']
|
||||
type ManagerTaskHistory = components['schemas']['HistoryResponse']
|
||||
type QueueTaskItem = components['schemas']['QueueTaskItem']
|
||||
|
||||
@@ -26,6 +27,7 @@ enum ManagerRoute {
|
||||
RESET_QUEUE = 'manager/queue/reset',
|
||||
QUEUE_STATUS = 'manager/queue/status',
|
||||
UPDATE_ALL = 'manager/queue/update_all',
|
||||
UPDATE_COMFYUI = 'manager/queue/update_comfyui',
|
||||
LIST_INSTALLED = 'customnode/installed',
|
||||
GET_NODES = 'customnode/getmappings',
|
||||
IMPORT_FAIL_INFO = 'customnode/import_fail_info',
|
||||
@@ -271,6 +273,33 @@ export const useComfyManagerService = () => {
|
||||
)
|
||||
}
|
||||
|
||||
const updateComfyUI = async (
|
||||
params: UpdateComfyUIParams = { is_stable: true },
|
||||
ui_id?: string,
|
||||
signal?: AbortSignal
|
||||
) => {
|
||||
const errorContext = 'Updating ComfyUI'
|
||||
const routeSpecificErrors = {
|
||||
400: 'Bad Request: Missing required parameters',
|
||||
403: 'Forbidden: To use this action, a security_level of `middle or below` is required'
|
||||
}
|
||||
|
||||
const queryParams = {
|
||||
client_id: api.clientId ?? api.initialClientId ?? 'unknown',
|
||||
ui_id: ui_id || uuidv4(),
|
||||
...params
|
||||
}
|
||||
|
||||
return executeRequest<null>(
|
||||
() =>
|
||||
managerApiClient.get(ManagerRoute.UPDATE_COMFYUI, {
|
||||
params: queryParams,
|
||||
signal
|
||||
}),
|
||||
{ errorContext, routeSpecificErrors, isQueueOperation: true }
|
||||
)
|
||||
}
|
||||
|
||||
const rebootComfyUI = async (signal?: AbortSignal) => {
|
||||
const errorContext = 'Rebooting ComfyUI'
|
||||
const routeSpecificErrors = {
|
||||
@@ -335,6 +364,7 @@ export const useComfyManagerService = () => {
|
||||
updateAllPacks,
|
||||
|
||||
// System operations
|
||||
updateComfyUI,
|
||||
rebootComfyUI,
|
||||
isLegacyManagerUI
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user