GitWorkbench 1.1.0
What's new in 1.1.0
Automatic live-refresh. The workbench now keeps itself in sync with the repository on disk — external edits, commits, branch switches, and stashes show up without any host wiring. Providers opt in by vending a change stream:
public protocol GitWorkbenchDataSource {
/// Emits whenever the repository changes on disk. Return nil (the default) to opt out.
func repositoryChanges() -> AsyncStream<Void>?
}CLIGitProvider implements this with an FSEvents-backed watcher out of the box. Pass watchesFileSystem: false to its initializer if your host drives its own refresh instead:
CLIGitProvider(repositoryURL: url) // watches automatically
CLIGitProvider(repositoryURL: url, watchesFileSystem: false) // opt outDiff mode persists. The unified/split toggle is now remembered across launches through the same WorkbenchLayoutStore that already persists the resizable column widths.
Pull / push counts as badges. Pending commits to pull or push appear as neutral count badges on the Pull and Push buttons, matching the Staged/Changes header badges.
History stays fresh after a pull. Pulling now refreshes the History view so the fetched commits appear immediately.
Slimmer toolbar. The toolbar branch pill and the History/Stashes toggle buttons were removed — branch switching and those views already live in the sidebar rail, so they're no longer duplicated up top.
Requirements
- macOS 15+
- Swift 6 (language mode v6)
Installation
.package(url: "https://github.com/gpambrozio/GitWorkbench.git", from: "1.1.0"),