Comfy-Org / Comfy-Org/ComfyUI_frontend

Complete the command boundary for graph-domain store mutations

Open
#17,253 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.