Summary
Currently, when nodes are grouped in Weave.js, new node IDs are generated (or existing IDs are not preserved), causing references, selections, connections, and external state mappings tied to the original node IDs to break.
Node IDs should remain stable across grouping operations whenever possible, ensuring that grouped nodes can still be reliably tracked and referenced.
Expected Behavior
- Grouping nodes should preserve the original IDs of the contained nodes.
- Any edges, selections, metadata, or external references using node IDs should continue to work after grouping.
- Ungrouping should restore the same node IDs that existed before grouping.
Current Behavior
- Grouping creates new IDs or otherwise changes node identifiers.
- External state and references that depend on stable IDs become invalid.
Acceptance Criteria
- Grouping nodes does not modify child node IDs.
- Existing edges remain valid after grouping.
- External state keyed by node ID remains functional.
- Ungrouping restores nodes with their original IDs.
- Existing tests cover grouping/ungrouping ID stability.
Summary
Currently, when nodes are grouped in Weave.js, new node IDs are generated (or existing IDs are not preserved), causing references, selections, connections, and external state mappings tied to the original node IDs to break.
Node IDs should remain stable across grouping operations whenever possible, ensuring that grouped nodes can still be reliably tracked and referenced.
Expected Behavior
Current Behavior
Acceptance Criteria