-
Notifications
You must be signed in to change notification settings - Fork 490
Control widget fixes #8160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Control widget fixes #8160
Conversation
📝 WalkthroughWalkthroughAfter subgraph configuration, the code now recomputes disabled state for all contained nodes. Additionally, the BaseWidget constructor now extracts and assigns the linkedWidgets property from incoming widget objects during initialization. Changes
Possibly related PRs
Suggested reviewers
✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🎨 Storybook Build Status✅ Build completed successfully! ⏰ Completed at: 01/19/2026, 07:22:16 PM UTC 🔗 Links🎉 Your Storybook is ready for review! |
🎭 Playwright Tests:
|
Bundle Size ReportSummary
Category Glance Per-category breakdownApp Entry Points — 18.1 kB (baseline 18.1 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 878 kB (baseline 878 kB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 66.6 kB (baseline 66.6 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 9 added / 9 removed Panels & Settings — 385 kB (baseline 385 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 8 added / 8 removed User & Accounts — 4.22 kB (baseline 4.22 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 3 added / 3 removed Editors & Dialogs — 2.85 kB (baseline 2.85 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 2 added / 2 removed UI Components — 26.3 kB (baseline 26.3 kB) • ⚪ 0 BReusable component library chunks
Status: 5 added / 5 removed Data & Services — 2.75 MB (baseline 2.75 MB) • 🔴 +79 BStores, services, APIs, and repositories
Status: 7 added / 7 removed Utilities & Hooks — 16.6 kB (baseline 16.6 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 4 added / 4 removed Vendor & Third-Party — 9.09 MB (baseline 9.09 MB) • ⚪ 0 BExternal libraries and shared vendor chunks
Other — 5.91 MB (baseline 5.91 MB) • ⚪ 0 BBundles that do not match a named category
Status: 25 added / 25 removed |
#8112 updated control widgets to be disabled when the controlled widget is disabled. However, some workflows already exist that contain a promoted control widget which does not function. This widget wouldn't be marked as disabled (and thus, demoted) until the interior subgraph was entered as updating `computedDisabled` is tacked to node draw. This is fixed by having subgraphs eagerly update the `computedDisabled` state on each node when configured. Additionally, when `createCopyForNode` was used, linkedWidget retained pointers to widgets which no longer have relation to the newly cloned widget. This is resolved by instead not copying linkedWidgets. Functionally, linkedWidgets is only used for control widgets and not copying has the effect of ensuring that seed widgets linked to a subgraph input will not display a control popover button in vue mode which does nothing. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8160-Control-widget-fixes-2ed6d73d3650816cb397f83f558471b3) by [Unito](https://www.unito.io)
Manual backport of #8112 and #8160 to `cloud/1.37` ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8163-backport-cloud-1-37-control-widget-fixes-2ed6d73d3650815cb458e8adc44ad4bc) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <github-actions@github.com>
Comfy-Org#8112 updated control widgets to be disabled when the controlled widget is disabled. However, some workflows already exist that contain a promoted control widget which does not function. This widget wouldn't be marked as disabled (and thus, demoted) until the interior subgraph was entered as updating `computedDisabled` is tacked to node draw. This is fixed by having subgraphs eagerly update the `computedDisabled` state on each node when configured. Additionally, when `createCopyForNode` was used, linkedWidget retained pointers to widgets which no longer have relation to the newly cloned widget. This is resolved by instead not copying linkedWidgets. Functionally, linkedWidgets is only used for control widgets and not copying has the effect of ensuring that seed widgets linked to a subgraph input will not display a control popover button in vue mode which does nothing. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8160-Control-widget-fixes-2ed6d73d3650816cb397f83f558471b3) by [Unito](https://www.unito.io)
#8112 updated control widgets to be disabled when the controlled widget is disabled. However, some workflows already exist that contain a promoted control widget which does not function. This widget wouldn't be marked as disabled (and thus, demoted) until the interior subgraph was entered as updating
computedDisabledis tacked to node draw. This is fixed by having subgraphs eagerly update thecomputedDisabledstate on each node when configured.Additionally, when
createCopyForNodewas used, linkedWidget retained pointers to widgets which no longer have relation to the newly cloned widget. This is resolved by instead not copying linkedWidgets. Functionally, linkedWidgets is only used for control widgets and not copying has the effect of ensuring that seed widgets linked to a subgraph input will not display a control popover button in vue mode which does nothing.┆Issue is synchronized with this Notion page by Unito