From c19b39a343c68208c74b4d73997900834f2cf642 Mon Sep 17 00:00:00 2001 From: Ethan <39577870+ethanndickson@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:24:10 +1000 Subject: [PATCH 1/2] chore: append bundle version to mach service name (#191) We append the CFBundleVersion to the service name to ensure a new service is used for each version. This works around the issue described in https://github.com/coder/coder-desktop-macos/issues/121, presumably caused by the XPC service cache not being invalidated on update. ![image](https://github.com/user-attachments/assets/5b1f2d1d-7aa1-4f58-92b0-ecee712f9131) --- Coder-Desktop/Coder-Desktop/Info.plist | 7 ++++++- Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift | 5 +++-- Coder-Desktop/VPN/Info.plist | 7 ++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Coder-Desktop/Coder-Desktop/Info.plist b/Coder-Desktop/Coder-Desktop/Info.plist index a9555823..654a5179 100644 --- a/Coder-Desktop/Coder-Desktop/Info.plist +++ b/Coder-Desktop/Coder-Desktop/Info.plist @@ -29,7 +29,12 @@ NetworkExtension NEMachServiceName - $(TeamIdentifierPrefix)com.coder.Coder-Desktop.VPN + + $(TeamIdentifierPrefix)com.coder.Coder-Desktop.VPN.$(CURRENT_PROJECT_VERSION) SUPublicEDKey Ae2oQLTcx89/a73XrpOt+IVvqdo+fMTjo3UKEm77VdA= diff --git a/Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift b/Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift index cb8db684..c5e4ea08 100644 --- a/Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift +++ b/Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift @@ -183,6 +183,7 @@ class SystemExtensionDelegate: if existing.bundleVersion == `extension`.bundleVersion { return .replace } + // TODO: Workaround disabled, as we're trying another workaround // To work around the bug described in // https://github.com/coder/coder-desktop-macos/issues/121, // we're going to manually reinstall after the replacement is done. @@ -190,8 +191,8 @@ class SystemExtensionDelegate: // it looks for an extension with the *current* version string. // There's no way to modify the deactivate request to use a different // version string (i.e. `existing.bundleVersion`). - logger.info("App upgrade detected, replacing and then reinstalling") - action = .replacing + // logger.info("App upgrade detected, replacing and then reinstalling") + // action = .replacing return .replace } } diff --git a/Coder-Desktop/VPN/Info.plist b/Coder-Desktop/VPN/Info.plist index 97d4cce6..0040d95c 100644 --- a/Coder-Desktop/VPN/Info.plist +++ b/Coder-Desktop/VPN/Info.plist @@ -9,7 +9,12 @@ NetworkExtension NEMachServiceName - $(TeamIdentifierPrefix)com.coder.Coder-Desktop.VPN + + $(TeamIdentifierPrefix)com.coder.Coder-Desktop.VPN.$(CURRENT_PROJECT_VERSION) NEProviderClasses com.apple.networkextension.packet-tunnel From 15f1890fea076bc5d1ffbffb2b686496ec5e7f7e Mon Sep 17 00:00:00 2001 From: Ethan <39577870+ethanndickson@users.noreply.github.com> Date: Wed, 9 Jul 2025 20:00:46 +1000 Subject: [PATCH 2/2] fix: correct remote file picker dropdown chevron alignment (#192) There appears to be a bug when a View created using `NSView` is inside a `DisclosureGroup` label - regardless of the size of the `NSView`, it breaks the alignment of the chevron that's included on the DisclosureGroup label by default: ![](https://github.com/user-attachments/assets/d6a14a29-1b79-4a82-ac9f-62cf88142140) In #184 we added an `NSView` to the spinner, causing this issue. This is almost certainly a SwiftUI bug, and so we'll work around it by placing the spinner and error symbol to the right of the label by just setting a trailing padding on the text. The end result (with spinners on): ![](https://github.com/user-attachments/assets/50a7a7d3-bc68-4e02-b023-505b05759bf9) --- .../Views/FileSync/FilePicker.swift | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Coder-Desktop/Coder-Desktop/Views/FileSync/FilePicker.swift b/Coder-Desktop/Coder-Desktop/Views/FileSync/FilePicker.swift index 6f392961..9ec26231 100644 --- a/Coder-Desktop/Coder-Desktop/Views/FileSync/FilePicker.swift +++ b/Coder-Desktop/Coder-Desktop/Views/FileSync/FilePicker.swift @@ -123,12 +123,18 @@ struct FilePickerEntry: View { } label: { Label { Text(entry.name) - ZStack { - CircularProgressView(value: nil, strokeWidth: 2, diameter: 10) - .opacity(entry.isLoading && entry.error == nil ? 1 : 0) - Image(systemName: "exclamationmark.triangle.fill") - .opacity(entry.error != nil ? 1 : 0) - } + // The NSView within the CircularProgressView breaks + // the chevron alignment within the DisclosureGroup view. + // So, we overlay the progressview with a manual offset + .padding(.trailing, 20) + .overlay(alignment: .trailing) { + ZStack { + CircularProgressView(value: nil, strokeWidth: 2, diameter: 10) + .opacity(entry.isLoading && entry.error == nil ? 1 : 0) + Image(systemName: "exclamationmark.triangle.fill") + .opacity(entry.error != nil ? 1 : 0) + } + } } icon: { Image(systemName: "folder") }.help(entry.error != nil ? entry.error!.description : entry.absolute_path) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy