Comfy-Org / Comfy-Org/ComfyUI_frontend

Linked same-name socket disables an unrelated Vue button widget

Open
#17,581 0 comments 0 reactions 1 assignee Claimed by @DrJKL View on GitHub
area:vue-migration area:widgets Bug
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

Linked same-name input sockets can falsely disable unrelated Vue button widgets. Fix and regression coverage are already in PR https://github.com/Comfy-Org/ComfyUI_frontend/pull/17579; do not open another implementation. Matching tracker: https://linear.app/comfyorg/issue/FE-2226/linked-same-name-socket-disables-an-unrelated-vue-button-widget-github

Full context for agent readers

## Defect

`getSlotWidgetName` treated any linked input socket as owning a same-named widget. A node with an ordinary linked `model` socket and a separate Vue button widget also named `model` therefore received linked-slot metadata and the button became disabled, despite no `input.widget` or promoted `widgetId` ownership metadata.

## Expected behavior

A link alone does not establish widget ownership. Only explicit `input.widget` or promoted `widgetId` metadata may attach linked-slot state to the widget. Explicitly owned linked widgets must remain disabled.

## Evidence

- Fix PR: https://github.com/Comfy-Org/ComfyUI_frontend/pull/17579 at `7487155cea27cfdac95b88528266cbceed48c125`.
- Old unit behavior: 1 failed, 35 passed.
- Old browser behavior: failed at `toBeEnabled` because the unrelated button was disabled.
- Restored fix: browser regression passed; surrounding composable suite passed 100 tests.
- Existing PR https://github.com/Comfy-Org/ComfyUI_frontend/pull/16122 guards the unlinked case only. PR https://github.com/Comfy-Org/ComfyUI_frontend/pull/17128 changes subgraph presentation, not ownership inference.

## Ownership and lifecycle

Alex Brown (DrJKL) owns the affected widget-visibility domain. `git blame` in the full-history, non-shallow checkout attributes the faulty `getSlotWidgetName` linked fallback to Alex Brown's `9be74f4788c`. Christian Byrne owns PR https://github.com/Comfy-Org/ComfyUI_frontend/pull/17579 while CI is pending; DrJKL reviews later. Keep this issue open until the PR merges.

## Acceptance criteria

- Unowned linked same-name sockets do not disable unrelated Vue widgets.
- Explicitly owned linked widgets remain disabled.
- Unit and browser regressions remain green.
- Close only after PR https://github.com/Comfy-Org/ComfyUI_frontend/pull/17579 merges.

Glossary: Vue button means a DOM-rendered node widget; ownership metadata means `input.widget` or promoted `widgetId`; CI means automated pull-request checks.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.