Comfy-Org / Comfy-Org/ComfyUI_frontend

Design clean public API for extension authors to integrate custom widgets with widgetValueStore

Open
#9,296 0 comments 0 reactions 1 assignee Claimed by @christian-byrne View on GitHub
Public API
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

## Context

PR #9230 introduces `useDomValueBridge` to synchronize DOM widget values with the `widgetValueStore` by intercepting `Object.defineProperty` on element.value and listening for input events. While this approach works as a bridge for extension-created DOM widgets, it relies on internal value-descriptor patterns that are not part of a supported public API.

## Problem

Extension authors currently lack a clean, documented integration point to wire custom widgets to the `widgetValueStore`. The current value-descriptor pattern is an implementation detail rather than a stable extension API.

## Proposed Solution

Design and implement a proper public API that:
- Provides a clear, documented way for extension authors to integrate custom widgets with the store
- Replaces the current value-descriptor pattern with a supported integration mechanism
- Maintains backward compatibility where feasible
- Includes documentation and migration guidance

## References

- PR: https://github.com/Comfy-Org/ComfyUI_frontend/pull/9230
- Discussion: https://github.com/Comfy-Org/ComfyUI_frontend/pull/9230#discussion_r2857107802
- Requested by: @christian-byrne

## Acceptance Criteria

- [ ] Public API design documented
- [ ] Extension author documentation created
- [ ] Deprecation path defined for current pattern (if applicable)
- [ ] Implementation plan outlined

┆Issue is synchronized with this [Notion page](https://www.notion.so/Issue-9296-Design-clean-public-API-for-extension-authors-to-integrate-custom-widgets-with-widgetV-3156d73d365081998c7bdc6ac18820a6) by [Unito](https://www.unito.io)

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.