Skip to content

GitWorkbench 1.1.0

Choose a tag to compare

@gpambrozio gpambrozio released this 09 Jun 03:50

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 out

Diff 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"),