v0.8.1
What's New
Repository Display Names
- New command
get_repo_display_nameto read repository description as display name - Displays custom project names in the titlebar when configured
- Falls back to repository folder name when no custom description is set
- Automatically fetches display names for recently used repositories
- Supports Git submodule
.gitfile format withgitdir:references
Titlebar Enhancements
- New disclosure tooltips for truncated repository and branch names
- Interactive tooltips showing full details when labels overflow
- Branch name tooltip displays full branch name when truncated
- Repository tooltip displays both custom display name and full path when truncated
- Better visual feedback for copy affordance with "Click to copy path" hint
- Improved layout with cleaner repository name display
Commit Message Processing
- New
commit_message.rsmodule for parsing and processing commit bodies - Separates commit prose body from metadata trailers
- Trailers are properly identified as contiguous
Key: valuepairs at message end - Empty lines between prose and trailers are handled correctly
- Message body is now returned in
CommitDetailsfor display in the UI - Both CLI and gix backends return identical body and trailer parsing
File Tree Compaction
- Uninterrupted single-directory chains are now compacted in the file tree
- Reduces visual depth for deeply nested single-folder paths
- Shows full compacted path in folder labels (e.g.,
game/assets/graphics/100/en/symbols) - Only compacts when a directory contains only one subdirectory
- Maintains proper layout and selection semantics
Repository State Monitoring Improvements
- Better handling of Git lock files (
.lock) - now ignored in file watch events .git/objects/directory writes are filtered out from state refreshes- Uses
GIT_OPTIONAL_LOCKS=0environment variable for status and numstat operations - More precise path filtering logic for relevant Git state changes
- Reduces unnecessary refreshes during fetch operations
UI Improvements
- File striping calculations now account for visible rows only
- Striping restarts independently for staged and unstaged sections
- Folder rows are no longer striped to maintain visual hierarchy
- Commit details popover properly scrolls when content exceeds viewport height
- Better handling of popover positioning near screen edges
- Popover stays within viewport bounds with minimum 8px margin
Build and Dependencies
- Updated esbuild from 0.28.0 to 0.28.1
- Updated Vite from 8.0.8 to 8.1.0
- Updated Rolldown from 1.0.0-rc.15 to 1.1.3
- Updated postcss from 8.5.13 to 8.5.16
- Updated nanoid from 3.3.11 to 3.3.15
- Updated undici from 7.24.6 to 7.28.0
- Updated tinyglobby from 0.2.15 to 0.2.17
- Updated @napi-rs/wasm-runtime from 1.1.3 to 1.1.6
- Updated @oxc-project/types from 0.124.0 to 0.137.0
Permissions and API Updates
- Updated Tauri permissions schema to include new Opener plugin capabilities
- New App permission
allow-supports-multiple-windows - New Window permissions
allow-activity-nameandallow-scene-identifier - New Tray permission
allow-set-icon-with-as-template - Dialog deprecated permissions
allow-askandallow-confirmmarked as deprecated - Full Opener plugin scope support with URL and path configurations
TypeScript and API Additions
- Added
CommitDetails.bodyfield to represent prose message content - New TypeScript utils for repository display name handling
- Enhanced titlebar component tests for disclosure functionality
- New diff panel tests for commit details display
Package Configuration
- Added
allowScriptsconfiguration for esbuild
Fixes
- Fixed commit trailers parsing to properly separate prose from metadata
- Fixed file striping to not apply to folder rows
- Fixed popover positioning to avoid going off-screen
- Fixed file tree rendering to preserve striping consistency across sections
- Improved Git lock file filtering for more reliable state monitoring
- Better handling of concurrent Git operations with optional lock control
Full Changelog: v0.8.0...v0.8.1