Comfy-Org / Comfy-Org/ComfyUI_frontend
Complete the command boundary for graph-domain store mutations
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 699
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 490
Description
Complete the planned command boundary for graph-domain store mutations. `nodeDataStore`, `linkStore`, and `widgetValueStore` expose registration, deletion, replacement, and value-setting operations that callers can invoke directly.
Evidence at the linked commit: [nodeDataStore.ts](https://github.com/Comfy-Org/ComfyUI_frontend/blob/686a91971eccaec062b39830764b04e5d0aa8a03/src/stores/nodeDataStore.ts), [linkStore.ts](https://github.com/Comfy-Org/ComfyUI_frontend/blob/686a91971eccaec062b39830764b04e5d0aa8a03/src/stores/linkStore.ts), [widgetValueStore.ts](https://github.com/Comfy-Org/ComfyUI_frontend/blob/686a91971eccaec062b39830764b04e5d0aa8a03/src/stores/widgetValueStore.ts).
ADR-ECS-0008 explicitly records that non-layout mutations are still coordinated by graph/entity classes and public store actions, while graph undo remains snapshot-based. Treat this as staged work toward the documented target, not evidence that existing stores already implement command replay. Coordinate with the existing ECS migration plan and ADR-CRDT-LAYOUT-0003.
Acceptance:
- Systems produce serializable, idempotent, deterministic mutation commands/batches.
- Store mutation internals are restricted to the command executor, with an explicit compatibility strategy.
- New direct component/composable mutations fail an enforced boundary check.
- Tests prove replay and undo/redo of recorded commands, including cross-store changes and remote-origin behavior.
- Preserve extension compatibility and document migration requirements.
Upstream transfer for FE-2114. Implementation belongs upstream.
Contributor guide
Research direction
Start with src/stores/nodeDataStore.ts, linkStore.ts, and widgetValueStore.ts, then read ADR-ECS-0008 and ADR-CRDT-LAYOUT-0003 alongside the ECS migration plan. The upstream FE-2114 implementation is complete when mutation commands are serializable, replayable, undoable, boundary-enforced, cross-store and remote-origin behavior is tested, and extension migration is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100