Steve Yegge
975443e08b
feat(merge): add tombstone support for 3-way merge (bd-0ih)
Implements tombstone merge semantics per design in bd-zvg:
- Add tombstone fields to merge.Issue struct (deleted_at, deleted_by, etc.)
- Add IsTombstone() and IsExpiredTombstone() helper functions
- Implement tombstone-wins-unless-expired logic
- Add tombstone vs tombstone merge (later deleted_at wins)
- Add merge3WayWithTTL() for configurable TTL
- Update mergeStatus() to handle tombstone status as safety measure
Merge rule summary:
| Left | Right | Condition | Result |
|-----------|-----------|-------------|-----------------------|
| Live | Tombstone | Not expired | Tombstone |
| Live | Tombstone | Expired | Live (resurrection) |
| Tombstone | Live | Not expired | Tombstone |
| Tombstone | Live | Expired | Live (resurrection) |
| Tombstone | Tombstone | - | Later deleted_at wins |
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>