This milestone adds comprehensive remote synchronization and stacked-diff
publishing capabilities to Onyx.
## New Features
### Rebase Engine (internal/git/rebase.go)
- Stacked rebase with sequential commit rebasing
- Conflict detection and handling
- Integration with rerere for automatic conflict resolution
- Support for rebase continuation and abort operations
### Rerere Integration (internal/git/rerere.go)
- Conflict resolution recording and replay
- Cache location: .onx/rerere_cache
- Automatic application of previous conflict resolutions
- Normalized conflict pattern matching via SHA1 hashing
### Conflict Resolution UI (internal/git/conflicts.go)
- Index-based conflict detection (stage 1/2/3)
- Clear conflict presentation with file paths and hashes
- User-friendly resolution guidance
- Conflict marker extraction and analysis
### Remote Commands
#### onx sync (internal/commands/sync.go)
- Fetch latest changes from remote
- Rebase workstream stack onto updated base branch
- Automatic rerere conflict resolution
- Transaction-based with full undo support
- Progress reporting and clear error messages
#### onx push (internal/commands/push.go)
- Push all workstream branches to remote
- Support for force push operations
- Per-branch progress reporting
- Clear summary of pushed branches
### Remote Helpers (internal/git/remote.go)
- Remote validation and configuration
- Support for multiple remotes with origin default
- URL retrieval and remote existence checking
## Implementation Details
- All operations wrapped in oplog transactions for undo support
- Comprehensive error handling and user feedback
- Integration with existing workstream management
- CLI commands registered in cmd/onx/main.go
## Status
Milestone 4 is now complete. All core synchronization and remote
interaction features are implemented and tested.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>