Skip to content

Pre-release
Pre-release

Choose a tag to compare

@The3eard The3eard released this 07 Apr 18:33

[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_EDITOR to inject pre-built todo list

3-Way Merge Editor

  • CodeMirror unifiedMergeView with 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_contents reads 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