#377
feat: implement graph diff, 3-way merge, and auto-merge (#348-PR2-8)
Summary
Implement the complete #348 roadmap for node-level graph merging:
-
PR2: Node-level "what changed" diff
zero graph diff --base <a> <b> --json- Returns changeset with added/removed/modified entries
-
PR3: 3-way collision detection
zero graph merge --base <base> <ours> <theirs> --json- Reports conflicts with GMG### codes
-
PR4: Auto-combine non-overlapping edits
- Same command with
--out <file>to write merged result - Re-validates merged graph
- Same command with
-
PR5: Trivial convergences
- Auto-resolve identical edits, delete/delete, add/add
- Order-insensitive list handling
-
PR6: Field-level disjointness
- Same node, different fields = no conflict
- Only same field = GMG001 conflict
-
PR7: Move-aware resolution
- Track node moves via symbol_id changes
- Handle parent-moved/child-edited cases
- Detect move/move cycles (GMG005, GMG006)
-
PR8: Semantic post-merge checks
- Run validation and type-checking on merged graph
- Report issues without auto-fixing
Acceptance Criteria
- Diff: value edit shows as single modified entry
- Merge: disjoint edits → successful merge
- Merge: conflicts → reported with GMG codes
- Auto-resolve trivial convergences
- Field-level disjointness handled
- Move-aware resolution implemented
- Semantic validation on merged result
Activity
15vercel[bot]reviewed5mo ago
vercel[bot]reviewed5mo ago
vercel[bot]reviewed5mo ago
vercel[bot]reviewed5mo ago
@TumCucTom is attempting to deploy a commit to the Vercel Labs Team on Vercel.
A member of the Team first needs to authorize it.