From bda762d4bc30a5779af3dbaaf9c45d207b846b3e Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Thu, 26 Feb 2026 07:53:09 -0800 Subject: [PATCH] Bump embedded worktrunk from 0.22.0 to 0.27.0 Reinstall when an older Ghostree-managed binary is detected by tracking the installed version in a .worktrunk-version marker file. Non-managed installs (Homebrew, custom path) are unaffected. --- .../Features/Worktrunk/WorktrunkInstaller.swift | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/macos/Sources/Features/Worktrunk/WorktrunkInstaller.swift b/macos/Sources/Features/Worktrunk/WorktrunkInstaller.swift index b7fa9b3103..3230adb24b 100644 --- a/macos/Sources/Features/Worktrunk/WorktrunkInstaller.swift +++ b/macos/Sources/Features/Worktrunk/WorktrunkInstaller.swift @@ -30,9 +30,9 @@ enum WorktrunkInstallerError: LocalizedError { enum WorktrunkInstaller { private struct Release { - static let version = "0.22.0" + static let version = "0.27.0" static let assetName = "worktrunk-aarch64-apple-darwin.tar.xz" - static let sha256 = "1fd193d8ed95453dbeadd900035312a6df61ff3fad43dc85eb1a9f7b48895b3c" + static let sha256 = "3ebfbe6b034afeb686bbddd39c0bee1942ed1448a7a7d5c9cca703ae9693683f" static var url: URL { URL(string: "https://github.com/max-sixty/worktrunk/releases/download/v\(version)/\(assetName)")! @@ -47,8 +47,11 @@ enum WorktrunkInstaller { let binDir = AgentStatusPaths.binDir let wtDest = binDir.appendingPathComponent("wt", isDirectory: false) let gitWtDest = binDir.appendingPathComponent("git-wt", isDirectory: false) + let versionFile = binDir.appendingPathComponent(".worktrunk-version", isDirectory: false) + if FileManager.default.isExecutableFile(atPath: wtDest.path), - FileManager.default.isExecutableFile(atPath: gitWtDest.path) { + FileManager.default.isExecutableFile(atPath: gitWtDest.path), + installedVersion(at: versionFile) == Release.version { return } @@ -96,6 +99,12 @@ enum WorktrunkInstaller { try makeExecutable(url: gitWtDest) _ = try? removeQuarantine(url: wtDest) _ = try? removeQuarantine(url: gitWtDest) + + try? Release.version.write(to: versionFile, atomically: true, encoding: .utf8) + } + + private static func installedVersion(at url: URL) -> String? { + try? String(contentsOf: url, encoding: .utf8).trimmingCharacters(in: .whitespacesAndNewlines) } private static func isSupportedArchitecture() -> Bool {