Changelog for Butler
v0.3.0-beta0 - September 16, 2026
What’s Changed
Enhancements
- Bugreport: Collapse the log on the report details screen by @d4rken in #118
- Viewer: Add previous/next file arrows when opened from an Explorer by @d4rken in #120
- Workspace: Remove a tab from a pane without closing it by @d4rken in #121
- Workspace: Color the Butler button’s new tab and close actions by @d4rken in #123
- History: Jump from an operation’s details to its history entry by @d4rken in #122
- General: Align spacing across screens and use the full pane width by @d4rken in #126
- Explorer: Suggest only openable storage apps and show their icons by @d4rken in #127
- History: Select multiple operations to delete or share them by @d4rken in #128
- General: Show the privacy policy and prefill shared report emails by @d4rken in #119
- Viewer: Preview text files without opening the editor by @d4rken in #131
- Explorer: Show a plus on the add storage location button by @d4rken in #132
- Workspace: Make operation performance graphs a Pro feature by @d4rken in #134
- Explorer: Drag files onto folders, favorites and breadcrumbs by @d4rken in #130
- Workspace: Give the operation description the full sheet width by @d4rken in #136
- History: Reset all filters at once and show chip selection clearly by @d4rken in #137
- Workspace: Always show performance info, and explain when it’s empty by @d4rken in #142
- General: Make clipboard configuration a Pro feature by @d4rken in #143
- Workspace: Open a new tab next to the one it came from by @d4rken in #144
- History: Make sharing and deleting history entries a Pro feature by @d4rken in #141
- General: Show how many items a drag is carrying by @d4rken in #145
- Workspace: Grow the tab manager out of the button that opens it by @d4rken in #147
- Workspace: Reveal tab shortcuts from the manager button and add a new-tab card by @d4rken in #139
- Bugreport: Name your bug reports so you can tell them apart by @d4rken in #148
- Workspace: Filter the tab manager by paused tabs and unsaved changes by @d4rken in #149
- Templates: Rename a tab straight from the picker headline by @d4rken in #152
- Workspace: Move the tab rail to the bottom edge in portrait by @d4rken in #156
- Viewer: Remove the inert eye icon from the toolbar by @d4rken in #160
- Workspace: Make the rail’s “+” open and focus the Templates picker by @d4rken in #161
- Workspace: Give every workspace toolbar the same minimum height by @d4rken in #162
- General: Add German translation by @d4rken in #163
- General: Obfuscate the Google Play build by @d4rken in #165
- Workspace: Add a single-pane layout with the tab rail by @d4rken in #167
- Workspace: Fit one more tab in the navigation rail by @d4rken in #171
- General: Choose list or grid and how much detail each item shows by @d4rken in #168
- Workspace: Switch the pane layout from the tab rail’s Butler menu by @d4rken in #180
- Explorer: Move refresh and folder favoriting into the action bar menu by @d4rken in #182
- Explorer: Calculate how much space each folder uses by @d4rken in #179
- Apps: Show progress and results for app actions in the operations bar by @d4rken in #183
- Apps: Name exported APKs after the app instead of base.apk by @d4rken in #186
- Workspace: Mark tabs with running work in the tab manager and the rail by @d4rken in #193
- Workspace: Show operation speed over time instead of completion by @d4rken in #199
- Workspace: Show what a folder contains on its grid tile by @d4rken in #205
- Explorer: Add an option to hide and show hidden files by @d4rken in #206
- Workspace: Choose which type new tabs open as by @d4rken in #204
- Workspace: Let the Butler button sit at the end of the tab rail by @d4rken in #207
- Templates: Add a tip to the tab picker, fix the Pro restore wording by @d4rken in #208
- Explorer: Give your favorites your own names and manage them by selection by @d4rken in #209
- General: Dress Butler in navy and let you pick his suit color by @d4rken in #213
- Workspace: Explain swiping between tabs and side-by-side panes by @d4rken in #214
- General: Change which features need Butler Pro by @d4rken in #217
- General: Generate themes from a colour you pick by @d4rken in #216
- Explorer: See files that just arrived, wherever they landed by @d4rken in #218
Bug fixes - IO: Stop leaking file handles when previews are cancelled by @d4rken in #117
- IO: Stop treating files that cannot be checked as deleted by @d4rken in #124
- General: Fix long file names wrapping badly in confirmation dialogs by @d4rken in #125
- Workspace: Keep the closed-tab undo bar clear of the navigation rail by @d4rken in #129
- IO: Say a file is gone instead of blaming permissions by @d4rken in #135
- Developer: Generate test files at their advertised size by @d4rken in #140
- Bugreport: Ask before deleting a report and space out its buttons by @d4rken in #138
- Searcher: Install APKs and app bundles straight from search results by @d4rken in #146
- IO: Fix root file operations aborting instead of asking what to do by @d4rken in #151
- Apps: Show the package name for apps with an empty name by @d4rken in #153
- Workspace: Keep the New tab tile with the tabs instead of below the tip card by @d4rken in #155
- IO: Fix empty folder listings on Android 13 by @d4rken in #154
- Editor: Say why a file can’t be edited instead of calling it binary by @d4rken in #157
- IO: Stop reporting non-permission file errors as “Permission denied” by @d4rken in #158
- General: Give the mascot a dark theme so he stops vanishing by @d4rken in #150
- Workspace: Show the end of a tab’s path in the navigation rail by @d4rken in #159
- Explorer: Fix folder rows never showing item counts and permissions by @d4rken in #164
- Workspace: Stop finished operations from piling up in memory by @d4rken in #166
- IO: Fix files not opening in storage provided by other apps by @d4rken in #169
- Apps: Fix app actions failing silently and not updating the screen by @d4rken in #172
- IO: Fix detection of ShizukuPlus forks by @d4rken in #177
- General: Improve mascot clothing contrast in dark mode by @d4rken in #176
- Explorer: Fix a crash when a folder holds two files with the same name by @d4rken in #174
- Workspace: Prevent operations header labels from overlapping by @d4rken in #181
- General: Confirm rename dialogs with the enter key by @d4rken in #187
- Explorer: Fix revealing saved SMB passwords in the edit dialog by @d4rken in #188
- Workspace: Fix dialogs shrinking for a keyboard in another pane by @d4rken in #189
- General: Fix the sponsor button going dead after a system dialog by @d4rken in #190
- Workspace: Fix the performance graph jumping while an operation runs by @d4rken in #191
- IO: Fix the operation graph starting partway across the plot by @d4rken in #194
- Workspace: Show that an operation is canceling until it stops by @d4rken in #192
- Workspace: Keep the operation details sheet from jumping as the estimate changes by @d4rken in #198
- Workspace: Stop the joke loading message flickering during file operations by @d4rken in #200
- IO: Keep the original file when an overwrite fails partway by @d4rken in #211
- IO: Make Cancel work while a cloud document is still being fetched by @d4rken in #212
Other changes - Release: Wait up to 30 minutes for main’s checks before releasing by @d4rken in #116
- General: Rewrite the Play Store “What’s new” text by @d4rken in #133
- General: Add a hostile SAF provider for QA by @d4rken in #170
- General: Migrate Claude plugins to Clanker Cafe by @d4rken in #173
- General: Fix the SAF test fixture’s shell controls by @d4rken in #175
- Workspace: Let operations keep their tab open and describe their result shape by @d4rken in #178
- General: Remove retired Claude Cafe plugin settings by @d4rken in #184
- IO: Replace the SMB client used for network shares by @d4rken in #185
- General: Fix privacy policy links on GitHub Pages by @d4rken in #195
- General: Stop CI tests failing on a Maven Central outage by @d4rken in #202
- General: Describe network shares and archives in the store listing by @d4rken in #210
- General: Fix a unit test that failed intermittently in CI by @d4rken in #215
- General: Update to the latest Compose release by @d4rken in #219
v0.2.0-beta0 - September 02, 2026
What’s Changed
Enhancements
- IO: Show previews for files that need root or ADB access by @d4rken in #61
- Workspace: Make clipboard entry details readable and name their tab by @d4rken in #69
- General: Let SD Maid’s mascot make a rare guest appearance by @d4rken in #71
- Explorer: Add SMB network storage support by @d4rken in #62
- Workspace: Explain the add-tab button’s long-press shortcut by @d4rken in #74
- Workspace: Show where an operation put your files by @d4rken in #76
- Bugreport: Bigger record button, and delete all now asks first by @d4rken in #78
- Explorer: Suggest apps that share storage when adding a location by @d4rken in #82
- Workspace: Add multi-select to the tab manager to close several tabs at once by @d4rken in #75
- Explorer: Install APK, APKS, XAPK and APKM files by @d4rken in #88
- Workspace: Add undo for closing tabs by @d4rken in #85
- Explorer: Tell a deleted folder apart from one that cannot be reached by @d4rken in #94
- Workspace: Tighten the spacing on operation details cards by @d4rken in #95
- General: Ask before sharing an error report and attach full details by @d4rken in #99
- Workspace: Explain the tab manager’s drag and long-press gestures by @d4rken in #108
- Workspace: Let the closed-tab undo bar be swiped away by @d4rken in #109
- General: Treat yaml, json and 60 more file types as text by @d4rken in #113
Bug fixes - Workspace: Stop losing tab changes when a session save fails by @d4rken in #65
- Workspace: Fix misleading and stale operation performance graphs by @d4rken in #66
- General: Fix back presses that did nothing by @d4rken in #67
- Workspace: Fix the system back gesture doing nothing next to the tab pager by @d4rken in #70
- Editor: Fix the cursor landing on the wrong line after scrolling by @d4rken in #72
- Release: Fix Google Play uploads failing on tagged releases by @d4rken in #73
- Workspace: Show unsaved changes in the tab manager and stop closing them silently by @d4rken in #77
- Workspace: Fix tabs bouncing back when swiping quickly by @d4rken in #84
- History: Fix rows naming the wrong file by @d4rken in #86
- Workspace: Fix closing a tab with unsaved changes doing nothing by @d4rken in #89
- Apps: Stop offering storage folders an app does not have by @d4rken in #91
- IO: Fix unreadable errors from root and ADB file operations by @d4rken in #93
- Workspace: Fix operations bar freezing after an app install by @d4rken in #96
- Searcher: Fix copy and cut appearing to do nothing by @d4rken in #97
- Workspace: Ask about closing a tab without dimming an unrelated tab by @d4rken in #98
- Workspace: Keep restored tabs when a wider layout fills its panes by @d4rken in #101
- General: Fix root setup showing as not installed while root works by @d4rken in #102
- General: Fix content hidden behind the operations bar by @d4rken in #104
- General: Fix invisible text in dark theme by @d4rken in #106
- IO: Report the real cause when a root or ADB file operation fails by @d4rken in #103
- Bugreport: Include root and Shizuku logs in recordings by @d4rken in #107
- Bugreport: Resume an interrupted debug recording after a restart by @d4rken in #110
- Editor: Say a file is gone instead of showing an error by @d4rken in #111
- General: Fix guided tours losing their text and skipping steps by @d4rken in #112
- Fix: Root setup card no longer claims the root manager is missing by @d4rken in #114
- Explorer: Offer root setup for Android/data when the root manager is not recognised by @d4rken in #115
Other changes - Release: Refresh the default Play Store release notes by @d4rken in #55
- General: List the Google Play signing fingerprints by @d4rken in #56
- Upgrade: Remove upgrade-screen strings left behind by the redesigns by @d4rken in #58
- General: Stop the shared resource churn tests flaking on a benign teardown race by @d4rken in #59
- Explorer: Stop the favorites tests flaking on a stale-cache race by @d4rken in #60
- Workspace: Make the operation details card easier to read by @d4rken in #68
- General: Catch schema changes that would break existing databases by @d4rken in #79
- Explorer: Guard against storage locations showing a stale name again by @d4rken in #87
- General: Document the unit test compile gate for constructor changes by @d4rken in #92
- General: Share the floating bar packaging across workspaces by @d4rken in #100
- General: Fix flaky shell test deadlocking under system load by @d4rken in #105
v0.1.0-beta0 - August 23, 2026
No release notes available.
First public beta of Butler 🎉 Tab-based file explorer for Android. Not feature complete yet, expect rough edges.