Skip to content

[3/3] refactor: replace PromotedWidgetView with store-backed WidgetId projection#3

Draft
huang47 wants to merge 1 commit into
shihchi/no-promo-2-widget-idfrom
shihchi/no-promo-3-projection-swap
Draft

[3/3] refactor: replace PromotedWidgetView with store-backed WidgetId projection#3
huang47 wants to merge 1 commit into
shihchi/no-promo-2-widget-idfrom
shihchi/no-promo-3-projection-swap

Conversation

@huang47

@huang47 huang47 commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Part 3/3 — stacked on 2/3.

Base: shihchi/no-promo-2-widget-id · Adds: the atomic PromotedWidgetView → store-backed WidgetId projection swap.

The irreducible core. ~15 consumers read the removed PromotedWidgetView object model (isPromotedWidgetView, widget.sourceNodeId / sourceWidgetName, resolvePromotedWidgetSource); the new input-slot projection deletes them and SubgraphNode cannot host both models, so store / litegraph / projection / consumers / tests migrate as one unit.

Contract changes to review: nodeId now string; promoted widget name = input-slot name; renderKey format; error-arg reshuffle; resolveNodeWidget drops its promoted branch; strict widget-id parse.

104 files. Stack tip is byte-identical to drjkl/no-promotions plus the 1/3 seam test.

…ction

The atomic promotion-mechanism swap (3/3). ~15 consumers read the old
PromotedWidgetView object model which the new input-slot projection removes;
SubgraphNode cannot host both, so store/litegraph/projection/consumers/tests
migrate as one unit. See temp/plans/no-promotions-stack.md for the contract
ledger.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants