Comfy-Org / Comfy-Org/ComfyUI_frontend
Prevent widget nodeType metadata from falling through to FormDropdown DOM
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 699
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 490
Description
- Vue tries to assign internal `nodeType` metadata to a `
- Confirmed on current `main` and historical head `956fd013c3`.
- Dropdown still works, but every affected asset widget emits a console warning.
Full context for agent readers
## What happened?
`WidgetSelectDropdown` forwards `widget.options.nodeType` through `v-bind` to `FormDropdown`. `FormDropdown` does not declare that prop and renders a `
```text
Failed setting prop "nodeType" on
```
The path remains present on [`main` at `3697a1bc3`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue#L66-L68), through the [`v-bind`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue#L195-L204), to the [`FormDropdown` root div](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue#L331-L340). [`PANEL_EXCLUDED_PROPS`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/utils/widgetPropFilter.ts#L24-L29) does not filter `nodeType`.
## Steps to reproduce
1. Load a workflow containing a linked or promoted asset dropdown whose widget options include `nodeType`.
2. Enable Vue widget rendering.
3. Open the browser console and observe the warning above.
## Workflow
A linked or promoted asset widget with `options.nodeType`; no specific graph topology is required.
## Impact
Visual/UI issue only. Vue catches the failed property assignment, so dropdown behavior usually continues, but the warning obscures actionable console failures.
## Suggested regression boundary
Treat `nodeType` as internal widget metadata rather than a `FormDropdown` or DOM attribute. A focused component test can render the existing asset-mode fixture with `options.nodeType` and assert that no failed-property warning is emitted.
## Environment
- Reproduced from source on current frontend `main`: `3697a1bc3ba7f6b98a1ead888721f7676b536eb5`
- Also present on historical served frontend: `956fd013c3a0eaf4ed03294972de12f3924d8db3`
- Browser: Chrome/Chromium
Contributor guide
Research direction
Start with WidgetSelectDropdown.vue and trace its v-bind into FormDropdown.vue, then inspect PANEL_EXCLUDED_PROPS in src/utils/widgetPropFilter.ts. Run the focused component test with the existing asset-mode fixture and options.nodeType. Done means the dropdown still works and rendering it no longer emits the failed-property warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100