Files
ComfyUI_frontend/docs/architecture
DrJKL 0e206118d3 refactor(world): split WidgetValue into per-aspect components
- Replace WidgetValueComponent with four components (Value, Display,
  Schema, Serialize) defined via new defineComponentKeys factory.
- Add slot() phantom-typed helper so factory can recover TData/TEntity
  per slot and emit string-literal-typed names.
- widgetValueStore now stores per-aspect data and returns delegating
  WidgetState views built by buildView(); identity is no longer
  preserved across getWidget calls (data round-trips, identity does not).
- Add WidgetRegistration input shape (carries name/nodeId for id
  construction) distinct from the returned WidgetState view.
- Add getNodeWidgetsByName() that derives names from WidgetEntityId via
  new parseWidgetEntityId() helper.
- entityIds: add parseWidgetEntityId, isNodeIdForGraph,
  isWidgetIdForGraph; clearGraph and stores use the predicates instead
  of duplicating prefix logic.
- world: introduce getBucket/getOrCreateBucket internals, key buckets
  by ComponentKey reference identity (documented), confine the
  existential cast to a single eraseKey boundary.
- Update tests for componentKey factory, entityIds parsers, world
  bucket semantics, widgetValueStore view semantics, and adjust
  BaseWidget/useUpstreamValue/useImageCrop tests accordingly.
- docs: refresh ECS pattern survey appendix to reflect new layout.

Amp-Thread-ID: https://ampcode.com/threads/T-019de010-ead4-7627-9552-3d44d7a46726
Co-authored-by: Amp <amp@ampcode.com>
2026-04-30 13:26:05 -07:00
..