Pre-release
Pre-release
[0.1.2] - 2026-04-07
Hunk + Line-Level Staging
- Stage, unstage, or discard individual hunks or specific lines within a hunk
- StagingDiffEditor with per-hunk and per-line checkboxes, select all/deselect all
- Backend builds unified diff patches from selections and applies via
git apply --cached - Discard with confirmation dialog (destructive action)
Blame + File History
- Blame view with per-line gutter annotations (author, OID, relative date)
- Commit grouping in gutter — consecutive lines from same commit share annotation block
- Click OID in gutter to reload blame at that commit
- File history panel with
git log --follow— shows all commits that touched the file - Rename detection — shows "renamed from" badge when file was moved
- Click any commit in history to view blame at that point in time
- Right-click any file in staging area or commit detail → "Blame" / "File History"
Rebase
- Non-interactive rebase from branch context menu ("Rebase onto this branch") and graph context menu ("Rebase current onto here")
- Confirmation dialog before rebase; conflicts route to merge editor automatically
Interactive Rebase
- Visual commit list editor from graph context menu ("Interactive rebase from here")
- Per-commit action dropdown: pick, squash, fixup, edit, drop
- Drag-to-reorder commits with color-coded left border per action
- Drop action shows strikethrough with reduced opacity
- Footer legend explaining each action
- Backend uses
GIT_SEQUENCE_EDITORto inject pre-built todo list
3-Way Merge Editor
- CodeMirror
unifiedMergeViewwith ours as editable content, base as reference - Inline accept/reject controls per changed chunk
- Prev/Next conflict navigation buttons
- "Mark Resolved" writes content to disk and stages the file
- Conflict toolbar now shows expandable clickable file list → opens merge editor
- Activated during any conflict operation (merge, rebase, cherry-pick, revert)
- Backend:
get_conflict_file_contentsreads ours/theirs/base from libgit2 index stages
Graph Columns
- Resizable columns — drag column separators to adjust width (min 50px), persisted across sessions
- New Email column (hidden by default) showing commit author email
- SHA column now hidden by default (toggleable from Columns dropdown)
- Column visibility and widths persisted to settings.json via new Tauri commands
10 New Built-in Themes + Complementary Pairing
- Dracula, One Dark Pro, Catppuccin Mocha, Catppuccin Latte, Nord, Tokyo Night, Solarized Dark, Solarized Light, Gruvbox Dark, Monokai Pro
- Total: 14 built-in themes (10 dark, 4 light)
- Complementary theme pairing for OS auto-switch — each theme maps to a light/dark counterpart so toggling OS appearance picks the right pair (e.g., Catppuccin Mocha ↔ Catppuccin Latte)
Performance
Arc<str>for commit OIDs in graph-builder — eliminates ~10 String clones per commit in the 100K+ commit hot path- GitLab stage grouping optimized from O(n²) to O(n) via HashMap index
Code Quality & Deduplication
- Replaced 30+ hardcoded CSS color values with theme variables across 5 components
- Added
--overlay-accent-*CSS variables for consistent overlay theming - Consolidated 3 inline date formatters into shared
formatDate()/formatDateTime()utilities - Replaced manual debounce in TagList with shared
debounce()utility - Deduplicated
normalize_github_url(auth crate now imports from github-api)
Bug Fixes
- Fixed stale detail panels when switching repository tabs — graph, branch, tag, stash, blame, and worktree state now fully cleared on tab switch
- Conflict status now refreshed on repo tab switch
- Branch commit list not taking full available width (missing
min-width: 0) - Diff close button hidden when file path is too long (added overflow handling +
flex-shrink: 0) - npm security audit: resolved high-severity vite vulnerability, overrode cookie to ^0.7.0 (0 vulnerabilities)
Settings
- Removed Repository section (remote management) — will return with gh/glab CLI integration