mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-17 01:07:56 +00:00
## Summary Migrates the `inputs[].link` mirror-based reactivity tracking to `linkStore` queries and deletes the slot-link reprojection machinery in `useGraphNodeManager`. ## Changes - **What**: `NodeSlots.linkedWidgetedInputs`, `usePartitionedBadges`' pricing pokes, and `trackNodePrice` now query `linkStore.isInputSlotConnected` (root graph id + unfiltered slot index). Deletes the `node:slot-links:changed` handler and its load-bearing comment, the emitter-less `node:slot-errors:changed` handler, `refreshNodeInputs`, and the node-removal refresh-all loop. Adds unified-mode NodeSlots tests (none existed) and a `trackNodePrice` reactivity test. Drafts `docs/architecture/node-data-store.md` for the next phase. - **Not removed**: the `node:slot-links:changed` emitters and trigger type entries, the `input.link` mirror itself, the computation-path `inp.link` reads in `useNodePricing.buildJsonataContext` (migrated in #13498 alongside the mirror deletion), and the `node:slot-label:changed` handler — those belong to the Slot extraction / nodeDataStore phases. ## Review Focus - The node-removal refresh-all loop deletion (own commit) — originally shipped as a regression fix; gated locally on the vue-nodes legacy widget e2e spec plus the full vueNodes suite (126 passed). - Pricing badges previously only re-evaluated for widgeted inputs (the trigger's gate); linkStore queries now also cover non-widgeted pricing inputs — a correctness improvement, not parity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>