Comfy-Org / Comfy-Org/ComfyUI_frontend
Linked same-name socket disables an unrelated Vue button widget
- 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
Assessment
This issue has not been assessed yet.