release/0.19.9
Expensify/Apprelease/0.19.9Apr 21, 2026by krlvi
AI Summary
A significant performance and usability update for the GitButler TUI (Terminal User Interface) and CLI, featuring improved navigation, new keyboard shortcuts, and fixes for branch detection and forge integration errors.
Key Highlights
- Significant performance improvements in TUI startup and navigation.
- Added keyboard shortcuts (Ctrl+N/P) for the branch picker and 't' to open it.
- Support for creating a new branch from the '[unassigned changes]' section.
- Toasts are now stacked vertically instead of appearing as a single message.
- Fixed Windows-specific crash with stack overflow and various forge integration errors.
New Features
- Vertical toast stacking
- Branch picker keyboard navigation
- Branch creation from unassigned changes
- Improved performance for 'but status' command
Full Release Notes
## TUI - Significant performance improvements starting and navigating in the TUI (`but tui`) - It's now more intuitive to create commits at arbitrary positions above/below other commits in the stack - Toasts are now stacked vertically - Adds support for creating a new branch from the `[unassigned changes]` - Fixes an issue where squashing a commit without a message was causing additional whitespace to be added to the commit message - The branch picker now (press `t` to open) now lists the `[unassigned changes]` at the top - The branch picker now has key-binds `ctrl+n/p` to move up/down and `ctrl+[` to close the picker. - Pressing `i` in commit mode will use inline reword to write the commit message, for cases where you don't want to open an editor. ## CLI - `but status` - significant performance improvements - When `but push` is executed, the app UI will be updated to reflect the new state - Fixes a windows-specific issue that was causing the CLI to crash with a stack overflow. ## Fixes and Improvements - Fixes a bug where in some cases a branch is not correctly detected as push-able - Fixes a issue with forge integrations resulting in a "Command forge_provider not allowed by ACL" error - Fixes a GitLab-specific issue where loading the integration would fail with "invalid type: string "...", expected internally tagged enum GitLabAccount" - Fixes an issue where in rare cases of the remote tracking branch being deleted, committing locally would fail - Fixes a UI issue causing a "null is not an object (evaluating 'u.close')" error popup - It is now easier to distinguish different self-hosted forge integrations (instance URL is shown) - Improved error handling when diffing deleted resources **Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.19.8...release/0.19.9 ## Downloads Download bins from https://gitbutler.com/