mirror of
https://github.com/storytold/figcraft.git
synced 2026-10-24 10:27:00 -06:00
Fills, strokes and effects already merged item by item, so both sides changing different items of one of those lists was no conflict. Every other list conflicted as a whole: both sides editing different export settings, or different guides, or different prototype interactions, or different accessibility annotations or Dev Mode links, each had to be resolved by hand for the whole list, though the items stand on their own. Export settings, guides, prototype interactions, accessibility annotations and the Dev Mode code links and resources now merge item by item, with the same rule: the same item changed both ways, an item removed on one side, or different items added on both sides still conflict. Properties that are keyed maps rather than item lists (bound, varModes, overrides, propRefs, pluginData) are deliberately left out: their items line up by key, not by position. Text runs are left whole too: they live in the node's text data, so merging them item by item means splitting a property the change format keeps whole. Replaces the test that documented the gap (other_lists_still_conflict_as_a_whole) with one that checks each new list merges, and adds one for the same item changed both ways still conflicting.