Repository navigation
Helix 2026.8.0
What's Changed
Features
- Side-by-side diff viewer for conflicts — inspect exactly what differs between the two sides of a conflict, with line and word-level highlighting. Backed by a new Rust diff engine (imara-diff + dissimilar) exposed to Swift over a C ABI.
- Rename a sync session — the edit sheet now takes a name. Mutagen has no rename command, so this goes through the same terminate-and-recreate path as any other config change, and the session stays selected afterward.
- Duplicate session names are rejected — mutagen permits two sessions with the same name but resolves sessions by name, which leaves
mutagen sync pause <name>ambiguous. Both create flows and the edit sheet now block a name another session already holds. - Labels — tag sessions with key=value pairs and filter the dashboard by them.
- SSH connection testing — check an endpoint before creating a session, then browse the remote filesystem to pick a path.
- Symlink awareness in conflicts — shows what each side of a symlink conflict points at, and offers replacing a symlink with a directory where that is the only resolution.
Fixes
- Conflict resolution no longer races mutagen — resolving a conflict removed the losing file, which mutagen's sync cycle then propagated to the winning side before the copy could run. Resolution now pauses the session for the duration and resumes it on every exit path.
- Conflicts stopped flickering after a flush — a poll landing mid-scan returns
conflicts: null, which read as "resolved". Known conflicts now carry forward until the scan completes. - Universal binary restored — the Rust diff library built for the host architecture only, which would have shipped an Apple Silicon-only app to Intel users on auto-update. It now builds both slices.
- Fixed an invisible diff button caused by an SF Symbol that does not exist on macOS 14.
Docs
- README documents rename, unique names, labels, connection testing, the diff viewer, and symlink handling.
Full Changelog: v2026.2.2...v2026.8.0