From 3bc25b7aeb9368787165b1cbfa76051e9a04a480 Mon Sep 17 00:00:00 2001 From: AustinMroz Date: Thu, 11 Sep 2025 12:00:34 -0700 Subject: [PATCH 001/162] Add Asset Widget (#5475) * [feat] carve out path to call asset browser in combo widget * Add Asset Widget * [feat] add fallback "Select model" label --------- Co-authored-by: Arjan Singh --- src/lib/litegraph/src/types/widgets.ts | 7 ++ src/lib/litegraph/src/widgets/AssetWidget.ts | 41 +++++++++ src/lib/litegraph/src/widgets/widgetMap.ts | 4 + .../widgets/composables/useComboWidget.ts | 20 ++-- .../composables/useComboWidget.test.ts | 91 ++++++++++++++++--- 5 files changed, 139 insertions(+), 24 deletions(-) create mode 100644 src/lib/litegraph/src/widgets/AssetWidget.ts diff --git a/src/lib/litegraph/src/types/widgets.ts b/src/lib/litegraph/src/types/widgets.ts index fa47c6a93..850fe9bcb 100644 --- a/src/lib/litegraph/src/types/widgets.ts +++ b/src/lib/litegraph/src/types/widgets.ts @@ -76,6 +76,7 @@ export type IWidget = | IImageCompareWidget | ISelectButtonWidget | ITextareaWidget + | IAssetWidget export interface IBooleanWidget extends IBaseWidget { type: 'toggle' @@ -224,6 +225,12 @@ export interface ITextareaWidget extends IBaseWidget { value: string } +export interface IAssetWidget + extends IBaseWidget> { + type: 'asset' + value: string +} + /** * Valid widget types. TS cannot provide easily extensible type safety for this at present. * Override linkedWidgets[] diff --git a/src/lib/litegraph/src/widgets/AssetWidget.ts b/src/lib/litegraph/src/widgets/AssetWidget.ts new file mode 100644 index 000000000..f8a8e1209 --- /dev/null +++ b/src/lib/litegraph/src/widgets/AssetWidget.ts @@ -0,0 +1,41 @@ +import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode' +import type { IAssetWidget } from '@/lib/litegraph/src/types/widgets' + +import { BaseWidget, type DrawWidgetOptions } from './BaseWidget' + +export class AssetWidget + extends BaseWidget + implements IAssetWidget +{ + constructor(widget: IAssetWidget, node: LGraphNode) { + super(widget, node) + this.type ??= 'asset' + this.value = widget.value?.toString() ?? '' + } + + override get _displayValue(): string { + return String(this.value) //FIXME: Resolve asset name + } + + override drawWidget( + ctx: CanvasRenderingContext2D, + { width, showText = true }: DrawWidgetOptions + ) { + // Store original context attributes + const { fillStyle, strokeStyle, textAlign } = ctx + + this.drawWidgetShape(ctx, { width, showText }) + + if (showText) { + this.drawTruncatingText({ ctx, width, leftPadding: 0, rightPadding: 0 }) + } + + // Restore original context attributes + Object.assign(ctx, { textAlign, strokeStyle, fillStyle }) + } + + override onClick() { + //Open Modal + this.callback?.(this.value) + } +} diff --git a/src/lib/litegraph/src/widgets/widgetMap.ts b/src/lib/litegraph/src/widgets/widgetMap.ts index 42a8f5663..02cdb5597 100644 --- a/src/lib/litegraph/src/widgets/widgetMap.ts +++ b/src/lib/litegraph/src/widgets/widgetMap.ts @@ -7,6 +7,7 @@ import type { } from '@/lib/litegraph/src/types/widgets' import { toClass } from '@/lib/litegraph/src/utils/type' +import { AssetWidget } from './AssetWidget' import { BaseWidget } from './BaseWidget' import { BooleanWidget } from './BooleanWidget' import { ButtonWidget } from './ButtonWidget' @@ -47,6 +48,7 @@ export type WidgetTypeMap = { imagecompare: ImageCompareWidget selectbutton: SelectButtonWidget textarea: TextareaWidget + asset: AssetWidget [key: string]: BaseWidget } @@ -115,6 +117,8 @@ export function toConcreteWidget( return toClass(SelectButtonWidget, narrowedWidget, node) case 'textarea': return toClass(TextareaWidget, narrowedWidget, node) + case 'asset': + return toClass(AssetWidget, narrowedWidget, node) default: { if (wrapLegacyWidgets) return toClass(LegacyWidget, widget, node) } diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts b/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts index 586cfb27e..102642816 100644 --- a/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts @@ -69,19 +69,15 @@ const addComboWidget = ( ) if (isUsingAssetAPI && isEligible) { - // Create button widget for Asset Browser + // Get the default value for the button text (currently selected model) const currentValue = getDefaultValue(inputSpec) + const displayLabel = currentValue ?? t('widgets.selectModel') - const widget = node.addWidget( - 'button', - inputSpec.name, - t('widgets.selectModel'), - () => { - console.log( - `Asset Browser would open here for:\nNode: ${node.type}\nWidget: ${inputSpec.name}\nCurrent Value:${currentValue}` - ) - } - ) + const widget = node.addWidget('asset', inputSpec.name, displayLabel, () => { + console.log( + `Asset Browser would open here for:\nNode: ${node.type}\nWidget: ${inputSpec.name}\nCurrent Value:${currentValue}` + ) + }) return widget } @@ -129,7 +125,7 @@ const addComboWidget = ( ) } - return widget + return widget as IBaseWidget } export const useComboWidget = () => { diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts b/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts index ce3acffc5..1ec9bcf1a 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts +++ b/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts @@ -88,8 +88,8 @@ describe('useComboWidget', () => { }) it('should create normal combo widget when asset API is disabled', () => { - mockSettingStoreGet.mockReturnValue(false) - vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) + mockSettingStoreGet.mockReturnValue(false) // Asset API disabled + vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) // Widget is eligible const constructor = useComboWidget() const mockWidget = createMockWidget() @@ -101,6 +101,7 @@ describe('useComboWidget', () => { }) const widget = constructor(mockNode, inputSpec) + expect(widget).toBe(mockWidget) expect(mockNode.addWidget).toHaveBeenCalledWith( 'combo', @@ -142,15 +143,15 @@ describe('useComboWidget', () => { expect(widget).toBe(mockWidget) }) - it('should create asset browser button widget when API enabled and widget eligible', () => { + it('should create asset browser widget when API enabled and widget eligible', () => { mockSettingStoreGet.mockReturnValue(true) vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) const constructor = useComboWidget() const mockWidget = createMockWidget({ - type: 'button', + type: 'asset', name: 'ckpt_name', - value: 'Select model' + value: 'model1.safetensors' }) const mockNode = createMockNode('CheckpointLoaderSimple') vi.mocked(mockNode.addWidget).mockReturnValue(mockWidget) @@ -162,9 +163,9 @@ describe('useComboWidget', () => { const widget = constructor(mockNode, inputSpec) expect(mockNode.addWidget).toHaveBeenCalledWith( - 'button', + 'asset', 'ckpt_name', - 'Select model', + 'model1.safetensors', expect.any(Function) ) expect(mockSettingStoreGet).toHaveBeenCalledWith('Comfy.Assets.UseAssetAPI') @@ -175,15 +176,48 @@ describe('useComboWidget', () => { expect(widget).toBe(mockWidget) }) - it('should use asset browser button even when inputSpec has a default value but no options', () => { + it('should create asset browser widget with options when API enabled and widget eligible', () => { mockSettingStoreGet.mockReturnValue(true) vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) const constructor = useComboWidget() const mockWidget = createMockWidget({ - type: 'button', + type: 'asset', name: 'ckpt_name', - value: 'Select model' + value: 'model1.safetensors' + }) + const mockNode = createMockNode('CheckpointLoaderSimple') + vi.mocked(mockNode.addWidget).mockReturnValue(mockWidget) + const inputSpec = createMockInputSpec({ + name: 'ckpt_name', + options: ['model1.safetensors', 'model2.safetensors'] + }) + + const widget = constructor(mockNode, inputSpec) + + expect(mockNode.addWidget).toHaveBeenCalledWith( + 'asset', + 'ckpt_name', + 'model1.safetensors', + expect.any(Function) + ) + expect(mockSettingStoreGet).toHaveBeenCalledWith('Comfy.Assets.UseAssetAPI') + expect(vi.mocked(assetService.isAssetBrowserEligible)).toHaveBeenCalledWith( + 'ckpt_name', + 'CheckpointLoaderSimple' + ) + expect(widget).toBe(mockWidget) + }) + + it('should use asset browser widget even when inputSpec has a default value but no options', () => { + mockSettingStoreGet.mockReturnValue(true) + vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) + + const constructor = useComboWidget() + const mockWidget = createMockWidget({ + type: 'asset', + name: 'ckpt_name', + value: 'fallback.safetensors' }) const mockNode = createMockNode('CheckpointLoaderSimple') vi.mocked(mockNode.addWidget).mockReturnValue(mockWidget) @@ -196,9 +230,42 @@ describe('useComboWidget', () => { const widget = constructor(mockNode, inputSpec) expect(mockNode.addWidget).toHaveBeenCalledWith( - 'button', + 'asset', 'ckpt_name', - 'Select model', + 'fallback.safetensors', + expect.any(Function) + ) + expect(mockSettingStoreGet).toHaveBeenCalledWith('Comfy.Assets.UseAssetAPI') + expect(vi.mocked(assetService.isAssetBrowserEligible)).toHaveBeenCalledWith( + 'ckpt_name', + 'CheckpointLoaderSimple' + ) + expect(widget).toBe(mockWidget) + }) + + it('should show Select model when asset widget has undefined current value', () => { + mockSettingStoreGet.mockReturnValue(true) + vi.mocked(assetService.isAssetBrowserEligible).mockReturnValue(true) + + const constructor = useComboWidget() + const mockWidget = createMockWidget({ + type: 'asset', + name: 'ckpt_name', + value: 'Select model' + }) + const mockNode = createMockNode('CheckpointLoaderSimple') + vi.mocked(mockNode.addWidget).mockReturnValue(mockWidget) + const inputSpec = createMockInputSpec({ + name: 'ckpt_name' + // Note: no default, no options, not remote - getDefaultValue returns undefined + }) + + const widget = constructor(mockNode, inputSpec) + + expect(mockNode.addWidget).toHaveBeenCalledWith( + 'asset', + 'ckpt_name', + 'Select model', // Should fallback to this instead of undefined expect.any(Function) ) expect(mockSettingStoreGet).toHaveBeenCalledWith('Comfy.Assets.UseAssetAPI') From 5df037dfc44ab0c45b49adb62c00f8d2b6422595 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Fri, 12 Sep 2025 04:44:02 +0800 Subject: [PATCH 002/162] 1.27.3 (#5497) * [release] Increment version to 1.27.3 * fix(i18n): use import attributes for JSON to support Node/Playwright in i18n workflow * Revert "fix(i18n): use import attributes for JSON to support Node/Playwright in i18n workflow" This reverts commit b525242c32f66549d0657e78f0b8cf2d53925390. --------- Co-authored-by: benceruleanlu <162923238+benceruleanlu@users.noreply.github.com> Co-authored-by: Benjamin Lu --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 63a28a2dc..49884f34c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@comfyorg/comfyui-frontend", "private": true, - "version": "1.27.2", + "version": "1.27.3", "type": "module", "repository": "https://github.com/Comfy-Org/ComfyUI_frontend", "homepage": "https://comfy.org", From 46f4ce3890da36bb2b18e1b29d54a56af7883aeb Mon Sep 17 00:00:00 2001 From: Rizumu Ayaka Date: Fri, 12 Sep 2025 05:07:44 +0800 Subject: [PATCH 003/162] feat: style of progress bar in various scenarios (#5492) --- .../vueNodes/components/LGraphNode.vue | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/src/renderer/extensions/vueNodes/components/LGraphNode.vue b/src/renderer/extensions/vueNodes/components/LGraphNode.vue index bdaf28354..54632c087 100644 --- a/src/renderer/extensions/vueNodes/components/LGraphNode.vue +++ b/src/renderer/extensions/vueNodes/components/LGraphNode.vue @@ -12,12 +12,15 @@ 'lg-node absolute rounded-2xl', // border 'border border-solid border-sand-100 dark-theme:border-charcoal-300', + !!executing && 'border-blue-500 dark-theme:border-blue-500', !!error && 'border-red-700 dark-theme:border-red-300', // hover 'hover:ring-7 ring-gray-500/50 dark-theme:ring-gray-500/20', // Selected 'outline-transparent -outline-offset-2 outline-2', !!isSelected && 'outline-black dark-theme:outline-white', + !!(isSelected && executing) && + 'outline-blue-500 dark-theme:outline-blue-500', !!(isSelected && error) && 'outline-red-500 dark-theme:outline-red-500', { 'animate-pulse': executing, @@ -56,8 +59,35 @@ /> +
+ - - -
@@ -232,6 +255,7 @@ const hasCustomContent = computed(() => { // Computed classes and conditions for better reusability const separatorClasses = 'bg-sand-100 dark-theme:bg-charcoal-300 h-[1px] mx-0 w-full' +const progressClasses = 'h-2 bg-primary-500 transition-all duration-300' // Common condition computations to avoid repetition const shouldShowWidgets = computed( From 68845ce33a106778f75ff89c533897cb383d5e94 Mon Sep 17 00:00:00 2001 From: AustinMroz Date: Thu, 11 Sep 2025 14:27:44 -0700 Subject: [PATCH 004/162] Fix Connection of Primitive nodes to Subgraph node (#5024) * Fix connection of primitives to subgraphNodes * Fix loading and nested subgraphs with primitives Medium hackyness, but this saves ~100 lines. * Use improved type check * Remove requirement for type assertion * Add warning comment --------- Co-authored-by: filtered <176114999+webfiltered@users.noreply.github.com> --- src/lib/litegraph/src/subgraph/SubgraphNode.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/litegraph/src/subgraph/SubgraphNode.ts b/src/lib/litegraph/src/subgraph/SubgraphNode.ts index d87e49658..dc47f477e 100644 --- a/src/lib/litegraph/src/subgraph/SubgraphNode.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphNode.ts @@ -313,9 +313,8 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph { widget: Readonly ) { // Use the first matching widget - const promotedWidget = toConcreteWidget(widget, this).createCopyForNode( - this - ) + const targetWidget = toConcreteWidget(widget, this) + const promotedWidget = targetWidget.createCopyForNode(this) Object.assign(promotedWidget, { get name() { @@ -370,7 +369,15 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph { subgraphNode: this }) - input.widget = { name: subgraphInput.name } + // NOTE: This code creates linked chains of prototypes for passing across + // multiple levels of subgraphs. As part of this, it intentionally avoids + // creating new objects. Have care when making changes. + const backingInput = + targetWidget.node.findInputSlot(widget.name, true)?.widget ?? {} + input.widget ??= { name: subgraphInput.name } + input.widget.name = subgraphInput.name + Object.setPrototypeOf(input.widget, backingInput) + input._widget = promotedWidget } From ef7575b8d6c521c2ee161968379e87fc30f3bc02 Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Thu, 11 Sep 2025 17:07:19 -0700 Subject: [PATCH 005/162] Revert "chore(lint): make ESLint concurrency configurable via pnpm config" (#5499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "chore(lint): make ESLint concurrency configurable via pnpm config (#5…" This reverts commit 999705329081d9f8bb2ec75cac3afaa4d95077bd. * chore: Remove --concurrency --- .env_example | 1 - package.json | 11 ++++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.env_example b/.env_example index a6987ae26..520521fe0 100644 --- a/.env_example +++ b/.env_example @@ -33,4 +33,3 @@ DISABLE_VUE_PLUGINS=false # Algolia credentials required for developing with the new custom node manager. ALGOLIA_APP_ID=4E0RO38HS8 ALGOLIA_API_KEY=684d998c36b67a9a9fce8fc2d8860579 - diff --git a/package.json b/package.json index 49884f34c..f4e6035d3 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,10 @@ "preinstall": "npx only-allow pnpm", "prepare": "husky || true && git config blame.ignoreRevsFile .git-blame-ignore-revs || true", "preview": "nx preview", - "lint": "eslint src --cache --concurrency=$npm_package_config_eslint_concurrency", - "lint:fix": "eslint src --fix --cache --concurrency=$npm_package_config_eslint_concurrency", - "lint:no-cache": "eslint src --concurrency=$npm_package_config_eslint_concurrency", - "lint:fix:no-cache": "eslint src --fix --concurrency=$npm_package_config_eslint_concurrency", + "lint": "eslint src --cache", + "lint:fix": "eslint src --cache --fix", + "lint:no-cache": "eslint src", + "lint:fix:no-cache": "eslint src --fix", "knip": "knip --cache", "knip:no-cache": "knip", "locale": "lobe-i18n locale", @@ -37,9 +37,6 @@ "storybook": "nx storybook -p 6006", "build-storybook": "storybook build" }, - "config": { - "eslint_concurrency": "4" - }, "devDependencies": { "@eslint/js": "^9.8.0", "@iconify-json/lucide": "^1.2.66", From 54cbf42a84cb9132eef5d3afeb1f3916bc3dee20 Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Thu, 11 Sep 2025 17:11:55 -0700 Subject: [PATCH 006/162] fix: Missing `.value` led to the release dot always showing (#5500) --- src/components/sidebar/SidebarHelpCenterIcon.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/sidebar/SidebarHelpCenterIcon.vue b/src/components/sidebar/SidebarHelpCenterIcon.vue index 06662f581..f778d3ee6 100644 --- a/src/components/sidebar/SidebarHelpCenterIcon.vue +++ b/src/components/sidebar/SidebarHelpCenterIcon.vue @@ -88,8 +88,8 @@ const { shouldShowRedDot: shouldShowConflictRedDot, markConflictsAsSeen } = useConflictAcknowledgment() // Use either release red dot or conflict red dot -const shouldShowRedDot = computed(() => { - const releaseRedDot = showReleaseRedDot +const shouldShowRedDot = computed((): boolean => { + const releaseRedDot = showReleaseRedDot.value return releaseRedDot || shouldShowConflictRedDot.value }) From c051c3a507e6002715399c43116f645524b449ee Mon Sep 17 00:00:00 2001 From: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:25:23 +0100 Subject: [PATCH 007/162] Drag Multiple Vue Nodes (#5459) * feat: enhance dragging functionality to support multiple selected nodes * feat: enhance node selection handling to support drag state detection * feat: enhance node selection handling to support drag state detection * fix: update event trigger from pointer down to pointer up in LGraphNode tests --- .../vueNodes/components/LGraphNode.vue | 21 ++++++++-- .../composables/useNodeEventHandlers.ts | 19 ++++++--- .../vueNodes/layout/useNodeLayout.ts | 39 ++++++++++++++++++- .../vueNodes/components/LGraphNode.spec.ts | 6 +-- .../composables/useNodeEventHandlers.test.ts | 16 ++++---- 5 files changed, 79 insertions(+), 22 deletions(-) diff --git a/src/renderer/extensions/vueNodes/components/LGraphNode.vue b/src/renderer/extensions/vueNodes/components/LGraphNode.vue index 54632c087..2b01e3260 100644 --- a/src/renderer/extensions/vueNodes/components/LGraphNode.vue +++ b/src/renderer/extensions/vueNodes/components/LGraphNode.vue @@ -168,13 +168,18 @@ interface LGraphNodeProps { const props = defineProps() const emit = defineEmits<{ - 'node-click': [event: PointerEvent, nodeData: VueNodeData] + 'node-click': [ + event: PointerEvent, + nodeData: VueNodeData, + wasDragging: boolean + ] 'slot-click': [ event: PointerEvent, nodeData: VueNodeData, slotIndex: number, isInput: boolean ] + dragStart: [event: DragEvent, nodeData: VueNodeData] 'update:collapsed': [nodeId: string, collapsed: boolean] 'update:title': [nodeId: string, newTitle: string] }>() @@ -231,6 +236,10 @@ const isDragging = ref(false) const dragStyle = computed(() => ({ cursor: isDragging.value ? 'grabbing' : 'grab' })) +const lastY = ref(0) +const lastX = ref(0) +// Treat tiny pointer jitter as a click, not a drag +const DRAG_THRESHOLD_PX = 4 // Track collapsed state const isCollapsed = ref(props.nodeData.flags?.collapsed ?? false) @@ -276,9 +285,8 @@ const handlePointerDown = (event: PointerEvent) => { // Start drag using layout system isDragging.value = true startDrag(event) - - // Emit node-click for selection handling in GraphCanvas - emit('node-click', event, props.nodeData) + lastY.value = event.clientY + lastX.value = event.clientX } const handlePointerMove = (event: PointerEvent) => { @@ -292,6 +300,11 @@ const handlePointerUp = (event: PointerEvent) => { isDragging.value = false void endDrag(event) } + // Emit node-click for selection handling in GraphCanvas + const dx = event.clientX - lastX.value + const dy = event.clientY - lastY.value + const wasDragging = Math.hypot(dx, dy) > DRAG_THRESHOLD_PX + emit('node-click', event, props.nodeData, wasDragging) } const handleCollapse = () => { diff --git a/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts b/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts index 5b354bf25..8cd7e2e5a 100644 --- a/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts +++ b/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts @@ -26,7 +26,11 @@ export function useNodeEventHandlers(nodeManager: Ref) { * Handle node selection events * Supports single selection and multi-select with Ctrl/Cmd */ - const handleNodeSelect = (event: PointerEvent, nodeData: VueNodeData) => { + const handleNodeSelect = ( + event: PointerEvent, + nodeData: VueNodeData, + wasDragging: boolean + ) => { if (!canvasStore.canvas || !nodeManager.value) return const node = nodeManager.value.getNode(nodeData.id) @@ -42,9 +46,12 @@ export function useNodeEventHandlers(nodeManager: Ref) { canvasStore.canvas.select(node) } } else { + // If it wasn't a drag: single-select the node + if (!wasDragging) { + canvasStore.canvas.deselectAll() + canvasStore.canvas.select(node) + } // Regular click -> single select - canvasStore.canvas.deselectAll() - canvasStore.canvas.select(node) } // Bring node to front when clicked (similar to LiteGraph behavior) @@ -107,7 +114,7 @@ export function useNodeEventHandlers(nodeManager: Ref) { // TODO: add custom double-click behavior here // For now, ensure node is selected if (!node.selected) { - handleNodeSelect(event, nodeData) + handleNodeSelect(event, nodeData, false) } } @@ -126,7 +133,7 @@ export function useNodeEventHandlers(nodeManager: Ref) { // Select the node if not already selected if (!node.selected) { - handleNodeSelect(event, nodeData) + handleNodeSelect(event, nodeData, false) } // Let LiteGraph handle the context menu @@ -151,7 +158,7 @@ export function useNodeEventHandlers(nodeManager: Ref) { metaKey: event.metaKey, bubbles: true }) - handleNodeSelect(syntheticEvent, nodeData) + handleNodeSelect(syntheticEvent, nodeData, false) } // Set drag data for potential drop operations diff --git a/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts b/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts index 407a14243..995d83d6f 100644 --- a/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts +++ b/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts @@ -6,6 +6,7 @@ */ import { computed, inject } from 'vue' +import { SelectedNodeIdsKey } from '@/renderer/core/canvas/injectionKeys' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' import { LayoutSource, type Point } from '@/renderer/core/layout/types' @@ -54,6 +55,9 @@ export function useNodeLayout(nodeId: string) { let isDragging = false let dragStartPos: Point | null = null let dragStartMouse: Point | null = null + let otherSelectedNodesStartPositions: Map | null = null + + const selectedNodeIds = inject(SelectedNodeIdsKey, null) /** * Start dragging the node @@ -65,6 +69,24 @@ export function useNodeLayout(nodeId: string) { dragStartPos = { ...position.value } dragStartMouse = { x: event.clientX, y: event.clientY } + // capture the starting positions of all other selected nodes + if (selectedNodeIds?.value?.has(nodeId) && selectedNodeIds.value.size > 1) { + otherSelectedNodesStartPositions = new Map() + + // Iterate through all selected node IDs + for (const id of selectedNodeIds.value) { + // Skip the current node being dragged + if (id === nodeId) continue + + const nodeLayout = layoutStore.getNodeLayoutRef(id).value + if (nodeLayout) { + otherSelectedNodesStartPositions.set(id, { ...nodeLayout.position }) + } + } + } else { + otherSelectedNodesStartPositions = null + } + // Set mutation source mutations.setSource(LayoutSource.Vue) @@ -95,7 +117,7 @@ export function useNodeLayout(nodeId: string) { y: canvasWithDelta.y - canvasOrigin.y } - // Calculate new position + // Calculate new position for the current node const newPosition = { x: dragStartPos.x + canvasDelta.x, y: dragStartPos.y + canvasDelta.y @@ -103,6 +125,20 @@ export function useNodeLayout(nodeId: string) { // Apply mutation through the layout system mutations.moveNode(nodeId, newPosition) + + // If we're dragging multiple selected nodes, move them all together + if ( + otherSelectedNodesStartPositions && + otherSelectedNodesStartPositions.size > 0 + ) { + for (const [otherNodeId, startPos] of otherSelectedNodesStartPositions) { + const newOtherPosition = { + x: startPos.x + canvasDelta.x, + y: startPos.y + canvasDelta.y + } + mutations.moveNode(otherNodeId, newOtherPosition) + } + } } /** @@ -114,6 +150,7 @@ export function useNodeLayout(nodeId: string) { isDragging = false dragStartPos = null dragStartMouse = null + otherSelectedNodesStartPositions = null // Release pointer const target = event.target as HTMLElement diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts b/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts index 7acebce00..861a301ab 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts +++ b/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts @@ -103,13 +103,13 @@ describe('LGraphNode', () => { expect(wrapper.classes()).toContain('animate-pulse') }) - it('should emit node-click event on pointer down', async () => { + it('should emit node-click event on pointer up', async () => { const wrapper = mountLGraphNode({ nodeData: mockNodeData }) - await wrapper.trigger('pointerdown') + await wrapper.trigger('pointerup') expect(wrapper.emitted('node-click')).toHaveLength(1) - expect(wrapper.emitted('node-click')?.[0]).toHaveLength(2) + expect(wrapper.emitted('node-click')?.[0]).toHaveLength(3) expect(wrapper.emitted('node-click')?.[0][1]).toEqual(mockNodeData) }) }) diff --git a/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts b/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts index 51a0ae235..6d33ad9b7 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts +++ b/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts @@ -110,7 +110,7 @@ describe('useNodeEventHandlers', () => { metaKey: false }) - handleNodeSelect(event, testNodeData) + handleNodeSelect(event, testNodeData, false) expect(mockCanvas.deselectAll).toHaveBeenCalledOnce() expect(mockCanvas.select).toHaveBeenCalledWith(mockNode) @@ -130,7 +130,7 @@ describe('useNodeEventHandlers', () => { metaKey: false }) - handleNodeSelect(ctrlClickEvent, testNodeData) + handleNodeSelect(ctrlClickEvent, testNodeData, false) expect(mockCanvas.deselectAll).not.toHaveBeenCalled() expect(mockCanvas.select).toHaveBeenCalledWith(mockNode) @@ -149,7 +149,7 @@ describe('useNodeEventHandlers', () => { metaKey: false }) - handleNodeSelect(ctrlClickEvent, testNodeData) + handleNodeSelect(ctrlClickEvent, testNodeData, false) expect(mockCanvas.deselect).toHaveBeenCalledWith(mockNode) expect(mockCanvas.select).not.toHaveBeenCalled() @@ -167,7 +167,7 @@ describe('useNodeEventHandlers', () => { metaKey: true }) - handleNodeSelect(metaClickEvent, testNodeData) + handleNodeSelect(metaClickEvent, testNodeData, false) expect(mockCanvas.select).toHaveBeenCalledWith(mockNode) expect(mockCanvas.deselectAll).not.toHaveBeenCalled() @@ -180,7 +180,7 @@ describe('useNodeEventHandlers', () => { mockNode.flags.pinned = false const event = new PointerEvent('pointerdown') - handleNodeSelect(event, testNodeData) + handleNodeSelect(event, testNodeData, false) expect(mockLayoutMutations.bringNodeToFront).toHaveBeenCalledWith( 'node-1' @@ -194,7 +194,7 @@ describe('useNodeEventHandlers', () => { mockNode.flags.pinned = true const event = new PointerEvent('pointerdown') - handleNodeSelect(event, testNodeData) + handleNodeSelect(event, testNodeData, false) expect(mockLayoutMutations.bringNodeToFront).not.toHaveBeenCalled() }) @@ -207,7 +207,7 @@ describe('useNodeEventHandlers', () => { const event = new PointerEvent('pointerdown') expect(() => { - handleNodeSelect(event, testNodeData) + handleNodeSelect(event, testNodeData, false) }).not.toThrow() expect(mockCanvas.select).not.toHaveBeenCalled() @@ -227,7 +227,7 @@ describe('useNodeEventHandlers', () => { } as any expect(() => { - handleNodeSelect(event, nodeData) + handleNodeSelect(event, nodeData, false) }).not.toThrow() expect(mockCanvas.select).not.toHaveBeenCalled() From dfcbbec2b95ba4392365ce9418618e1017b82240 Mon Sep 17 00:00:00 2001 From: Benjamin Lu Date: Thu, 11 Sep 2025 17:33:25 -0700 Subject: [PATCH 008/162] Use env (#5501) --- .github/workflows/backport.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 3f4b93242..907695e57 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -133,11 +133,10 @@ jobs: if: steps.check-existing.outputs.skip != 'true' && steps.backport.outputs.success env: GH_TOKEN: ${{ secrets.PR_GH_TOKEN }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_AUTHOR: ${{ github.event.pull_request.user.login }} run: | - PR_TITLE="${{ github.event.pull_request.title }}" - PR_NUMBER="${{ github.event.pull_request.number }}" - PR_AUTHOR="${{ github.event.pull_request.user.login }}" - for backport in ${{ steps.backport.outputs.success }}; do IFS=':' read -r version branch <<< "${backport}" From 4ec622318907ceae4996433b62d3acddecb4f355 Mon Sep 17 00:00:00 2001 From: snomiao Date: Fri, 12 Sep 2025 12:22:21 +0900 Subject: [PATCH 009/162] fix: Add JSON import assertions for Node.js ESM compatibility (#5507) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added `with { type: 'json' }` assertions to all JSON imports to ensure compatibility with Node.js ES modules and Playwright environments. This follows the current ESM specification where JSON imports require explicit type assertions. Affected areas: - Tailwind config - i18n locale imports (36 files) - Test fixtures and spec files - API client feature flags - Core color palettes References: - https://nodejs.org/api/esm.html - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import/with 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude --- .../ManagerProgressDialogContent.test.ts | 2 +- .../content/manager/ManagerHeader.test.ts | 2 +- .../content/manager/PackVersionBadge.test.ts | 2 +- .../PackVersionSelectorPopover.test.ts | 2 +- .../manager/button/PackEnableToggle.test.ts | 2 +- .../tabs/DescriptionTabPanel.test.ts | 2 +- .../skeleton/PackCardGridSkeleton.test.ts | 2 +- .../dialog/content/signin/SignInForm.spec.ts | 2 +- .../topbar/CurrentUserButton.spec.ts | 2 +- .../topbar/CurrentUserPopover.spec.ts | 2 +- src/constants/coreColorPalettes.ts | 12 ++-- src/i18n.ts | 72 +++++++++---------- src/lib/litegraph/test/testExtensions.ts | 8 +-- .../vueNodes/components/NodeSlots.spec.ts | 2 +- src/scripts/api.ts | 2 +- tailwind.config.ts | 2 +- .../litegraph/core/fixtures/testExtensions.ts | 8 +-- 17 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/components/dialog/content/ManagerProgressDialogContent.test.ts b/src/components/dialog/content/ManagerProgressDialogContent.test.ts index dc7ac8910..0075c9dc5 100644 --- a/src/components/dialog/content/ManagerProgressDialogContent.test.ts +++ b/src/components/dialog/content/ManagerProgressDialogContent.test.ts @@ -7,7 +7,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import ManagerProgressDialogContent from './ManagerProgressDialogContent.vue' diff --git a/src/components/dialog/content/manager/ManagerHeader.test.ts b/src/components/dialog/content/manager/ManagerHeader.test.ts index 291020d1f..fa974bbfc 100644 --- a/src/components/dialog/content/manager/ManagerHeader.test.ts +++ b/src/components/dialog/content/manager/ManagerHeader.test.ts @@ -6,7 +6,7 @@ import Tooltip from 'primevue/tooltip' import { describe, expect, it } from 'vitest' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import ManagerHeader from './ManagerHeader.vue' diff --git a/src/components/dialog/content/manager/PackVersionBadge.test.ts b/src/components/dialog/content/manager/PackVersionBadge.test.ts index 1246de66b..f57c65760 100644 --- a/src/components/dialog/content/manager/PackVersionBadge.test.ts +++ b/src/components/dialog/content/manager/PackVersionBadge.test.ts @@ -6,7 +6,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import PackVersionBadge from './PackVersionBadge.vue' import PackVersionSelectorPopover from './PackVersionSelectorPopover.vue' diff --git a/src/components/dialog/content/manager/PackVersionSelectorPopover.test.ts b/src/components/dialog/content/manager/PackVersionSelectorPopover.test.ts index 83b4d320e..6b712f743 100644 --- a/src/components/dialog/content/manager/PackVersionSelectorPopover.test.ts +++ b/src/components/dialog/content/manager/PackVersionSelectorPopover.test.ts @@ -10,7 +10,7 @@ import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' import VerifiedIcon from '@/components/icons/VerifiedIcon.vue' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } // SelectedVersion is now using direct strings instead of enum diff --git a/src/components/dialog/content/manager/button/PackEnableToggle.test.ts b/src/components/dialog/content/manager/button/PackEnableToggle.test.ts index 44b319553..30112a88b 100644 --- a/src/components/dialog/content/manager/button/PackEnableToggle.test.ts +++ b/src/components/dialog/content/manager/button/PackEnableToggle.test.ts @@ -6,7 +6,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import { useComfyManagerStore } from '@/stores/comfyManagerStore' import PackEnableToggle from './PackEnableToggle.vue' diff --git a/src/components/dialog/content/manager/infoPanel/tabs/DescriptionTabPanel.test.ts b/src/components/dialog/content/manager/infoPanel/tabs/DescriptionTabPanel.test.ts index fac684a52..d8dd40c4e 100644 --- a/src/components/dialog/content/manager/infoPanel/tabs/DescriptionTabPanel.test.ts +++ b/src/components/dialog/content/manager/infoPanel/tabs/DescriptionTabPanel.test.ts @@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import { components } from '@/types/comfyRegistryTypes' import DescriptionTabPanel from './DescriptionTabPanel.vue' diff --git a/src/components/dialog/content/manager/skeleton/PackCardGridSkeleton.test.ts b/src/components/dialog/content/manager/skeleton/PackCardGridSkeleton.test.ts index 4948e79fd..db1f2a13f 100644 --- a/src/components/dialog/content/manager/skeleton/PackCardGridSkeleton.test.ts +++ b/src/components/dialog/content/manager/skeleton/PackCardGridSkeleton.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from 'vitest' import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import GridSkeleton from './GridSkeleton.vue' import PackCardSkeleton from './PackCardSkeleton.vue' diff --git a/src/components/dialog/content/signin/SignInForm.spec.ts b/src/components/dialog/content/signin/SignInForm.spec.ts index 1e5b6304e..62c1fc0f7 100644 --- a/src/components/dialog/content/signin/SignInForm.spec.ts +++ b/src/components/dialog/content/signin/SignInForm.spec.ts @@ -10,7 +10,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import SignInForm from './SignInForm.vue' diff --git a/src/components/topbar/CurrentUserButton.spec.ts b/src/components/topbar/CurrentUserButton.spec.ts index abb2a08b7..55e23fa23 100644 --- a/src/components/topbar/CurrentUserButton.spec.ts +++ b/src/components/topbar/CurrentUserButton.spec.ts @@ -4,7 +4,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { h } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import CurrentUserButton from './CurrentUserButton.vue' diff --git a/src/components/topbar/CurrentUserPopover.spec.ts b/src/components/topbar/CurrentUserPopover.spec.ts index 9929d316a..174850a0d 100644 --- a/src/components/topbar/CurrentUserPopover.spec.ts +++ b/src/components/topbar/CurrentUserPopover.spec.ts @@ -4,7 +4,7 @@ import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest' import { h } from 'vue' import { createI18n } from 'vue-i18n' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import CurrentUserPopover from './CurrentUserPopover.vue' diff --git a/src/constants/coreColorPalettes.ts b/src/constants/coreColorPalettes.ts index 58c7f1522..f20cb260d 100644 --- a/src/constants/coreColorPalettes.ts +++ b/src/constants/coreColorPalettes.ts @@ -1,9 +1,9 @@ -import arc from '@/assets/palettes/arc.json' -import dark from '@/assets/palettes/dark.json' -import github from '@/assets/palettes/github.json' -import light from '@/assets/palettes/light.json' -import nord from '@/assets/palettes/nord.json' -import solarized from '@/assets/palettes/solarized.json' +import arc from '@/assets/palettes/arc.json' with { type: 'json' } +import dark from '@/assets/palettes/dark.json' with { type: 'json' } +import github from '@/assets/palettes/github.json' with { type: 'json' } +import light from '@/assets/palettes/light.json' with { type: 'json' } +import nord from '@/assets/palettes/nord.json' with { type: 'json' } +import solarized from '@/assets/palettes/solarized.json' with { type: 'json' } import type { ColorPalettes, CompletedPalette diff --git a/src/i18n.ts b/src/i18n.ts index 08369af62..2544fc7eb 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,41 +1,41 @@ import { createI18n } from 'vue-i18n' -import arCommands from './locales/ar/commands.json' -import ar from './locales/ar/main.json' -import arNodes from './locales/ar/nodeDefs.json' -import arSettings from './locales/ar/settings.json' -import enCommands from './locales/en/commands.json' -import en from './locales/en/main.json' -import enNodes from './locales/en/nodeDefs.json' -import enSettings from './locales/en/settings.json' -import esCommands from './locales/es/commands.json' -import es from './locales/es/main.json' -import esNodes from './locales/es/nodeDefs.json' -import esSettings from './locales/es/settings.json' -import frCommands from './locales/fr/commands.json' -import fr from './locales/fr/main.json' -import frNodes from './locales/fr/nodeDefs.json' -import frSettings from './locales/fr/settings.json' -import jaCommands from './locales/ja/commands.json' -import ja from './locales/ja/main.json' -import jaNodes from './locales/ja/nodeDefs.json' -import jaSettings from './locales/ja/settings.json' -import koCommands from './locales/ko/commands.json' -import ko from './locales/ko/main.json' -import koNodes from './locales/ko/nodeDefs.json' -import koSettings from './locales/ko/settings.json' -import ruCommands from './locales/ru/commands.json' -import ru from './locales/ru/main.json' -import ruNodes from './locales/ru/nodeDefs.json' -import ruSettings from './locales/ru/settings.json' -import zhTWCommands from './locales/zh-TW/commands.json' -import zhTW from './locales/zh-TW/main.json' -import zhTWNodes from './locales/zh-TW/nodeDefs.json' -import zhTWSettings from './locales/zh-TW/settings.json' -import zhCommands from './locales/zh/commands.json' -import zh from './locales/zh/main.json' -import zhNodes from './locales/zh/nodeDefs.json' -import zhSettings from './locales/zh/settings.json' +import arCommands from './locales/ar/commands.json' with { type: 'json' } +import ar from './locales/ar/main.json' with { type: 'json' } +import arNodes from './locales/ar/nodeDefs.json' with { type: 'json' } +import arSettings from './locales/ar/settings.json' with { type: 'json' } +import enCommands from './locales/en/commands.json' with { type: 'json' } +import en from './locales/en/main.json' with { type: 'json' } +import enNodes from './locales/en/nodeDefs.json' with { type: 'json' } +import enSettings from './locales/en/settings.json' with { type: 'json' } +import esCommands from './locales/es/commands.json' with { type: 'json' } +import es from './locales/es/main.json' with { type: 'json' } +import esNodes from './locales/es/nodeDefs.json' with { type: 'json' } +import esSettings from './locales/es/settings.json' with { type: 'json' } +import frCommands from './locales/fr/commands.json' with { type: 'json' } +import fr from './locales/fr/main.json' with { type: 'json' } +import frNodes from './locales/fr/nodeDefs.json' with { type: 'json' } +import frSettings from './locales/fr/settings.json' with { type: 'json' } +import jaCommands from './locales/ja/commands.json' with { type: 'json' } +import ja from './locales/ja/main.json' with { type: 'json' } +import jaNodes from './locales/ja/nodeDefs.json' with { type: 'json' } +import jaSettings from './locales/ja/settings.json' with { type: 'json' } +import koCommands from './locales/ko/commands.json' with { type: 'json' } +import ko from './locales/ko/main.json' with { type: 'json' } +import koNodes from './locales/ko/nodeDefs.json' with { type: 'json' } +import koSettings from './locales/ko/settings.json' with { type: 'json' } +import ruCommands from './locales/ru/commands.json' with { type: 'json' } +import ru from './locales/ru/main.json' with { type: 'json' } +import ruNodes from './locales/ru/nodeDefs.json' with { type: 'json' } +import ruSettings from './locales/ru/settings.json' with { type: 'json' } +import zhTWCommands from './locales/zh-TW/commands.json' with { type: 'json' } +import zhTW from './locales/zh-TW/main.json' with { type: 'json' } +import zhTWNodes from './locales/zh-TW/nodeDefs.json' with { type: 'json' } +import zhTWSettings from './locales/zh-TW/settings.json' with { type: 'json' } +import zhCommands from './locales/zh/commands.json' with { type: 'json' } +import zh from './locales/zh/main.json' with { type: 'json' } +import zhNodes from './locales/zh/nodeDefs.json' with { type: 'json' } +import zhSettings from './locales/zh/settings.json' with { type: 'json' } function buildLocale(main: M, nodes: N, commands: C, settings: S) { return { diff --git a/src/lib/litegraph/test/testExtensions.ts b/src/lib/litegraph/test/testExtensions.ts index 097808fd2..bb59e7221 100644 --- a/src/lib/litegraph/test/testExtensions.ts +++ b/src/lib/litegraph/test/testExtensions.ts @@ -7,10 +7,10 @@ import type { ISerialisedGraph, SerialisableGraph } from '../src/types/serialisation' -import floatingBranch from './assets/floatingBranch.json' -import floatingLink from './assets/floatingLink.json' -import linkedNodes from './assets/linkedNodes.json' -import reroutesComplex from './assets/reroutesComplex.json' +import floatingBranch from './assets/floatingBranch.json' with { type: 'json' } +import floatingLink from './assets/floatingLink.json' with { type: 'json' } +import linkedNodes from './assets/linkedNodes.json' with { type: 'json' } +import reroutesComplex from './assets/reroutesComplex.json' with { type: 'json' } import { basicSerialisableGraph, minimalSerialisableGraph, diff --git a/src/renderer/extensions/vueNodes/components/NodeSlots.spec.ts b/src/renderer/extensions/vueNodes/components/NodeSlots.spec.ts index 522a9e8a6..f58e115ad 100644 --- a/src/renderer/extensions/vueNodes/components/NodeSlots.spec.ts +++ b/src/renderer/extensions/vueNodes/components/NodeSlots.spec.ts @@ -5,7 +5,7 @@ import { type PropType, defineComponent } from 'vue' import { createI18n } from 'vue-i18n' import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' -import enMessages from '@/locales/en/main.json' +import enMessages from '@/locales/en/main.json' with { type: 'json' } import NodeSlots from './NodeSlots.vue' diff --git a/src/scripts/api.ts b/src/scripts/api.ts index 9480face6..951ac1272 100644 --- a/src/scripts/api.ts +++ b/src/scripts/api.ts @@ -1,7 +1,7 @@ import axios from 'axios' import { get } from 'es-toolkit/compat' -import defaultClientFeatureFlags from '@/config/clientFeatureFlags.json' +import defaultClientFeatureFlags from '@/config/clientFeatureFlags.json' with { type: 'json' } import type { DisplayComponentWsMessage, EmbeddingsResponse, diff --git a/tailwind.config.ts b/tailwind.config.ts index 4602b69a9..e5e39987b 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,4 +1,4 @@ -import lucide from '@iconify-json/lucide/icons.json' +import lucide from '@iconify-json/lucide/icons.json' with { type: 'json' } import { addDynamicIconSelectors } from '@iconify/tailwind' import { iconCollection } from './build/customIconCollection' diff --git a/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts b/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts index 8c4869da2..300b23814 100644 --- a/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts +++ b/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts @@ -7,10 +7,10 @@ import type { SerialisableGraph } from '@/lib/litegraph/src/types/serialisation' -import floatingBranch from './assets/floatingBranch.json' -import floatingLink from './assets/floatingLink.json' -import linkedNodes from './assets/linkedNodes.json' -import reroutesComplex from './assets/reroutesComplex.json' +import floatingBranch from './assets/floatingBranch.json' with { type: 'json' } +import floatingLink from './assets/floatingLink.json' with { type: 'json' } +import linkedNodes from './assets/linkedNodes.json' with { type: 'json' } +import reroutesComplex from './assets/reroutesComplex.json' with { type: 'json' } import { basicSerialisableGraph, minimalSerialisableGraph, From 6645b3917fda263db0a6637a618c65eae0973e77 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Fri, 12 Sep 2025 00:09:04 -0700 Subject: [PATCH 010/162] Update ApiNodesSignInContent.vue (#5514) --- src/components/dialog/content/ApiNodesSignInContent.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/dialog/content/ApiNodesSignInContent.vue b/src/components/dialog/content/ApiNodesSignInContent.vue index f4765a809..af6f4fff6 100644 --- a/src/components/dialog/content/ApiNodesSignInContent.vue +++ b/src/components/dialog/content/ApiNodesSignInContent.vue @@ -1,4 +1,3 @@ - - - diff --git a/src/renderer/extensions/vueNodes/widgets/components/layout/WidgetLayoutField.vue b/src/renderer/extensions/vueNodes/widgets/components/layout/WidgetLayoutField.vue index 5d7e46f5d..268a7c097 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/layout/WidgetLayoutField.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/layout/WidgetLayoutField.vue @@ -19,7 +19,7 @@ defineProps<{ {{ widget.name }}

Date: Fri, 12 Sep 2025 23:06:28 -0700 Subject: [PATCH 015/162] ADR: PrimeVue Fork Decision (#5230) * ADR: Add PrimeVue fork decision record Adds ADR-0003 documenting the decision to fork PrimeVue as a monorepo workspace package. Key rationale includes transform coordinate system conflicts and virtual canvas scroll interference that require component-level modifications. * ADR: Reject PrimeVue fork decision - Change status from Proposed to Rejected - Document rationale: implementation complexity with dual monorepos, maintenance burden, alternative solutions available - Add specific code citations and repository links - Include alternative approach using shadcn/ui for selective replacement --- docs/adr/0004-fork-primevue-ui-library.md | 62 +++++++++++++++++++++++ docs/adr/README.md | 1 + 2 files changed, 63 insertions(+) create mode 100644 docs/adr/0004-fork-primevue-ui-library.md diff --git a/docs/adr/0004-fork-primevue-ui-library.md b/docs/adr/0004-fork-primevue-ui-library.md new file mode 100644 index 000000000..02bd18736 --- /dev/null +++ b/docs/adr/0004-fork-primevue-ui-library.md @@ -0,0 +1,62 @@ +# 4. Fork PrimeVue UI Library + +Date: 2025-08-27 + +## Status + +Rejected + +## Context + +ComfyUI's frontend requires modifications to PrimeVue components that cannot be achieved through the library's customization APIs. Two specific technical incompatibilities have been identified with the transform-based canvas architecture: + +**Screen Coordinate Hit-Testing Conflicts:** +- PrimeVue components use `getBoundingClientRect()` for screen coordinate calculations that don't account for CSS transforms +- The Slider component directly uses raw `pageX/pageY` coordinates ([lines 102-103](https://github.com/primefaces/primevue/blob/master/packages/primevue/src/slider/Slider.vue#L102-L103)) without transform-aware positioning +- This breaks interaction in transformed coordinate spaces where screen coordinates don't match logical element positions + +**Virtual Canvas Scroll Interference:** +- LiteGraph's infinite canvas uses scroll coordinates semantically for graph navigation via the `DragAndScale` coordinate system +- PrimeVue overlay components automatically trigger `scrollIntoView` behavior which interferes with this virtual positioning +- This issue is documented in [PrimeVue discussion #4270](https://github.com/orgs/primefaces/discussions/4270) where the feature request was made to disable this behavior + +**Historical Overlay Issues:** +- Previous z-index positioning conflicts required manual workarounds (commit `6d4eafb0`) where PrimeVue Dialog components needed `autoZIndex: false` and custom mask styling, later resolved by removing PrimeVue's automatic z-index management entirely + +**Minimal Update Overhead:** +- Analysis of git history shows only 2 PrimeVue version updates in 2+ years, indicating that upstream sync overhead is negligible for this project + +**Future Interaction System Requirements:** +- The ongoing canvas architecture evolution will require more granular control over component interaction and event handling as the transform-based system matures +- Predictable need for additional component modifications beyond current identified issues + +## Decision + +We will **NOT** fork PrimeVue. After evaluation, forking was determined to be unnecessarily complex and costly. + +**Rationale for Rejection:** + +- **Significant Implementation Complexity**: PrimeVue is structured as a monorepo ([primefaces/primevue](https://github.com/primefaces/primevue)) with significant code in a separate monorepo ([PrimeUIX](https://github.com/primefaces/primeuix)). Forking would require importing both repositories whole and selectively pruning or exempting components from our workspace tooling, adding substantial complexity. + +- **Alternative Solutions Available**: The modifications we identified (e.g., scroll interference issues, coordinate system conflicts) have less costly solutions that don't require maintaining a full fork. For example, coordinate issues could be addressed through event interception and synthetic event creation with scaled values. + +- **Maintenance Burden**: Ongoing maintenance and upgrades would be very painful, requiring manual conflict resolution and keeping pace with upstream changes across multiple repositories. + +- **Limited Tooling Support**: There isn't adequate tooling that provides the granularity needed to cleanly manage a PrimeVue fork within our existing infrastructure. + +## Consequences + +### Alternative Approach + +- **Use PrimeVue as External Dependency**: Continue using PrimeVue as a standard npm dependency +- **Targeted Workarounds**: Implement specific solutions for identified issues (coordinate system conflicts, scroll interference) without forking the entire library +- **Selective Component Replacement**: Use libraries like shadcn/ui to replace specific problematic PrimeVue components and adjust them to match our design system +- **Upstream Engagement**: Continue engaging with PrimeVue community for feature requests and bug reports +- **Maintain Flexibility**: Preserve ability to upgrade PrimeVue versions without fork maintenance overhead + +## Notes + +- Technical issues documented in the Context section remain valid concerns +- Solutions will be pursued through targeted fixes rather than wholesale forking +- Future re-evaluation possible if PrimeVue's architecture significantly changes or if alternative tooling becomes available +- This decision prioritizes maintainability and development velocity over maximum customization control diff --git a/docs/adr/README.md b/docs/adr/README.md index 00e50a639..5f6e5c2cf 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -13,6 +13,7 @@ An Architecture Decision Record captures an important architectural decision mad | [0001](0001-merge-litegraph-into-frontend.md) | Merge LiteGraph.js into ComfyUI Frontend | Accepted | 2025-08-05 | | [0002](0002-monorepo-conversion.md) | Restructure as a Monorepo | Accepted | 2025-08-25 | | [0003](0003-crdt-based-layout-system.md) | Centralized Layout Management with CRDT | Proposed | 2025-08-27 | +| [0004](0004-fork-primevue-ui-library.md) | Fork PrimeVue UI Library | Rejected | 2025-08-27 | ## Creating a New ADR From 0e01ca0a980f0a1bf5bbeac90972a53454711e84 Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Fri, 12 Sep 2025 23:34:39 -0700 Subject: [PATCH 016/162] a11y: Bigger click/touch target for Slider track (#5524) * a11y: Bigger click/touch target for Slider track * a11y: z-index fix and bigger thumb too. --- src/components/ui/slider/Slider.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/ui/slider/Slider.vue b/src/components/ui/slider/Slider.vue index 3ce2eb3d8..a7d27299e 100644 --- a/src/components/ui/slider/Slider.vue +++ b/src/components/ui/slider/Slider.vue @@ -49,7 +49,8 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits) :class=" cn( 'bg-node-stroke relative grow overflow-hidden rounded-full', - 'cursor-pointer', + 'cursor-pointer overflow-visible', + `before:absolute before:-inset-2 before:block before:bg-transparent`, 'data-[orientation=horizontal]:h-0.5 data-[orientation=horizontal]:w-full', 'data-[orientation=vertical]:h-full data-[orientation=vertical]:w-0.5' ) @@ -69,6 +70,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits) cn( 'bg-node-component-surface-highlight ring-node-component-surface-selected block size-3.5 shrink-0 rounded-full shadow-sm transition-[color,box-shadow]', 'cursor-grab', + 'before:absolute before:-inset-1 before:block before:bg-transparent before:rounded-full', 'hover:ring-2 focus-visible:ring-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50', { 'cursor-grabbing': pressed } ) From 90b1b47dd009cb7b4a006ed9f9abff2030b084c0 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 00:31:36 -0700 Subject: [PATCH 017/162] [test] Add Vue Node header component test (#5457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add node header component test * [refactor] use separate const declarations instead of mutable variable in test - addresses @DrJKL's code style suggestion Replace mutable `let icon` with descriptive `const expandedIcon` and `const collapsedIcon` variables for better code clarity and immutability in the chevron icon test. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * [config] remove unnecessary vitest exclude patterns - addresses @DrJKL's configuration review Remove redundant exclude patterns from vitest config as they are already covered by vitest's default exclusions. Simplifies configuration while maintaining functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * [config] remove unnecessary vitest exclude patterns - addresses @DrJKL's configuration review Remove redundant exclude patterns from vitest config as they are already covered by vitest's default exclusions. Simplifies configuration while maintaining functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --------- Co-authored-by: Claude --- .../vueNodes/components/NodeHeader.spec.ts | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts diff --git a/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts b/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts new file mode 100644 index 000000000..240a51071 --- /dev/null +++ b/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts @@ -0,0 +1,129 @@ +import { mount } from '@vue/test-utils' +import { createPinia } from 'pinia' +import PrimeVue from 'primevue/config' +import InputText from 'primevue/inputtext' +import { describe, expect, it } from 'vitest' +import { createI18n } from 'vue-i18n' + +import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' +import enMessages from '@/locales/en/main.json' + +import NodeHeader from './NodeHeader.vue' + +const makeNodeData = (overrides: Partial = {}): VueNodeData => ({ + id: '1', + title: 'KSampler', + type: 'KSampler', + mode: 0, + selected: false, + executing: false, + widgets: [], + inputs: [], + outputs: [], + flags: { collapsed: false }, + ...overrides +}) + +const mountHeader = ( + props?: Partial['$props']> +) => { + const i18n = createI18n({ + legacy: false, + locale: 'en', + messages: { en: enMessages } + }) + return mount(NodeHeader, { + global: { + plugins: [PrimeVue, i18n, createPinia()], + components: { InputText } + }, + props: { + nodeData: makeNodeData(), + readonly: false, + collapsed: false, + ...props + } + }) +} + +describe('NodeHeader.vue', () => { + it('emits collapse when collapse button is clicked', async () => { + const wrapper = mountHeader() + const btn = wrapper.get('[data-testid="node-collapse-button"]') + await btn.trigger('click') + expect(wrapper.emitted('collapse')).toBeTruthy() + }) + + it('shows the current node title and updates when prop changes', async () => { + const wrapper = mountHeader({ + nodeData: makeNodeData({ title: 'Original' }) + }) + // Title visible via EditableText in view mode + expect(wrapper.get('[data-testid="node-title"]').text()).toContain( + 'Original' + ) + + // Update prop title; should sync displayTitle + await wrapper.setProps({ nodeData: makeNodeData({ title: 'Updated' }) }) + expect(wrapper.get('[data-testid="node-title"]').text()).toContain( + 'Updated' + ) + }) + + it('allows renaming via double click and emits update:title on confirm', async () => { + const wrapper = mountHeader({ nodeData: makeNodeData({ title: 'Start' }) }) + + // Enter edit mode + await wrapper.get('[data-testid="node-header-1"]').trigger('dblclick') + + // Edit and confirm (EditableText uses blur or enter to emit) + const input = wrapper.get('[data-testid="node-title-input"]') + await input.setValue('My Custom Sampler') + await input.trigger('keyup.enter') + await input.trigger('blur') + + // NodeHeader should emit update:title with trimmed value + const e = wrapper.emitted('update:title') + expect(e).toBeTruthy() + expect(e?.[0]).toEqual(['My Custom Sampler']) + }) + + it('cancels rename on escape and keeps previous title', async () => { + const wrapper = mountHeader({ nodeData: makeNodeData({ title: 'KeepMe' }) }) + + await wrapper.get('[data-testid="node-header-1"]').trigger('dblclick') + const input = wrapper.get('[data-testid="node-title-input"]') + await input.setValue('Should Not Save') + await input.trigger('keyup.escape') + + // Should not emit update:title + expect(wrapper.emitted('update:title')).toBeFalsy() + + // Title remains the original + expect(wrapper.get('[data-testid="node-title"]').text()).toContain('KeepMe') + }) + + it('honors readonly: hides collapse button and prevents editing', async () => { + const wrapper = mountHeader({ readonly: true }) + + // Collapse button should be hidden + const btn = wrapper.find('[data-testid="node-collapse-button"]') + expect(btn.exists()).toBe(true) + // v-show hides via display:none + expect((btn.element as HTMLButtonElement).style.display).toBe('none') + // In unit test, presence is fine; simulate double click should not create input + await wrapper.get('[data-testid="node-header-1"]').trigger('dblclick') + const input = wrapper.find('[data-testid="node-title-input"]') + expect(input.exists()).toBe(false) + }) + + it('renders correct chevron icon based on collapsed prop', async () => { + const wrapper = mountHeader({ collapsed: false }) + const expandedIcon = wrapper.get('i') + expect(expandedIcon.classes()).toContain('pi-chevron-down') + + await wrapper.setProps({ collapsed: true }) + const collapsedIcon = wrapper.get('i') + expect(collapsedIcon.classes()).toContain('pi-chevron-right') + }) +}) From 48d01745cd21b0fcf856c8fd1f8eaa6548e74345 Mon Sep 17 00:00:00 2001 From: snomiao Date: Sat, 13 Sep 2025 17:18:18 +0900 Subject: [PATCH 018/162] feat: add test count display to Playwright PR comments (#5458) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add test count display to Playwright PR comments - Add extract-playwright-counts.mjs script to parse test results from Playwright reports - Update pr-playwright-deploy-and-comment.sh to extract and display test counts - Show overall summary with passed/failed/flaky/skipped counts - Display per-browser test counts inline with report links - Use dynamic status icons based on test results (✅/❌/⚠️) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * feat: include skipped test count in per-browser display - Add skipped test extraction for individual browser reports - Update per-browser display format to show all four counts: (✅ passed / ❌ failed / ⚠️ flaky / ⏭️ skipped) - Provides complete test result visibility at a glance 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * fix: improve test count extraction reliability in CI - Use absolute paths for script and report directories - Add debug logging to help diagnose extraction issues - Move counts display after View Report link as requested - Format: [View Report](url) • ✅ passed / ❌ failed / ⚠️ flaky / ⏭️ skipped 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * fix: generate JSON reports alongside HTML for test count extraction - Add JSON reporter to Playwright test runs - Generate report.json alongside HTML reports - Store JSON report in playwright-report directory - This enables accurate test count extraction from CI artifacts The HTML reports alone don't contain easily extractable test statistics as they use a React app with dynamically loaded data. JSON reports provide direct access to test counts. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * fix: correct JSON reporter syntax for Playwright tests - Use proper syntax for JSON reporter with outputFile option - Run separate commands for HTML and JSON report merging - Specify output path directly in reporter configuration - Ensures report.json is created in playwright-report directory This fixes the "No such file or directory" error when trying to move report.json file, as it wasn't being created in the first place. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * Revert "fix: correct JSON reporter syntax for Playwright tests" This reverts commit 605d7cc1e2c33a2f40eaf27ff023b0b8ac4ed87d. * fix: use correct Playwright reporter syntax with comma-separated list - Use --reporter=html,json syntax (comma-separated, not space) - Move test-results.json to playwright-report/report.json after generation - Remove incorrect PLAYWRIGHT_JSON_OUTPUT_NAME env variable - Add || true to prevent failure if JSON file doesn't exist The JSON reporter outputs to test-results.json by default when using the comma-separated reporter list syntax. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * fix: improve test count extraction reliability in CI - Use separate --reporter flags for list, html, and json - Set PLAYWRIGHT_JSON_OUTPUT_NAME env var to specify JSON output path - Run HTML and JSON report generation separately for merged reports - Ensures report.json is created in playwright-report directory The combined reporter syntax wasn't creating the JSON file properly. Using separate reporter flags with env var ensures JSON is generated. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * Update scripts/cicd/pr-playwright-deploy-and-comment.sh Co-authored-by: Alexander Brown * refactor: convert extraction script to TypeScript and use tsx - Convert extract-playwright-counts.mjs to TypeScript (.ts) - Add proper TypeScript types for better type safety - Use tsx for execution instead of node - Auto-install tsx in CI if not available - Better alignment with the TypeScript codebase This provides better type safety and consistency with the rest of the codebase while maintaining the same functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * chore(pr-playwright-deploy-and-comment.sh): move tsx installation check to the beginning of the script for better organization and efficiency * [auto-fix] Apply ESLint and Prettier fixes --------- Co-authored-by: Claude Co-authored-by: Alexander Brown Co-authored-by: GitHub Action --- .github/workflows/test-ui.yaml | 15 +- scripts/cicd/extract-playwright-counts.ts | 183 ++++++++++++++++++ .../cicd/pr-playwright-deploy-and-comment.sh | 152 ++++++++++++++- 3 files changed, 340 insertions(+), 10 deletions(-) create mode 100755 scripts/cicd/extract-playwright-counts.ts diff --git a/.github/workflows/test-ui.yaml b/.github/workflows/test-ui.yaml index f8f6cf955..eaaaefee0 100644 --- a/.github/workflows/test-ui.yaml +++ b/.github/workflows/test-ui.yaml @@ -229,7 +229,13 @@ jobs: - name: Run Playwright tests (${{ matrix.browser }}) id: playwright - run: npx playwright test --project=${{ matrix.browser }} --reporter=html + run: | + # Run tests with both HTML and JSON reporters + PLAYWRIGHT_JSON_OUTPUT_NAME=playwright-report/report.json \ + npx playwright test --project=${{ matrix.browser }} \ + --reporter=list \ + --reporter=html \ + --reporter=json working-directory: ComfyUI_frontend - uses: actions/upload-artifact@v4 @@ -275,7 +281,12 @@ jobs: merge-multiple: true - name: Merge into HTML Report - run: npx playwright merge-reports --reporter html ./all-blob-reports + run: | + # Generate HTML report + npx playwright merge-reports --reporter=html ./all-blob-reports + # Generate JSON report separately with explicit output path + PLAYWRIGHT_JSON_OUTPUT_NAME=playwright-report/report.json \ + npx playwright merge-reports --reporter=json ./all-blob-reports working-directory: ComfyUI_frontend - name: Upload HTML report diff --git a/scripts/cicd/extract-playwright-counts.ts b/scripts/cicd/extract-playwright-counts.ts new file mode 100755 index 000000000..ff6f44db3 --- /dev/null +++ b/scripts/cicd/extract-playwright-counts.ts @@ -0,0 +1,183 @@ +#!/usr/bin/env tsx +import fs from 'fs' +import path from 'path' + +interface TestStats { + expected?: number + unexpected?: number + flaky?: number + skipped?: number + finished?: number +} + +interface ReportData { + stats?: TestStats +} + +interface TestCounts { + passed: number + failed: number + flaky: number + skipped: number + total: number +} + +/** + * Extract test counts from Playwright HTML report + * @param reportDir - Path to the playwright-report directory + * @returns Test counts { passed, failed, flaky, skipped, total } + */ +function extractTestCounts(reportDir: string): TestCounts { + const counts: TestCounts = { + passed: 0, + failed: 0, + flaky: 0, + skipped: 0, + total: 0 + } + + try { + // First, try to find report.json which Playwright generates with JSON reporter + const jsonReportFile = path.join(reportDir, 'report.json') + if (fs.existsSync(jsonReportFile)) { + const reportJson: ReportData = JSON.parse( + fs.readFileSync(jsonReportFile, 'utf-8') + ) + if (reportJson.stats) { + const stats = reportJson.stats + counts.total = stats.expected || 0 + counts.passed = + (stats.expected || 0) - + (stats.unexpected || 0) - + (stats.flaky || 0) - + (stats.skipped || 0) + counts.failed = stats.unexpected || 0 + counts.flaky = stats.flaky || 0 + counts.skipped = stats.skipped || 0 + return counts + } + } + + // Try index.html - Playwright HTML report embeds data in a script tag + const indexFile = path.join(reportDir, 'index.html') + if (fs.existsSync(indexFile)) { + const content = fs.readFileSync(indexFile, 'utf-8') + + // Look for the embedded report data in various formats + // Format 1: window.playwrightReportBase64 + let dataMatch = content.match( + /window\.playwrightReportBase64\s*=\s*["']([^"']+)["']/ + ) + if (dataMatch) { + try { + const decodedData = Buffer.from(dataMatch[1], 'base64').toString( + 'utf-8' + ) + const reportData: ReportData = JSON.parse(decodedData) + + if (reportData.stats) { + const stats = reportData.stats + counts.total = stats.expected || 0 + counts.passed = + (stats.expected || 0) - + (stats.unexpected || 0) - + (stats.flaky || 0) - + (stats.skipped || 0) + counts.failed = stats.unexpected || 0 + counts.flaky = stats.flaky || 0 + counts.skipped = stats.skipped || 0 + return counts + } + } catch (e) { + // Continue to try other formats + } + } + + // Format 2: window.playwrightReport + dataMatch = content.match(/window\.playwrightReport\s*=\s*({[\s\S]*?});/) + if (dataMatch) { + try { + // Use Function constructor instead of eval for safety + const reportData = new Function( + 'return ' + dataMatch[1] + )() as ReportData + + if (reportData.stats) { + const stats = reportData.stats + counts.total = stats.expected || 0 + counts.passed = + (stats.expected || 0) - + (stats.unexpected || 0) - + (stats.flaky || 0) - + (stats.skipped || 0) + counts.failed = stats.unexpected || 0 + counts.flaky = stats.flaky || 0 + counts.skipped = stats.skipped || 0 + return counts + } + } catch (e) { + // Continue to try other formats + } + } + + // Format 3: Look for stats in the HTML content directly + // Playwright sometimes renders stats in the UI + const statsMatch = content.match( + /(\d+)\s+passed[^0-9]*(\d+)\s+failed[^0-9]*(\d+)\s+flaky[^0-9]*(\d+)\s+skipped/i + ) + if (statsMatch) { + counts.passed = parseInt(statsMatch[1]) || 0 + counts.failed = parseInt(statsMatch[2]) || 0 + counts.flaky = parseInt(statsMatch[3]) || 0 + counts.skipped = parseInt(statsMatch[4]) || 0 + counts.total = + counts.passed + counts.failed + counts.flaky + counts.skipped + return counts + } + + // Format 4: Try to extract from summary text patterns + const passedMatch = content.match(/(\d+)\s+(?:tests?|specs?)\s+passed/i) + const failedMatch = content.match(/(\d+)\s+(?:tests?|specs?)\s+failed/i) + const flakyMatch = content.match(/(\d+)\s+(?:tests?|specs?)\s+flaky/i) + const skippedMatch = content.match(/(\d+)\s+(?:tests?|specs?)\s+skipped/i) + const totalMatch = content.match( + /(\d+)\s+(?:tests?|specs?)\s+(?:total|ran)/i + ) + + if (passedMatch) counts.passed = parseInt(passedMatch[1]) || 0 + if (failedMatch) counts.failed = parseInt(failedMatch[1]) || 0 + if (flakyMatch) counts.flaky = parseInt(flakyMatch[1]) || 0 + if (skippedMatch) counts.skipped = parseInt(skippedMatch[1]) || 0 + if (totalMatch) { + counts.total = parseInt(totalMatch[1]) || 0 + } else if ( + counts.passed || + counts.failed || + counts.flaky || + counts.skipped + ) { + counts.total = + counts.passed + counts.failed + counts.flaky + counts.skipped + } + } + } catch (error) { + console.error(`Error reading report from ${reportDir}:`, error) + } + + return counts +} + +// Main execution +const reportDir = process.argv[2] + +if (!reportDir) { + console.error('Usage: extract-playwright-counts.ts ') + process.exit(1) +} + +const counts = extractTestCounts(reportDir) + +// Output as JSON for easy parsing in shell script +console.log(JSON.stringify(counts)) + +export { extractTestCounts } diff --git a/scripts/cicd/pr-playwright-deploy-and-comment.sh b/scripts/cicd/pr-playwright-deploy-and-comment.sh index 767a7f514..aeab37c8e 100755 --- a/scripts/cicd/pr-playwright-deploy-and-comment.sh +++ b/scripts/cicd/pr-playwright-deploy-and-comment.sh @@ -58,6 +58,12 @@ if ! command -v wrangler > /dev/null 2>&1; then } fi +# Check if tsx is available, install if not +if ! command -v tsx > /dev/null 2>&1; then + echo "Installing tsx..." >&2 + npm install -g tsx >&2 || echo "Failed to install tsx" >&2 +fi + # Deploy a single browser report, WARN: ensure inputs are sanitized before calling this function deploy_report() { dir="$1" @@ -159,12 +165,16 @@ else echo "Available reports:" ls -la reports/ 2>/dev/null || echo "Reports directory not found" - # Deploy all reports in parallel and collect URLs + # Deploy all reports in parallel and collect URLs + test counts temp_dir=$(mktemp -d) pids="" i=0 - # Start parallel deployments + # Store current working directory for absolute paths + SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" + BASE_DIR="$(pwd)" + + # Start parallel deployments and count extractions for browser in $BROWSERS; do if [ -d "reports/playwright-report-$browser" ]; then echo "Found report for $browser, deploying in parallel..." @@ -172,11 +182,26 @@ else url=$(deploy_report "reports/playwright-report-$browser" "$browser" "$cloudflare_branch") echo "$url" > "$temp_dir/$i.url" echo "Deployment result for $browser: $url" + + # Extract test counts using tsx (TypeScript executor) + EXTRACT_SCRIPT="$SCRIPT_DIR/extract-playwright-counts.ts" + REPORT_DIR="$BASE_DIR/reports/playwright-report-$browser" + + if command -v tsx > /dev/null 2>&1 && [ -f "$EXTRACT_SCRIPT" ]; then + echo "Extracting counts from $REPORT_DIR using $EXTRACT_SCRIPT" >&2 + counts=$(tsx "$EXTRACT_SCRIPT" "$REPORT_DIR" 2>&1 || echo '{}') + echo "Extracted counts for $browser: $counts" >&2 + echo "$counts" > "$temp_dir/$i.counts" + else + echo "Script not found or tsx not available: $EXTRACT_SCRIPT" >&2 + echo '{}' > "$temp_dir/$i.counts" + fi ) & pids="$pids $!" else echo "Report not found for $browser at reports/playwright-report-$browser" echo "failed" > "$temp_dir/$i.url" + echo '{}' > "$temp_dir/$i.counts" fi i=$((i + 1)) done @@ -186,8 +211,9 @@ else wait $pid done - # Collect URLs in order + # Collect URLs and counts in order urls="" + all_counts="" i=0 for browser in $BROWSERS; do if [ -f "$temp_dir/$i.url" ]; then @@ -200,37 +226,147 @@ else else urls="$urls $url" fi + + if [ -f "$temp_dir/$i.counts" ]; then + counts=$(cat "$temp_dir/$i.counts") + echo "Read counts for $browser from $temp_dir/$i.counts: $counts" >&2 + else + counts="{}" + echo "No counts file found for $browser at $temp_dir/$i.counts" >&2 + fi + if [ -z "$all_counts" ]; then + all_counts="$counts" + else + all_counts="$all_counts|$counts" + fi + i=$((i + 1)) done # Clean up temp directory rm -rf "$temp_dir" + # Calculate total test counts across all browsers + total_passed=0 + total_failed=0 + total_flaky=0 + total_skipped=0 + total_tests=0 + + # Parse counts and calculate totals + IFS='|' + set -- $all_counts + for counts_json; do + if [ "$counts_json" != "{}" ] && [ -n "$counts_json" ]; then + # Parse JSON counts using simple grep/sed if jq is not available + if command -v jq > /dev/null 2>&1; then + passed=$(echo "$counts_json" | jq -r '.passed // 0') + failed=$(echo "$counts_json" | jq -r '.failed // 0') + flaky=$(echo "$counts_json" | jq -r '.flaky // 0') + skipped=$(echo "$counts_json" | jq -r '.skipped // 0') + total=$(echo "$counts_json" | jq -r '.total // 0') + else + # Fallback parsing without jq + passed=$(echo "$counts_json" | sed -n 's/.*"passed":\([0-9]*\).*/\1/p') + failed=$(echo "$counts_json" | sed -n 's/.*"failed":\([0-9]*\).*/\1/p') + flaky=$(echo "$counts_json" | sed -n 's/.*"flaky":\([0-9]*\).*/\1/p') + skipped=$(echo "$counts_json" | sed -n 's/.*"skipped":\([0-9]*\).*/\1/p') + total=$(echo "$counts_json" | sed -n 's/.*"total":\([0-9]*\).*/\1/p') + fi + + total_passed=$((total_passed + ${passed:-0})) + total_failed=$((total_failed + ${failed:-0})) + total_flaky=$((total_flaky + ${flaky:-0})) + total_skipped=$((total_skipped + ${skipped:-0})) + total_tests=$((total_tests + ${total:-0})) + fi + done + unset IFS + + # Determine overall status + if [ $total_failed -gt 0 ]; then + status_icon="❌" + status_text="Some tests failed" + elif [ $total_flaky -gt 0 ]; then + status_icon="⚠️" + status_text="Tests passed with flaky tests" + elif [ $total_tests -gt 0 ]; then + status_icon="✅" + status_text="All tests passed!" + else + status_icon="🕵🏻" + status_text="No test results found" + fi + # Generate completion comment comment="$COMMENT_MARKER ## 🎭 Playwright Test Results -✅ **Tests completed successfully!** +$status_icon **$status_text** -⏰ Completed at: $(date -u '+%m/%d/%Y, %I:%M:%S %p') UTC +⏰ Completed at: $(date -u '+%m/%d/%Y, %I:%M:%S %p') UTC" + + # Add summary counts if we have test data + if [ $total_tests -gt 0 ]; then + comment="$comment + +### 📈 Summary +- **Total Tests:** $total_tests +- **Passed:** $total_passed ✅ +- **Failed:** $total_failed $([ $total_failed -gt 0 ] && echo '❌' || echo '') +- **Flaky:** $total_flaky $([ $total_flaky -gt 0 ] && echo '⚠️' || echo '') +- **Skipped:** $total_skipped $([ $total_skipped -gt 0 ] && echo '⏭️' || echo '')" + fi + + comment="$comment ### 📊 Test Reports by Browser" - # Add browser results + # Add browser results with individual counts i=0 - for browser in $BROWSERS; do + IFS='|' + set -- $all_counts + for counts_json; do + # Get browser name + browser=$(echo "$BROWSERS" | cut -d' ' -f$((i + 1))) # Get URL at position i url=$(echo "$urls" | cut -d' ' -f$((i + 1))) if [ "$url" != "failed" ] && [ -n "$url" ]; then + # Parse individual browser counts + if [ "$counts_json" != "{}" ] && [ -n "$counts_json" ]; then + if command -v jq > /dev/null 2>&1; then + b_passed=$(echo "$counts_json" | jq -r '.passed // 0') + b_failed=$(echo "$counts_json" | jq -r '.failed // 0') + b_flaky=$(echo "$counts_json" | jq -r '.flaky // 0') + b_skipped=$(echo "$counts_json" | jq -r '.skipped // 0') + b_total=$(echo "$counts_json" | jq -r '.total // 0') + else + b_passed=$(echo "$counts_json" | sed -n 's/.*"passed":\([0-9]*\).*/\1/p') + b_failed=$(echo "$counts_json" | sed -n 's/.*"failed":\([0-9]*\).*/\1/p') + b_flaky=$(echo "$counts_json" | sed -n 's/.*"flaky":\([0-9]*\).*/\1/p') + b_skipped=$(echo "$counts_json" | sed -n 's/.*"skipped":\([0-9]*\).*/\1/p') + b_total=$(echo "$counts_json" | sed -n 's/.*"total":\([0-9]*\).*/\1/p') + fi + + if [ -n "$b_total" ] && [ "$b_total" != "0" ]; then + counts_str=" • ✅ $b_passed / ❌ $b_failed / ⚠️ $b_flaky / ⏭️ $b_skipped" + else + counts_str="" + fi + else + counts_str="" + fi + comment="$comment -- ✅ **${browser}**: [View Report](${url})" +- ✅ **${browser}**: [View Report](${url})${counts_str}" else comment="$comment - ❌ **${browser}**: Deployment failed" fi i=$((i + 1)) done + unset IFS comment="$comment From 2b8abca6d88f2e1aa5b9a13075dd00125775a7dc Mon Sep 17 00:00:00 2001 From: filtered <176114999+webfiltered@users.noreply.github.com> Date: Sun, 14 Sep 2025 06:37:41 +1000 Subject: [PATCH 019/162] Fix update Action version extraction (#5527) Was pulling frontend version instead. --- .github/workflows/update-electron-types.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-electron-types.yaml b/.github/workflows/update-electron-types.yaml index 0dfcdea34..96f85f6b0 100644 --- a/.github/workflows/update-electron-types.yaml +++ b/.github/workflows/update-electron-types.yaml @@ -40,7 +40,7 @@ jobs: - name: Get new version id: get-version run: | - NEW_VERSION=$(pnpm list @comfyorg/comfyui-electron-types --json --depth=0 | jq -r '.[0].version') + NEW_VERSION=$(pnpm list @comfyorg/comfyui-electron-types --json --depth=0 | jq -r '.[0].dependencies."@comfyorg/comfyui-electron-types".version') echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT - name: Create Pull Request From 63f194b394363ee522eed5e71763bb32f1389243 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Sun, 14 Sep 2025 04:37:59 +0800 Subject: [PATCH 020/162] [chore] Update electron-types to 0.4.72 (#5526) Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 7c03496a4..66efdbce3 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "dependencies": { "@alloc/quick-lru": "^5.2.0", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/comfyui-electron-types": "^0.4.69", + "@comfyorg/comfyui-electron-types": "^0.4.72", "@iconify/json": "^2.2.380", "@primeuix/forms": "0.0.2", "@primeuix/styled": "0.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58c7d7aa4..ce404afc4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^1.3.1 version: 1.3.1 '@comfyorg/comfyui-electron-types': - specifier: ^0.4.69 - version: 0.4.69 + specifier: ^0.4.72 + version: 0.4.72 '@iconify/json': specifier: ^2.2.380 version: 2.2.380 @@ -986,8 +986,8 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@comfyorg/comfyui-electron-types@0.4.69': - resolution: {integrity: sha512-emEapJvbbx8lXiJ/84gmk+fYU73MmqkQKgBDQkyDwctcOb+eNe347PaH/+0AIjX8A/DtFHfnwgh9J8k3RVdqZA==} + '@comfyorg/comfyui-electron-types@0.4.72': + resolution: {integrity: sha512-Ecf0XYOKDqqIcnjSWL8GHLo6MOsuwqs0I1QgWc3Hv+BZm+qUE4vzOXCyhfFoTIGHLZFTwe37gnygPPKFzMu00Q==} '@csstools/color-helpers@5.1.0': resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} @@ -6356,8 +6356,8 @@ packages: vue-component-type-helpers@2.2.12: resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} - vue-component-type-helpers@3.0.6: - resolution: {integrity: sha512-6CRM8X7EJqWCJOiKPvSLQG+hJPb/Oy2gyJx3pLjUEhY7PuaCthQu3e0zAGI1lqUBobrrk9IT0K8sG2GsCluxoQ==} + vue-component-type-helpers@3.0.7: + resolution: {integrity: sha512-TvyUcFXmjZcXUvU+r1MOyn4/vv4iF+tPwg5Ig33l/FJ3myZkxeQpzzQMLMFWcQAjr6Xs7BRwVy/TwbmNZUA/4w==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -7502,7 +7502,7 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@comfyorg/comfyui-electron-types@0.4.69': {} + '@comfyorg/comfyui-electron-types@0.4.72': {} '@csstools/color-helpers@5.1.0': {} @@ -8925,7 +8925,7 @@ snapshots: storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) type-fest: 2.19.0 vue: 3.5.13(typescript@5.9.2) - vue-component-type-helpers: 3.0.6 + vue-component-type-helpers: 3.0.7 '@swc/helpers@0.5.17': dependencies: @@ -13654,7 +13654,7 @@ snapshots: vue-component-type-helpers@2.2.12: {} - vue-component-type-helpers@3.0.6: {} + vue-component-type-helpers@3.0.7: {} vue-demi@0.14.10(vue@3.5.13(typescript@5.9.2)): dependencies: From 8ae50d140d2d760f7e379f81c48c2f7196f32e4a Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 14:51:39 -0700 Subject: [PATCH 021/162] [test] Add component test for Vue button widget (#5468) * add component test for button widget * [move] relocate WidgetButton test to proper directory Move test from src/ to tests-ui/ directory structure and update import path to work from new location - addresses review comment about test organization * [refactor] make widget name optional in mock factory Add optional name parameter to createMockWidget function for more flexible test setup - addresses @DrJKL's suggestion about optional parameters * [refactor] use it.for for parameterized button tests Replace forEach loops with it.for syntax for testing button severities and variants - addresses @DrJKL's suggestion for better test structure * [auto-fix] Apply ESLint and Prettier fixes * Revert "[move] relocate WidgetButton test to proper directory" This reverts commit e9f4d57334fd054053903acf6e627638ef8f0333. * [test] increase rapid clicks test from 5 to 16 Better test coverage for concurrent click handling * name click number a shared variable --------- Co-authored-by: GitHub Action --- .../widgets/components/WidgetButton.test.ts | 248 ++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 src/renderer/extensions/vueNodes/widgets/components/WidgetButton.test.ts diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetButton.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetButton.test.ts new file mode 100644 index 000000000..72d6726a5 --- /dev/null +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetButton.test.ts @@ -0,0 +1,248 @@ +import { mount } from '@vue/test-utils' +import Button from 'primevue/button' +import type { ButtonProps } from 'primevue/button' +import PrimeVue from 'primevue/config' +import { describe, expect, it, vi } from 'vitest' + +import WidgetButton from '@/renderer/extensions/vueNodes/widgets/components/WidgetButton.vue' +import type { SimplifiedWidget } from '@/types/simplifiedWidget' + +describe('WidgetButton Interactions', () => { + const createMockWidget = ( + options: Partial = {}, + callback?: () => void, + name: string = 'test_button' + ): SimplifiedWidget => ({ + name, + type: 'button', + value: undefined, + options, + callback + }) + + const mountComponent = (widget: SimplifiedWidget, readonly = false) => { + return mount(WidgetButton, { + global: { + plugins: [PrimeVue], + components: { Button } + }, + props: { + widget, + readonly + } + }) + } + + const clickButton = async (wrapper: ReturnType) => { + const button = wrapper.findComponent({ name: 'Button' }) + await button.trigger('click') + return button + } + + describe('Click Handling', () => { + it('calls callback when button is clicked', async () => { + const mockCallback = vi.fn() + const widget = createMockWidget({}, mockCallback) + const wrapper = mountComponent(widget) + + await clickButton(wrapper) + + expect(mockCallback).toHaveBeenCalledTimes(1) + }) + + it('does not call callback when button is readonly', async () => { + const mockCallback = vi.fn() + const widget = createMockWidget({}, mockCallback) + const wrapper = mountComponent(widget, true) + + await clickButton(wrapper) + + expect(mockCallback).not.toHaveBeenCalled() + }) + + it('handles missing callback gracefully', async () => { + const widget = createMockWidget({}, undefined) + const wrapper = mountComponent(widget) + + // Should not throw error when clicking without callback + await expect(clickButton(wrapper)).resolves.toBeDefined() + }) + + it('calls callback multiple times when clicked multiple times', async () => { + const mockCallback = vi.fn() + const widget = createMockWidget({}, mockCallback) + const wrapper = mountComponent(widget) + + const numClicks = 8 + + await clickButton(wrapper) + for (let i = 0; i < numClicks; i++) { + await clickButton(wrapper) + } + + expect(mockCallback).toHaveBeenCalledTimes(numClicks) + }) + }) + + describe('Component Rendering', () => { + it('renders button component', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.exists()).toBe(true) + }) + + it('renders widget label when name is provided', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget) + + const label = wrapper.find('label') + expect(label.exists()).toBe(true) + expect(label.text()).toBe('test_button') + }) + + it('does not render label when widget name is empty', () => { + const widget = createMockWidget({}, undefined, '') + const wrapper = mountComponent(widget) + + const label = wrapper.find('label') + expect(label.exists()).toBe(false) + }) + + it('sets button size to small', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('size')).toBe('small') + }) + + it('passes widget options to button component', () => { + const buttonOptions = { + label: 'Custom Label', + icon: 'pi pi-check', + severity: 'success' as const + } + const widget = createMockWidget(buttonOptions) + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('label')).toBe('Custom Label') + expect(button.props('icon')).toBe('pi pi-check') + expect(button.props('severity')).toBe('success') + }) + }) + + describe('Readonly Mode', () => { + it('disables button when readonly', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget, true) + + // Test the actual DOM button element instead of the Vue component props + const buttonElement = wrapper.find('button') + expect(buttonElement.element.disabled).toBe(true) + }) + + it('enables button when not readonly', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget, false) + + // Test the actual DOM button element instead of the Vue component props + const buttonElement = wrapper.find('button') + expect(buttonElement.element.disabled).toBe(false) + }) + }) + + describe('Widget Options', () => { + it('handles button with text only', () => { + const widget = createMockWidget({ label: 'Click Me' }) + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('label')).toBe('Click Me') + expect(button.props('icon')).toBeNull() + }) + + it('handles button with icon only', () => { + const widget = createMockWidget({ icon: 'pi pi-star' }) + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('icon')).toBe('pi pi-star') + }) + + it('handles button with both text and icon', () => { + const widget = createMockWidget({ + label: 'Save', + icon: 'pi pi-save' + }) + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('label')).toBe('Save') + expect(button.props('icon')).toBe('pi pi-save') + }) + + it.for([ + 'secondary', + 'success', + 'info', + 'warning', + 'danger', + 'help', + 'contrast' + ] as const)('handles button severity: %s', (severity) => { + const widget = createMockWidget({ severity }) + const wrapper = mountComponent(widget) + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('severity')).toBe(severity) + }) + + it.for(['outlined', 'text'] as const)( + 'handles button variant: %s', + (variant) => { + const widget = createMockWidget({ variant }) + const wrapper = mountComponent(widget) + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.props('variant')).toBe(variant) + } + ) + }) + + describe('Edge Cases', () => { + it('handles widget with no options', () => { + const widget = createMockWidget() + const wrapper = mountComponent(widget) + + const button = wrapper.findComponent({ name: 'Button' }) + expect(button.exists()).toBe(true) + }) + + it('handles callback that throws error', async () => { + const mockCallback = vi.fn(() => { + throw new Error('Callback error') + }) + const widget = createMockWidget({}, mockCallback) + const wrapper = mountComponent(widget) + + // Should not break the component when callback throws + await expect(clickButton(wrapper)).rejects.toThrow('Callback error') + expect(mockCallback).toHaveBeenCalledTimes(1) + }) + + it('handles rapid consecutive clicks', async () => { + const mockCallback = vi.fn() + const widget = createMockWidget({}, mockCallback) + const wrapper = mountComponent(widget) + + // Simulate rapid clicks + const clickPromises = Array.from({ length: 16 }, () => + clickButton(wrapper) + ) + await Promise.all(clickPromises) + + expect(mockCallback).toHaveBeenCalledTimes(16) + }) + }) +}) From 77ee20597f785413c106912e642fadc9b718441f Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 19:55:51 -0700 Subject: [PATCH 022/162] Update test expectations to match core node change (#5544) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * trigger CI * Update test expectations [skip ci] * Remove duplicate snapshot image Removes animated-image-preview-saved-webp-chromium-linux.png to leave only one image in the PR as requested. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --------- Co-authored-by: github-actions Co-authored-by: Claude --- .../add-node-node-added-chromium-linux.png | Bin 101171 -> 101540 bytes ...mage-preview-saved-webp-chromium-linux.png | Bin 172735 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 browser_tests/tests/widget.spec.ts-snapshots/animated-image-preview-saved-webp-chromium-linux.png diff --git a/browser_tests/tests/rightClickMenu.spec.ts-snapshots/add-node-node-added-chromium-linux.png b/browser_tests/tests/rightClickMenu.spec.ts-snapshots/add-node-node-added-chromium-linux.png index 9443182e3942c8b4a381110c649bc0952a8f0b32..2755d74c59871d2397352862186709d2f4e6bea8 100644 GIT binary patch literal 101540 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 z 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 literal 101171 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 diff --git a/browser_tests/tests/widget.spec.ts-snapshots/animated-image-preview-saved-webp-chromium-linux.png b/browser_tests/tests/widget.spec.ts-snapshots/animated-image-preview-saved-webp-chromium-linux.png deleted file mode 100644 index 3f3d831bb6a9cb07a3af1b4b10708888571ea530..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172735 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

7Q*-F5)WsK{qDZC&_UNU=#?qs5nx5x5RembWtc~ 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 W3zoj3l8%9_1@w=YVClNHA^!t)D64b; From 4604bbd6698aa1b91088ed1473e9c7f4809ded3d Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 19:58:26 -0700 Subject: [PATCH 023/162] fix: make Color Picker Widget coerce to HEX with hashtag regardless of format/value in the UI (#5472) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix color picker value prefix and add component tests * test(widgets): make color text assertion specific in WidgetColorPicker.test per review (DrJKL) * test(widgets): use expect.soft for valid hex colors loop (suggestion by DrJKL) * test(widgets): normalize color display to single leading # to address review question (AustinMroz) * feat(widgets): normalize color widget values to #hex across inputs (hex/rgb/hsb); always emit with leading # using colorUtil conversions * test(widgets): use data-testid selector for color text instead of generic span; add data-testid to component span for robustness * support hsb|rgb|hex and coerce to hex with hashtag internally refactor(widgets,utils): format-driven color normalization to lowercase #hex without casts; add typed toHexFromFormat and guards; simplify WidgetColorPicker state and types\n\n- utils: add ColorFormat, HSB/HSV types, isColorFormat/isHSBObject/isHSVObject, toHexFromFormat; reuse parseToRgb/hsbToRgb/rgbToHex\n- widgets: emit normalized #hex, display derived via toHexFromFormat, keep picker native v-model; typed widget options {format?}\n- tests: consolidate colorUtil tests into tests-ui/tests/colorUtil.test.ts; keep conversion + adjustColor suites; selectors robust\n- docs: add PR-5472-change-summary.md explaining changes\n\nAll type checks pass; ready for your final review before push. refactor(widgets,utils): format-driven color normalization to lowercase #hex without casts; add typed toHexFromFormat and guards; simplify WidgetColorPicker state and types\n\n- utils: add ColorFormat, HSB/HSV types, isColorFormat/isHSBObject/isHSVObject, toHexFromFormat; reuse parseToRgb/hsbToRgb/rgbToHex\n- widgets: emit normalized #hex, display derived via toHexFromFormat, keep picker native v-model; typed widget options {format?}\n- tests: consolidate colorUtil tests into tests-ui/tests/colorUtil.test.ts; keep conversion + adjustColor suites; selectors robust\n- docs: add PR-5472-change-summary.md explaining changes\n\nAll type checks pass; ready for your final review before push. chore: untrack PR-5472-change-summary.md and ignore locally (keep file on disk) * fix(utils): use floor in hsbToRgb to match expected hex (#7f0000) for 50% brightness rounding behavior * test(widgets): restore invalid-format fallback test and use data-testid selector in hex loop; chore: revert .gitignore change (remove PR-5472-change-summary.md entry) * chore: restore .gitignore to match main (remove local note/comment) * [refactor] improve color parsing in ColorPicker widget - addresses review feedback - Use fancy color parsing for initial value normalization per @DrJKL's suggestion - Simplify onPickerUpdate to trust configured format per @AustinMroz's feedback - Remove redundant type checking and format guessing logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * [refactor] simplify color parsing - remove unnecessary helper function - Remove normalizeColorValue helper and inline null checks - Remove verbose comments - Keep the same functionality with cleaner code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * remove unused exports --------- Co-authored-by: Claude --- .../components/WidgetColorPicker.test.ts | 304 ++++++++++++++++++ .../widgets/components/WidgetColorPicker.vue | 50 ++- src/utils/colorUtil.ts | 142 +++++++- tests-ui/tests/colorUtil.test.ts | 76 ++++- 4 files changed, 557 insertions(+), 15 deletions(-) create mode 100644 src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.test.ts diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.test.ts new file mode 100644 index 000000000..96bb4ed3e --- /dev/null +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.test.ts @@ -0,0 +1,304 @@ +import { mount } from '@vue/test-utils' +import ColorPicker from 'primevue/colorpicker' +import type { ColorPickerProps } from 'primevue/colorpicker' +import PrimeVue from 'primevue/config' +import { describe, expect, it } from 'vitest' + +import type { SimplifiedWidget } from '@/types/simplifiedWidget' + +import WidgetColorPicker from './WidgetColorPicker.vue' +import WidgetLayoutField from './layout/WidgetLayoutField.vue' + +describe('WidgetColorPicker Value Binding', () => { + const createMockWidget = ( + value: string = '#000000', + options: Partial = {}, + callback?: (value: string) => void + ): SimplifiedWidget => ({ + name: 'test_color_picker', + type: 'color', + value, + options, + callback + }) + + const mountComponent = ( + widget: SimplifiedWidget, + modelValue: string, + readonly = false + ) => { + return mount(WidgetColorPicker, { + global: { + plugins: [PrimeVue], + components: { + ColorPicker, + WidgetLayoutField + } + }, + props: { + widget, + modelValue, + readonly + } + }) + } + + const setColorPickerValue = async ( + wrapper: ReturnType, + value: unknown + ) => { + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + await colorPicker.setValue(value) + return wrapper.emitted('update:modelValue') + } + + describe('Vue Event Emission', () => { + it('emits Vue event when color changes', async () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const emitted = await setColorPickerValue(wrapper, '#00ff00') + + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#00ff00') + }) + + it('handles different color formats', async () => { + const widget = createMockWidget('#ffffff') + const wrapper = mountComponent(widget, '#ffffff') + + const emitted = await setColorPickerValue(wrapper, '#123abc') + + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#123abc') + }) + + it('handles missing callback gracefully', async () => { + const widget = createMockWidget('#000000', {}, undefined) + const wrapper = mountComponent(widget, '#000000') + + const emitted = await setColorPickerValue(wrapper, '#ff00ff') + + // Should still emit Vue event + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#ff00ff') + }) + + it('normalizes bare hex without # to #hex on emit', async () => { + const widget = createMockWidget('ff0000') + const wrapper = mountComponent(widget, 'ff0000') + + const emitted = await setColorPickerValue(wrapper, '00ff00') + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#00ff00') + }) + + it('normalizes rgb() strings to #hex on emit', async () => { + const widget = createMockWidget('#000000') + const wrapper = mountComponent(widget, '#000000') + + const emitted = await setColorPickerValue(wrapper, 'rgb(255, 0, 0)') + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#ff0000') + }) + + it('normalizes hsb() strings to #hex on emit', async () => { + const widget = createMockWidget('#000000', { format: 'hsb' }) + const wrapper = mountComponent(widget, '#000000') + + const emitted = await setColorPickerValue(wrapper, 'hsb(120, 100, 100)') + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#00ff00') + }) + + it('normalizes HSB object values to #hex on emit', async () => { + const widget = createMockWidget('#000000', { format: 'hsb' }) + const wrapper = mountComponent(widget, '#000000') + + const emitted = await setColorPickerValue(wrapper, { + h: 240, + s: 100, + b: 100 + }) + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#0000ff') + }) + }) + + describe('Component Rendering', () => { + it('renders color picker component', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.exists()).toBe(true) + }) + + it('normalizes display to a single leading #', () => { + // Case 1: model value already includes '#' + let widget = createMockWidget('#ff0000') + let wrapper = mountComponent(widget, '#ff0000') + let colorText = wrapper.find('[data-testid="widget-color-text"]') + expect.soft(colorText.text()).toBe('#ff0000') + + // Case 2: model value missing '#' + widget = createMockWidget('ff0000') + wrapper = mountComponent(widget, 'ff0000') + colorText = wrapper.find('[data-testid="widget-color-text"]') + expect.soft(colorText.text()).toBe('#ff0000') + }) + + it('renders layout field wrapper', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const layoutField = wrapper.findComponent({ name: 'WidgetLayoutField' }) + expect(layoutField.exists()).toBe(true) + }) + + it('displays current color value as text', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const colorText = wrapper.find('[data-testid="widget-color-text"]') + expect(colorText.text()).toBe('#ff0000') + }) + + it('updates color text when value changes', async () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + await setColorPickerValue(wrapper, '#00ff00') + + // Need to check the local state update + const colorText = wrapper.find('[data-testid="widget-color-text"]') + // Be specific about the displayed value including the leading '#' + expect.soft(colorText.text()).toBe('#00ff00') + }) + + it('uses default color when no value provided', () => { + const widget = createMockWidget('') + const wrapper = mountComponent(widget, '') + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + // Should use the default value from the composable + expect(colorPicker.exists()).toBe(true) + }) + }) + + describe('Readonly Mode', () => { + it('disables color picker when readonly', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000', true) + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.props('disabled')).toBe(true) + }) + + it('enables color picker when not readonly', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000', false) + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.props('disabled')).toBe(false) + }) + }) + + describe('Color Formats', () => { + it('handles valid hex colors', async () => { + const validHexColors = [ + '#000000', + '#ffffff', + '#ff0000', + '#00ff00', + '#0000ff', + '#123abc' + ] + + for (const color of validHexColors) { + const widget = createMockWidget(color) + const wrapper = mountComponent(widget, color) + + const colorText = wrapper.find('[data-testid="widget-color-text"]') + expect.soft(colorText.text()).toBe(color) + } + }) + + it('handles short hex colors', () => { + const widget = createMockWidget('#fff') + const wrapper = mountComponent(widget, '#fff') + + const colorText = wrapper.find('[data-testid="widget-color-text"]') + expect(colorText.text()).toBe('#fff') + }) + + it('passes widget options to color picker', () => { + const colorOptions = { + format: 'hex' as const, + inline: true + } + const widget = createMockWidget('#ff0000', colorOptions) + const wrapper = mountComponent(widget, '#ff0000') + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.props('format')).toBe('hex') + expect(colorPicker.props('inline')).toBe(true) + }) + }) + + describe('Widget Layout Integration', () => { + it('passes widget to layout field', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const layoutField = wrapper.findComponent({ name: 'WidgetLayoutField' }) + expect(layoutField.props('widget')).toEqual(widget) + }) + + it('maintains proper component structure', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + // Should have layout field containing label with color picker and text + const layoutField = wrapper.findComponent({ name: 'WidgetLayoutField' }) + const label = wrapper.find('label') + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + const colorText = wrapper.find('span') + + expect(layoutField.exists()).toBe(true) + expect(label.exists()).toBe(true) + expect(colorPicker.exists()).toBe(true) + expect(colorText.exists()).toBe(true) + }) + }) + + describe('Edge Cases', () => { + it('handles empty color value', () => { + const widget = createMockWidget('') + const wrapper = mountComponent(widget, '') + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.exists()).toBe(true) + }) + + it('handles invalid color formats gracefully', async () => { + const widget = createMockWidget('invalid-color') + const wrapper = mountComponent(widget, 'invalid-color') + + const colorText = wrapper.find('[data-testid="widget-color-text"]') + expect(colorText.text()).toBe('#000000') + + const emitted = await setColorPickerValue(wrapper, 'invalid-color') + expect(emitted).toBeDefined() + expect(emitted![0]).toContain('#000000') + }) + + it('handles widget with no options', () => { + const widget = createMockWidget('#ff0000') + const wrapper = mountComponent(widget, '#ff0000') + + const colorPicker = wrapper.findComponent({ name: 'ColorPicker' }) + expect(colorPicker.exists()).toBe(true) + }) + }) +}) diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.vue index ed5f2b0ec..a3fcb1725 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetColorPicker.vue @@ -14,19 +14,26 @@ :pt="{ preview: '!w-full !h-full !border-none' }" - @update:model-value="onChange" + @update:model-value="onPickerUpdate" /> - #{{ localValue }} + {{ + toHexFromFormat(localValue, format) + }} From aa7a99f4e33ea90192b2a9af7e2f814ada668764 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 22:17:22 -0700 Subject: [PATCH 031/162] fix: Show title, inputs, and outputs on Vue node component even when node fails to initalize (e.g., if missing) (#5540) * add missing node error border * update vue node data after configure * [refactor] extract node type resolution to named const - addresses @DrJKL's readability concern Extracted the multi-fallback type resolution logic into a clearly named variable for improved readability and maintainability. * [refactor] convert watch to computed pattern - addresses @DrJKL's structure comment Replaced ref + watch pattern with computed for displayTitle, providing cleaner reactive behavior and eliminating the need for manual sync logic. --- src/composables/graph/useGraphNodeManager.ts | 19 +++++++++++--- .../vueNodes/components/NodeHeader.vue | 26 +++++++++---------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index 2456b8c30..e91d1f332 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -202,10 +202,17 @@ export const useGraphNodeManager = (graph: LGraph): GraphNodeManager => { } }) + const nodeType = + node.type || + node.constructor?.comfyClass || + node.constructor?.title || + node.constructor?.name || + 'Unknown' + return { id: String(node.id), - title: node.title || 'Untitled', - type: node.type || 'Unknown', + title: typeof node.title === 'string' ? node.title : '', + type: nodeType, mode: node.mode || 0, selected: node.selected || false, executing: false, // Will be updated separately based on execution state @@ -612,7 +619,7 @@ export const useGraphNodeManager = (graph: LGraph): GraphNodeManager => { // Set up widget callbacks BEFORE extracting data (critical order) setupNodeWidgetCallbacks(node) - // Extract safe data for Vue + // Extract initial data for Vue (may be incomplete during graph configure) vueNodeData.set(id, extractVueNodeData(node)) // Set up reactive tracking state @@ -657,7 +664,11 @@ export const useGraphNodeManager = (graph: LGraph): GraphNodeManager => { // Chain our callback with any existing onAfterGraphConfigured callback node.onAfterGraphConfigured = useChainCallback( node.onAfterGraphConfigured, - initializeVueNodeLayout + () => { + // Re-extract data now that configure() has populated title/slots/widgets/etc. + vueNodeData.set(id, extractVueNodeData(node)) + initializeVueNodeLayout() + } ) } else { // Not during workflow loading - initialize layout immediately diff --git a/src/renderer/extensions/vueNodes/components/NodeHeader.vue b/src/renderer/extensions/vueNodes/components/NodeHeader.vue index 1bca590dc..3197a872c 100644 --- a/src/renderer/extensions/vueNodes/components/NodeHeader.vue +++ b/src/renderer/extensions/vueNodes/components/NodeHeader.vue @@ -36,7 +36,7 @@ From f6a115e182f71479269db2454955ba2265bae0f8 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 13 Sep 2025 22:23:44 -0700 Subject: [PATCH 032/162] [feat] Add I/O slot component tests (#5523) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add i/o slot component component tests * refactor: use separate mount functions for type safety Replace generic mount helper with dedicated mountInputSlot and mountOutputSlot functions to avoid type casting and improve type safety per review feedback. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * [auto-fix] Apply ESLint and Prettier fixes * [refactor] rename test file from .spec.ts to .test.ts - addresses @DrJKL's naming convention feedback * [refactor] use component prop types instead of custom interface - addresses @DrJKL's type safety feedback * [refactor] add beforeEach for mock reset - addresses @DrJKL's test cleanup feedback * [refactor] use standard assertions instead of manual mock call extraction - addresses @DrJKL's assertion feedback * [auto-fix] Apply ESLint and Prettier fixes --------- Co-authored-by: Claude Co-authored-by: GitHub Action --- .../components/InputOutputSlot.test.ts | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/renderer/extensions/vueNodes/components/InputOutputSlot.test.ts diff --git a/src/renderer/extensions/vueNodes/components/InputOutputSlot.test.ts b/src/renderer/extensions/vueNodes/components/InputOutputSlot.test.ts new file mode 100644 index 000000000..d10c9c382 --- /dev/null +++ b/src/renderer/extensions/vueNodes/components/InputOutputSlot.test.ts @@ -0,0 +1,86 @@ +import { type ComponentMountingOptions, mount } from '@vue/test-utils' +import { createPinia } from 'pinia' +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { createI18n } from 'vue-i18n' + +import enMessages from '@/locales/en/main.json' +import { useDomSlotRegistration } from '@/renderer/core/layout/slots/useDomSlotRegistration' + +import InputSlot from './InputSlot.vue' +import OutputSlot from './OutputSlot.vue' + +// Mock composable used by InputSlot/OutputSlot so we can assert call params +vi.mock('@/renderer/core/layout/slots/useDomSlotRegistration', () => ({ + useDomSlotRegistration: vi.fn(() => ({ remeasure: vi.fn() })) +})) + +type InputSlotProps = ComponentMountingOptions['props'] +type OutputSlotProps = ComponentMountingOptions['props'] + +const mountInputSlot = (props: InputSlotProps) => + mount(InputSlot, { + global: { + plugins: [ + createI18n({ + legacy: false, + locale: 'en', + messages: { en: enMessages } + }), + createPinia() + ] + }, + props + }) + +const mountOutputSlot = (props: OutputSlotProps) => + mount(OutputSlot, { + global: { + plugins: [ + createI18n({ + legacy: false, + locale: 'en', + messages: { en: enMessages } + }), + createPinia() + ] + }, + props + }) + +describe('InputSlot/OutputSlot', () => { + beforeEach(() => { + vi.mocked(useDomSlotRegistration).mockClear() + }) + + it('InputSlot registers with correct options', () => { + mountInputSlot({ + nodeId: 'node-1', + index: 3, + slotData: { name: 'A', type: 'any', boundingRect: [0, 0, 0, 0] } + }) + + expect(useDomSlotRegistration).toHaveBeenLastCalledWith( + expect.objectContaining({ + nodeId: 'node-1', + slotIndex: 3, + isInput: true + }) + ) + }) + + it('OutputSlot registers with correct options', () => { + mountOutputSlot({ + nodeId: 'node-2', + index: 1, + slotData: { name: 'B', type: 'any', boundingRect: [0, 0, 0, 0] } + }) + + expect(useDomSlotRegistration).toHaveBeenLastCalledWith( + expect.objectContaining({ + nodeId: 'node-2', + slotIndex: 1, + isInput: false + }) + ) + }) +}) From ac107b45eaa848dac7e0fce2514a5bf12ed39a44 Mon Sep 17 00:00:00 2001 From: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com> Date: Sun, 14 Sep 2025 06:52:30 +0100 Subject: [PATCH 033/162] Floating Selection Toolbox Improvements (#5218) * WIP * WIP: UI design for right click menu * feat: add composable for node customization and information handling * fix: correct v-show directive in MaskEditorButton and enhance MoreOptions functionality * feat: add selection and subgraph operations composables for enhanced graph management * fix: update computed properties to use 'void' for non-reactive calls and add MenuOptionItem component * feat: add composables for More Options menu and submenu positioning logic * feat: refactor MoreOptions component to use MenuOptionItem for menu rendering and streamline submenu handling * feat: implement SubmenuPopover component for enhanced submenu functionality and selection handling * feat: add 'More Options' label and enhance shape options in localization file * refactor: simplify shape name handling by removing Pascal case conversion and using localized names * refactor: enhance submenu handling by dynamically setting refs and improving key assignment * feat: implement useNodeArrangement composable for node alignment and distribution functionality * feat: enhance useMoreOptionsMenu with image node operations and alignment options * feat: localize context menu options and enhance submenu handling * refactor: improve type safety for title assignment in selection operations and enhance color option retrieval in node customization * fix: adjust component order in SelectionToolbox for improved layout * feat: update FrameNodes button visibility and tooltip, and add localization for frameNodes * feat: enhance button visibility logic in SelectionToolbox based on selection types * refactor: reorganize properties panel option in More Options menu for single nodes * remove excessive logging and alerts * fix component tests * ad browser tests * feat: enhance popover behavior in MoreOptions component to manage visibility state during selection overlay changes * refactor: update visibility logic for buttons in SelectionToolbox and ExecuteButton components * refactor: remove duplicate shape option and clean up shapeOptions array * refactor: update help toggle logic in InfoButton and useMoreOptionsMenu to manage sidebar and help state * refactor: streamline node info handling and integrate output node filtering in useNodeInfo and useMoreOptionsMenu * Added useSelectionState composable consolidating all selection-derived state and the node help toggle * Updated toolbox buttons (InfoButton, BookmarkButton, BypassButton, MaskEditorButton, ConvertToSubgraphButton, PinButton, DeleteButton, ColorPickerButton, ExecuteButton, FrameNodes, Load3DViewerButton) to remove duplicated selection logic and use useSelectionState * Introduced HideReason ('manual' | 'drag') to differentiate drag-induced hides from manual/outside hides in MoreOptions * refactor: enhance popover visibility handling during drag events using canvas state * fix: update shape option name from 'default' to 'box' and add localization for 'box' * refactor: streamline BypassButton logic and enhance MoreOptions menu with state bumping * refactor: remove toast notifications from subgraph operations for cleaner logic * refactor: ensure menu options re-compute when selection flags change * feat: Enhance MoreOptions behavior with drag-and-drop support * fix: Update mask icon class for consistent styling in MaskEditorButton * refactor: Standardize icon sizes and classes across selection toolbox buttons * refactor: Update layout and styling in SelectionToolbox and MoreOptions components * refactor: Improve selection toolbox behavior with more options state management * Refactor: Remove unused imports and conditionally add subgraph option in menu * Enhance popover behavior: add show/hide event handlers and improve positioning logic * Cleanup: Remove debug comments from popover functions for clarity * Refactor: Clean up FrameNodes component and add MenuOptionBadge for better option display * Cleanup: Remove debug comments from useSelectionToolboxPosition for clarity * Add useFrameNodes composable for grouping selected nodes * Refactor: Update shape options in useNodeCustomization and localize frame nodes label * fix tests * Cleanup: Remove packageManager entry from package.json * Refactor: Replace ILucide icons with named imports from lucide-vue-next * Refactor: Update shape selection and improve color picker behavior in selection toolbox * Update test expectations [skip ci] * feat: Enhance More Options Menu for group node management and update localization strings * refactor: Comment out PublishButton * refactor: Comment out test for bookmark button visibility in SelectionToolbox * refactor: Update class names for dark theme compatibility in ExecuteButton and MenuOptionItem components * refactor: Modularize menu options by creating dedicated composables for group, image, node, and selection operations * refactor: Update selectors in tests to match design changes * refactor: Update help button selector in Node Help tests * refactor: Update getGroupColorOptions to accept groupContext and bump parameters * Update test expectations [skip ci] * refactor: Center KSampler node before interaction in More Options submenu tests * refactor: Adjust KSampler node positioning and simplify button click in More Options submenu tests * refactor: Rename comfyPageFixture import for clarity * refactor: use gap-1 instead of the explicit gap-[4px] * refactor: Replace app.canvas with canvasStore.getCanvas for state management * refactor: Simplify prop access by removing 'props.' prefix in MenuOptionItem component * refactor: Remove explicit type annotation for item in buildSelectionSignature function * refactor: Replace Lucide icons with string-based icon references in menu options * refactor: Remove export from interface declarations for improved clarity * refactor: Simplify class binding in BypassButton component for improved readability * refactor: Update button class for consistent sizing in ExecuteButton component * refactor: Update help button locator class for consistency in Node Help tests * fix node help test * refactor: Remove unused imports and simplify visibility conditions in selection toolbox components * feat: Add 3D node selection logic and cleanup on unmount for selection toolbox * refactor: Update help button locator to use consistent data-testid in Node Help tests * fix: Correct help button locator syntax in Node Help tests * refactor: Change resetMoreOptionsState to an internal function in useSelectionToolboxPosition * test: Add Load3D node visibility logic for ColorPickerButton and remove redundant test case * fix: Increase tooltip show delay for ColorPickerButton * fix: Update selectedOutputNodes computation to filter by isLGraphNode * fix: Remove unused nodeDef reference from InfoButton and submenu trigger from MenuOptionItem * fix: Update showInfoButton logic to depend on nodeDef value * refactor: Remove deprecated getBasicNodeOptions function for cleaner code * refactor: Replace useNodeInfo with useSelectedNodeActions * refactor: Integrate useNodeDefStore for improved node definition handling in SelectionToolbox and InfoButton tests * refactor: Introduce useCanvasRefresh composable for consistent canvas refresh logic across node operations * refactor: Remove irrelevant append-to attribute from Popover * refactor: Use storeToRefs for selectedItems in useSelectionState and add tests for selection logic * refactor: Update ExecuteButton to use hasOutputNodesSelected for visibility and remove unnecessary computed property * refactor: move display of execution button tests to selectionToolbox --------- Co-authored-by: github-actions --- browser_tests/tests/nodeHelp.spec.ts | 22 +- browser_tests/tests/remoteWidgets.spec.ts | 4 +- ...x-multiple-nodes-border-chromium-linux.png | Bin 105238 -> 104972 bytes ...tiple-selections-border-chromium-linux.png | Bin 106290 -> 106082 bytes ...x-single-node-no-border-chromium-linux.png | Bin 101320 -> 101082 bytes .../tests/selectionToolboxSubmenus.spec.ts | 177 +++++++ src/assets/icons/custom/mask.svg | 14 + src/components/graph/SelectionToolbox.spec.ts | 500 ++++++++++++++++++ src/components/graph/SelectionToolbox.vue | 82 ++- .../selectionToolbox/BypassButton.spec.ts | 120 +++++ .../graph/selectionToolbox/BypassButton.vue | 14 +- .../ColorPickerButton.spec.ts | 11 - .../selectionToolbox/ColorPickerButton.vue | 39 +- .../ConvertToSubgraphButton.vue | 26 +- .../graph/selectionToolbox/DeleteButton.vue | 11 +- .../selectionToolbox/ExecuteButton.spec.ts | 128 +++++ .../graph/selectionToolbox/ExecuteButton.vue | 30 +- .../ExtensionCommandButton.vue | 1 + .../graph/selectionToolbox/FrameNodes.vue | 22 + .../graph/selectionToolbox/HelpButton.vue | 49 -- .../graph/selectionToolbox/InfoButton.spec.ts | 149 ++++++ .../graph/selectionToolbox/InfoButton.vue | 22 + .../selectionToolbox/Load3DViewerButton.vue | 14 +- .../selectionToolbox/MaskEditorButton.vue | 17 +- .../graph/selectionToolbox/MenuOptionItem.vue | 59 +++ .../graph/selectionToolbox/MoreOptions.vue | 316 +++++++++++ .../graph/selectionToolbox/PinButton.vue | 25 - .../RefreshSelectionButton.vue | 11 +- .../graph/selectionToolbox/SubmenuPopover.vue | 127 +++++ .../selectionToolbox/VerticalDivider.vue | 3 + .../canvas/useSelectionToolboxPosition.ts | 100 +++- src/composables/graph/useCanvasRefresh.ts | 22 + src/composables/graph/useFrameNodes.ts | 30 ++ src/composables/graph/useGroupMenuOptions.ts | 199 +++++++ src/composables/graph/useImageMenuOptions.ts | 122 +++++ src/composables/graph/useMoreOptionsMenu.ts | 186 +++++++ src/composables/graph/useNodeArrangement.ts | 106 ++++ src/composables/graph/useNodeCustomization.ts | 167 ++++++ src/composables/graph/useNodeMenuOptions.ts | 128 +++++ .../graph/useSelectedNodeActions.ts | 68 +++ .../graph/useSelectionMenuOptions.ts | 147 +++++ .../graph/useSelectionOperations.ts | 165 ++++++ src/composables/graph/useSelectionState.ts | 144 +++++ .../graph/useSubgraphOperations.ts | 131 +++++ .../graph/useSubmenuPositioning.ts | 163 ++++++ src/locales/en/main.json | 53 +- .../graph/useSelectionState.test.ts | 270 ++++++++++ 47 files changed, 3989 insertions(+), 205 deletions(-) create mode 100644 browser_tests/tests/selectionToolboxSubmenus.spec.ts create mode 100644 src/assets/icons/custom/mask.svg create mode 100644 src/components/graph/SelectionToolbox.spec.ts create mode 100644 src/components/graph/selectionToolbox/BypassButton.spec.ts create mode 100644 src/components/graph/selectionToolbox/ExecuteButton.spec.ts create mode 100644 src/components/graph/selectionToolbox/FrameNodes.vue delete mode 100644 src/components/graph/selectionToolbox/HelpButton.vue create mode 100644 src/components/graph/selectionToolbox/InfoButton.spec.ts create mode 100644 src/components/graph/selectionToolbox/InfoButton.vue create mode 100644 src/components/graph/selectionToolbox/MenuOptionItem.vue create mode 100644 src/components/graph/selectionToolbox/MoreOptions.vue delete mode 100644 src/components/graph/selectionToolbox/PinButton.vue create mode 100644 src/components/graph/selectionToolbox/SubmenuPopover.vue create mode 100644 src/components/graph/selectionToolbox/VerticalDivider.vue create mode 100644 src/composables/graph/useCanvasRefresh.ts create mode 100644 src/composables/graph/useFrameNodes.ts create mode 100644 src/composables/graph/useGroupMenuOptions.ts create mode 100644 src/composables/graph/useImageMenuOptions.ts create mode 100644 src/composables/graph/useMoreOptionsMenu.ts create mode 100644 src/composables/graph/useNodeArrangement.ts create mode 100644 src/composables/graph/useNodeCustomization.ts create mode 100644 src/composables/graph/useNodeMenuOptions.ts create mode 100644 src/composables/graph/useSelectedNodeActions.ts create mode 100644 src/composables/graph/useSelectionMenuOptions.ts create mode 100644 src/composables/graph/useSelectionOperations.ts create mode 100644 src/composables/graph/useSelectionState.ts create mode 100644 src/composables/graph/useSubgraphOperations.ts create mode 100644 src/composables/graph/useSubmenuPositioning.ts create mode 100644 tests-ui/tests/composables/graph/useSelectionState.test.ts diff --git a/browser_tests/tests/nodeHelp.spec.ts b/browser_tests/tests/nodeHelp.spec.ts index 68ce7b8d5..764849286 100644 --- a/browser_tests/tests/nodeHelp.spec.ts +++ b/browser_tests/tests/nodeHelp.spec.ts @@ -46,7 +46,7 @@ test.describe('Node Help', () => { // Click the help button in the selection toolbox const helpButton = comfyPage.selectionToolbox.locator( - 'button:has(.pi-question-circle)' + 'button[data-testid="info-button"]' ) await expect(helpButton).toBeVisible() await helpButton.click() @@ -164,7 +164,7 @@ test.describe('Node Help', () => { // Click help button const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -194,7 +194,7 @@ test.describe('Node Help', () => { // Click help button const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -228,7 +228,7 @@ test.describe('Node Help', () => { await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -276,7 +276,7 @@ test.describe('Node Help', () => { await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -348,7 +348,7 @@ This is documentation for a custom node. } const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) if (await helpButton.isVisible()) { await helpButton.click() @@ -389,7 +389,7 @@ This is documentation for a custom node. await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -456,7 +456,7 @@ This is English documentation. await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -479,7 +479,7 @@ This is English documentation. await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -522,7 +522,7 @@ This is English documentation. await selectNodeWithPan(comfyPage, ksamplerNodes[0]) const helpButton = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton.click() @@ -538,7 +538,7 @@ This is English documentation. // Click help button again const helpButton2 = comfyPage.page.locator( - '.selection-toolbox button:has(.pi-question-circle)' + '.selection-toolbox button[data-testid="info-button"]' ) await helpButton2.click() diff --git a/browser_tests/tests/remoteWidgets.spec.ts b/browser_tests/tests/remoteWidgets.spec.ts index 4a390af96..05bb578df 100644 --- a/browser_tests/tests/remoteWidgets.spec.ts +++ b/browser_tests/tests/remoteWidgets.spec.ts @@ -190,7 +190,9 @@ test.describe('Remote COMBO Widget', () => { await comfyPage.page.keyboard.press('Control+A') await expect( - comfyPage.page.locator('.selection-toolbox .pi-refresh') + comfyPage.page.locator( + '.selection-toolbox button[data-testid="refresh-button"]' + ) ).toBeVisible() }) diff --git a/browser_tests/tests/selectionToolbox.spec.ts-snapshots/selection-toolbox-multiple-nodes-border-chromium-linux.png b/browser_tests/tests/selectionToolbox.spec.ts-snapshots/selection-toolbox-multiple-nodes-border-chromium-linux.png index 7aa22906b674b341f9664c8d0e79dc3ebd5133b7..96f6507e1f5d9db915599148112d0049255f6ff6 100644 GIT binary patch literal 104972 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

H0XmG|~(w;{-ypc?%k_N^(n|69CH9RgW+Z|Dl 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%0D_U7GXyWi1q2;KAH74f;gU^dvPH!;5i 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