Implements --resolve-collisions flag for import command to safely handle ID
collisions during branch merges. When enabled, colliding issues are remapped
to new IDs and all text references and dependencies are automatically updated.
Also adds comprehensive tests, branch-merge example, and documentation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add reference scoring to prioritize which colliding issues should be
renumbered during collision resolution. Issues with fewer references
are renumbered first to minimize total update work.
Changes to collision.go:
- Add ReferenceScore field to CollisionDetail
- scoreCollisions() calculates scores and sorts collisions ascending
- countReferences() counts text mentions + dependency references
- Uses word-boundary regex (\b) to match exact IDs (bd-10 not bd-100)
New tests in collision_test.go:
- TestCountReferences: validates reference counting logic
- TestScoreCollisions: verifies scoring and sorting behavior
- TestCountReferencesWordBoundary: ensures exact ID matching
Reference score = text mentions (desc/design/notes/criteria) + deps
Sort order: fewest references first (minimizes renumbering impact)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add collision detection infrastructure to identify conflicts during
JSONL import when branches diverge and create issues with the same ID.
New files:
- internal/storage/sqlite/collision.go: Core collision detection logic
- detectCollisions() categorizes issues as exact matches, collisions, or new
- compareIssues() identifies which fields differ between issues
- CollisionDetail provides detailed collision reporting
- internal/storage/sqlite/collision_test.go: Comprehensive test suite
- Tests exact matches, new issues, and various collision scenarios
- Tests multi-field conflicts and edge cases
- All tests passing
This lays the foundation for bd-13 through bd-17 (reference scoring,
ID remapping, CLI flags, and documentation).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>