This seems to occur when the edges are not connected directly to the moved elements, but rather to descendants of the moved elements.
Solving this problem probably requires two fixes:
In MoveCommand.execute, only edges attached to directly moved elements are found by index.getAttachedElements(element). Perhaps the definition of outgoing / incoming edges could be extended to include edges connected to descendants, but I haven't checked for side effects to that, or an additional index data structure is needed.
Later, in MoveCommand.doMove, there is a test whether both edge ends are included in the move:
if (edge.source
&& edge.target
&& this.resolvedMoves.get(edge.source.id)
&& this.resolvedMoves.get(edge.target.id))
That would require checking the descendant relation as well.
This seems to occur when the edges are not connected directly to the moved elements, but rather to descendants of the moved elements.
Solving this problem probably requires two fixes:
In MoveCommand.execute, only edges attached to directly moved elements are found by index.getAttachedElements(element). Perhaps the definition of outgoing / incoming edges could be extended to include edges connected to descendants, but I haven't checked for side effects to that, or an additional index data structure is needed.
Later, in MoveCommand.doMove, there is a test whether both edge ends are included in the move:
That would require checking the descendant relation as well.