From 02e7f90b80de979007f7e66932d3bf183d9c2445 Mon Sep 17 00:00:00 2001
From: Ethan Dickson <ethan@coder.com>
Date: Wed, 12 Mar 2025 16:16:07 +1100
Subject: [PATCH 1/3] refactor: replace space with hyphen in directory names

---
 .gitignore                                    |   2 +-
 CONTRIBUTING.md                               |   4 +--
 {Coder Desktop => Coder-Desktop}/.swiftformat |   0
 .../.swiftlint.yml                            |   0
 .../Coder-Desktop.xctestplan                  |  10 ++++----
 .../Coder-Desktop}/About.swift                |   0
 .../AccentColor.colorset/Contents.json        |   0
 .../AppIcon.appiconset/1024.png               | Bin
 .../AppIcon.appiconset/128.png                | Bin
 .../Assets.xcassets/AppIcon.appiconset/16.png | Bin
 .../AppIcon.appiconset/256.png                | Bin
 .../Assets.xcassets/AppIcon.appiconset/32.png | Bin
 .../AppIcon.appiconset/512.png                | Bin
 .../Assets.xcassets/AppIcon.appiconset/64.png | Bin
 .../AppIcon.appiconset/Contents.json          |   0
 .../Assets.xcassets/Contents.json             |   0
 .../MenuBarIcon.imageset/Contents.json        |   0
 .../MenuBarIcon.imageset/coder_icon_16.png    | Bin
 .../coder_icon_16_dark.png                    | Bin
 .../MenuBarIcon.imageset/coder_icon_32.png    | Bin
 .../coder_icon_32_dark.png                    | Bin
 .../Coder-Desktop}/Coder_DesktopApp.swift     |   0
 .../Coder-Desktop}/Info.plist                 |   0
 .../MenuBarIconController.swift               |   0
 .../Preview Assets.xcassets/Contents.json     |   0
 .../Preview Content/PreviewVPN.swift          |   0
 .../Coder-Desktop}/State.swift                |   0
 .../Coder-Desktop}/Theme.swift                |   0
 .../Coder-Desktop}/VPN/MenuState.swift        |   0
 .../Coder-Desktop}/VPN/NetworkExtension.swift |   0
 .../Coder-Desktop}/VPN/VPNService.swift       |   0
 .../VPN/VPNSystemExtension.swift              |   0
 .../Coder-Desktop}/Views/Agents.swift         |   0
 .../Coder-Desktop}/Views/AuthButton.swift     |   0
 .../Coder-Desktop}/Views/ButtonRow.swift      |   0
 .../Coder-Desktop}/Views/InvalidAgents.swift  |   0
 .../Coder-Desktop}/Views/LoginForm.swift      |   0
 .../Coder-Desktop}/Views/ResponsiveLink.swift |   0
 .../Views/Settings/GeneralTab.swift           |   0
 .../Views/Settings/LiteralHeaderModal.swift   |   0
 .../Settings/LiteralHeadersSection.swift      |   0
 .../Views/Settings/NetworkTab.swift           |   0
 .../Views/Settings/Settings.swift             |   0
 .../Coder-Desktop}/Views/TrayDivider.swift    |   0
 .../Coder-Desktop}/Views/Util.swift           |   0
 .../Coder-Desktop}/Views/VPNMenu.swift        |   0
 .../Coder-Desktop}/Views/VPNMenuItem.swift    |   0
 .../Coder-Desktop}/Views/VPNState.swift       |   0
 .../Coder-Desktop}/Windows.swift              |   0
 .../Coder-Desktop}/XPCInterface.swift         |   0
 .../Coder-DesktopTests}/AgentsTests.swift     |   0
 .../LiteralHeadersSettingTests.swift          |   0
 .../Coder-DesktopTests}/LoginFormTests.swift  |   0
 .../Coder-DesktopTests}/Util.swift            |   0
 .../VPNMenuStateTests.swift                   |   0
 .../Coder-DesktopTests}/VPNMenuTests.swift    |   0
 .../Coder-DesktopTests}/VPNStateTests.swift   |   0
 .../Coder_DesktopUITests.swift                |   0
 .../Coder_DesktopUITestsLaunchTests.swift     |   0
 .../CoderSDK/Client.swift                     |   0
 .../CoderSDK/CoderSDK.h                       |   0
 .../CoderSDK/Date.swift                       |   0
 .../CoderSDK/Deployment.swift                 |   0
 .../CoderSDK/HTTP.swift                       |   0
 .../CoderSDK/User.swift                       |   0
 .../CoderSDKTests/CoderSDKTests.swift         |   0
 .../Resources/.mutagenversion                 |   0
 .../VPN/Info.plist                            |   0
 .../VPN/Manager.swift                         |   0
 .../VPN/PacketTunnelProvider.swift            |   0
 .../VPN/TunnelHandle.swift                    |   0
 .../VPN/XPCInterface.swift                    |   0
 ..._coder_Coder_Desktop_VPN-Bridging-Header.h |   0
 .../VPN/main.swift                            |   0
 .../VPNLib/Convert.swift                      |   0
 .../VPNLib/Download.swift                     |   0
 .../VPNLib/FileSync/FileSyncDaemon.swift      |   0
 .../VPNLib/FileSync/daemon.grpc.swift         |   2 +-
 .../VPNLib/FileSync/daemon.pb.swift           |   2 +-
 .../VPNLib/FileSync/daemon.proto              |   0
 .../VPNLib/Receiver.swift                     |   0
 .../VPNLib/Sender.swift                       |   0
 .../VPNLib/Speaker.swift                      |   0
 .../VPNLib/Util.swift                         |   0
 .../VPNLib/VPNLib.h                           |   0
 .../VPNLib/XPC.swift                          |   0
 .../VPNLib/vpn.pb.swift                       |   2 +-
 .../VPNLib/vpn.proto                          |   0
 .../VPNLibTests/ConvertTests.swift            |   0
 .../VPNLibTests/DownloadTests.swift           |   0
 .../VPNLibTests/ProtoTests.swift              |   0
 .../VPNLibTests/SpeakerTests.swift            |   0
 {Coder Desktop => Coder-Desktop}/project.yml  |  23 +++++++++---------
 Makefile                                      |  13 +++++-----
 scripts/build.sh                              |   6 ++---
 scripts/update-cask.sh                        |  10 ++++----
 96 files changed, 38 insertions(+), 36 deletions(-)
 rename {Coder Desktop => Coder-Desktop}/.swiftformat (100%)
 rename {Coder Desktop => Coder-Desktop}/.swiftlint.yml (100%)
 rename Coder Desktop/Coder Desktop.xctestplan => Coder-Desktop/Coder-Desktop.xctestplan (74%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/About.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AccentColor.colorset/Contents.json (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/1024.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/128.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/16.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/256.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/32.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/512.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/64.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/Contents.json (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/MenuBarIcon.imageset/Contents.json (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16_dark.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32_dark.png (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Coder_DesktopApp.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Info.plist (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/MenuBarIconController.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Preview Content/Preview Assets.xcassets/Contents.json (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Preview Content/PreviewVPN.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/State.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Theme.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/VPN/MenuState.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/VPN/NetworkExtension.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/VPN/VPNService.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/VPN/VPNSystemExtension.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Agents.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/AuthButton.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/ButtonRow.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/InvalidAgents.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/LoginForm.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/ResponsiveLink.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Settings/GeneralTab.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Settings/LiteralHeaderModal.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Settings/LiteralHeadersSection.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Settings/NetworkTab.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Settings/Settings.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/TrayDivider.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/Util.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/VPNMenu.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/VPNMenuItem.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Views/VPNState.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/Windows.swift (100%)
 rename {Coder Desktop/Coder Desktop => Coder-Desktop/Coder-Desktop}/XPCInterface.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/AgentsTests.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/LiteralHeadersSettingTests.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/LoginFormTests.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/Util.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/VPNMenuStateTests.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/VPNMenuTests.swift (100%)
 rename {Coder Desktop/Coder DesktopTests => Coder-Desktop/Coder-DesktopTests}/VPNStateTests.swift (100%)
 rename {Coder Desktop/Coder DesktopUITests => Coder-Desktop/Coder-DesktopUITests}/Coder_DesktopUITests.swift (100%)
 rename {Coder Desktop/Coder DesktopUITests => Coder-Desktop/Coder-DesktopUITests}/Coder_DesktopUITestsLaunchTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/Client.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/CoderSDK.h (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/Date.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/Deployment.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/HTTP.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDK/User.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/CoderSDKTests/CoderSDKTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/Resources/.mutagenversion (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/Info.plist (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/Manager.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/PacketTunnelProvider.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/TunnelHandle.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/XPCInterface.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h (100%)
 rename {Coder Desktop => Coder-Desktop}/VPN/main.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Convert.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Download.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/FileSync/FileSyncDaemon.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/FileSync/daemon.grpc.swift (99%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/FileSync/daemon.pb.swift (98%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/FileSync/daemon.proto (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Receiver.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Sender.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Speaker.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/Util.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/VPNLib.h (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/XPC.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/vpn.pb.swift (99%)
 rename {Coder Desktop => Coder-Desktop}/VPNLib/vpn.proto (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLibTests/ConvertTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLibTests/DownloadTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLibTests/ProtoTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/VPNLibTests/SpeakerTests.swift (100%)
 rename {Coder Desktop => Coder-Desktop}/project.yml (96%)

diff --git a/.gitignore b/.gitignore
index a1b91af5..45340d37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -304,4 +304,4 @@ release/
 .fl5C1A396C
 
 # Embedded mutagen resources
-Coder Desktop/Resources/mutagen-*
+Coder-Desktop/Resources/mutagen-*
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cec0dfe5..7b01b61a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -77,7 +77,7 @@ make
 ```
 
 This will use **XcodeGen** to create the required Xcode project files.
-The configuration for the project is defined in `Coder Desktop/project.yml`.
+The configuration for the project is defined in `Coder-Desktop/project.yml`.
 
 ## Common Make Commands
 
@@ -96,7 +96,7 @@ For continuous development, you can also use:
 make watch-gen
 ```
 
-This command watches for changes to `Coder Desktop/project.yml` and regenerates
+This command watches for changes to `Coder-Desktop/project.yml` and regenerates
 the Xcode project file as needed.
 
 ## Testing and Formatting
diff --git a/Coder Desktop/.swiftformat b/Coder-Desktop/.swiftformat
similarity index 100%
rename from Coder Desktop/.swiftformat
rename to Coder-Desktop/.swiftformat
diff --git a/Coder Desktop/.swiftlint.yml b/Coder-Desktop/.swiftlint.yml
similarity index 100%
rename from Coder Desktop/.swiftlint.yml
rename to Coder-Desktop/.swiftlint.yml
diff --git a/Coder Desktop/Coder Desktop.xctestplan b/Coder-Desktop/Coder-Desktop.xctestplan
similarity index 74%
rename from Coder Desktop/Coder Desktop.xctestplan
rename to Coder-Desktop/Coder-Desktop.xctestplan
index a0f608b9..8aa51291 100644
--- a/Coder Desktop/Coder Desktop.xctestplan	
+++ b/Coder-Desktop/Coder-Desktop.xctestplan
@@ -10,7 +10,7 @@
   ],
   "defaultOptions" : {
     "targetForVariableExpansion" : {
-      "containerPath" : "container:Coder Desktop.xcodeproj",
+      "containerPath" : "container:Coder-Desktop.xcodeproj",
       "identifier" : "961678FB2CFF100D00B2B6DF",
       "name" : "Coder Desktop"
     }
@@ -18,7 +18,7 @@
   "testTargets" : [
     {
       "target" : {
-        "containerPath" : "container:Coder Desktop.xcodeproj",
+        "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "AA3B40972D2FC8560099996A",
         "name" : "CoderSDKTests"
       }
@@ -27,21 +27,21 @@
       "enabled" : false,
       "parallelizable" : true,
       "target" : {
-        "containerPath" : "container:Coder Desktop.xcodeproj",
+        "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "961679182CFF100E00B2B6DF",
         "name" : "Coder DesktopUITests"
       }
     },
     {
       "target" : {
-        "containerPath" : "container:Coder Desktop.xcodeproj",
+        "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "AA3B3DA72D2D23860099996A",
         "name" : "VPNLibTests"
       }
     },
     {
       "target" : {
-        "containerPath" : "container:Coder Desktop.xcodeproj",
+        "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "9616790E2CFF100E00B2B6DF",
         "name" : "Coder DesktopTests"
       }
diff --git a/Coder Desktop/Coder Desktop/About.swift b/Coder-Desktop/Coder-Desktop/About.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/About.swift
rename to Coder-Desktop/Coder-Desktop/About.swift
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AccentColor.colorset/Contents.json b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AccentColor.colorset/Contents.json
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AccentColor.colorset/Contents.json
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AccentColor.colorset/Contents.json
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/1024.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/1024.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/1024.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/1024.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/128.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/128.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/128.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/128.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/16.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/16.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/16.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/16.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/256.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/256.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/256.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/256.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/32.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/32.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/32.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/32.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/512.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/512.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/512.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/512.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/64.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/64.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/64.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/64.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/Contents.json b/Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/Contents.json b/Coder-Desktop/Coder-Desktop/Assets.xcassets/Contents.json
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/Contents.json
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/Contents.json
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/Contents.json b/Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/Contents.json
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/Contents.json
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/Contents.json
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16_dark.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16_dark.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16_dark.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_16_dark.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32.png
diff --git a/Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32_dark.png b/Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32_dark.png
similarity index 100%
rename from Coder Desktop/Coder Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32_dark.png
rename to Coder-Desktop/Coder-Desktop/Assets.xcassets/MenuBarIcon.imageset/coder_icon_32_dark.png
diff --git a/Coder Desktop/Coder Desktop/Coder_DesktopApp.swift b/Coder-Desktop/Coder-Desktop/Coder_DesktopApp.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Coder_DesktopApp.swift
rename to Coder-Desktop/Coder-Desktop/Coder_DesktopApp.swift
diff --git a/Coder Desktop/Coder Desktop/Info.plist b/Coder-Desktop/Coder-Desktop/Info.plist
similarity index 100%
rename from Coder Desktop/Coder Desktop/Info.plist
rename to Coder-Desktop/Coder-Desktop/Info.plist
diff --git a/Coder Desktop/Coder Desktop/MenuBarIconController.swift b/Coder-Desktop/Coder-Desktop/MenuBarIconController.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/MenuBarIconController.swift
rename to Coder-Desktop/Coder-Desktop/MenuBarIconController.swift
diff --git a/Coder Desktop/Coder Desktop/Preview Content/Preview Assets.xcassets/Contents.json b/Coder-Desktop/Coder-Desktop/Preview Content/Preview Assets.xcassets/Contents.json
similarity index 100%
rename from Coder Desktop/Coder Desktop/Preview Content/Preview Assets.xcassets/Contents.json
rename to Coder-Desktop/Coder-Desktop/Preview Content/Preview Assets.xcassets/Contents.json
diff --git a/Coder Desktop/Coder Desktop/Preview Content/PreviewVPN.swift b/Coder-Desktop/Coder-Desktop/Preview Content/PreviewVPN.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Preview Content/PreviewVPN.swift
rename to Coder-Desktop/Coder-Desktop/Preview Content/PreviewVPN.swift
diff --git a/Coder Desktop/Coder Desktop/State.swift b/Coder-Desktop/Coder-Desktop/State.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/State.swift
rename to Coder-Desktop/Coder-Desktop/State.swift
diff --git a/Coder Desktop/Coder Desktop/Theme.swift b/Coder-Desktop/Coder-Desktop/Theme.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Theme.swift
rename to Coder-Desktop/Coder-Desktop/Theme.swift
diff --git a/Coder Desktop/Coder Desktop/VPN/MenuState.swift b/Coder-Desktop/Coder-Desktop/VPN/MenuState.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/VPN/MenuState.swift
rename to Coder-Desktop/Coder-Desktop/VPN/MenuState.swift
diff --git a/Coder Desktop/Coder Desktop/VPN/NetworkExtension.swift b/Coder-Desktop/Coder-Desktop/VPN/NetworkExtension.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/VPN/NetworkExtension.swift
rename to Coder-Desktop/Coder-Desktop/VPN/NetworkExtension.swift
diff --git a/Coder Desktop/Coder Desktop/VPN/VPNService.swift b/Coder-Desktop/Coder-Desktop/VPN/VPNService.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/VPN/VPNService.swift
rename to Coder-Desktop/Coder-Desktop/VPN/VPNService.swift
diff --git a/Coder Desktop/Coder Desktop/VPN/VPNSystemExtension.swift b/Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/VPN/VPNSystemExtension.swift
rename to Coder-Desktop/Coder-Desktop/VPN/VPNSystemExtension.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Agents.swift b/Coder-Desktop/Coder-Desktop/Views/Agents.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Agents.swift
rename to Coder-Desktop/Coder-Desktop/Views/Agents.swift
diff --git a/Coder Desktop/Coder Desktop/Views/AuthButton.swift b/Coder-Desktop/Coder-Desktop/Views/AuthButton.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/AuthButton.swift
rename to Coder-Desktop/Coder-Desktop/Views/AuthButton.swift
diff --git a/Coder Desktop/Coder Desktop/Views/ButtonRow.swift b/Coder-Desktop/Coder-Desktop/Views/ButtonRow.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/ButtonRow.swift
rename to Coder-Desktop/Coder-Desktop/Views/ButtonRow.swift
diff --git a/Coder Desktop/Coder Desktop/Views/InvalidAgents.swift b/Coder-Desktop/Coder-Desktop/Views/InvalidAgents.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/InvalidAgents.swift
rename to Coder-Desktop/Coder-Desktop/Views/InvalidAgents.swift
diff --git a/Coder Desktop/Coder Desktop/Views/LoginForm.swift b/Coder-Desktop/Coder-Desktop/Views/LoginForm.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/LoginForm.swift
rename to Coder-Desktop/Coder-Desktop/Views/LoginForm.swift
diff --git a/Coder Desktop/Coder Desktop/Views/ResponsiveLink.swift b/Coder-Desktop/Coder-Desktop/Views/ResponsiveLink.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/ResponsiveLink.swift
rename to Coder-Desktop/Coder-Desktop/Views/ResponsiveLink.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Settings/GeneralTab.swift b/Coder-Desktop/Coder-Desktop/Views/Settings/GeneralTab.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Settings/GeneralTab.swift
rename to Coder-Desktop/Coder-Desktop/Views/Settings/GeneralTab.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Settings/LiteralHeaderModal.swift b/Coder-Desktop/Coder-Desktop/Views/Settings/LiteralHeaderModal.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Settings/LiteralHeaderModal.swift
rename to Coder-Desktop/Coder-Desktop/Views/Settings/LiteralHeaderModal.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Settings/LiteralHeadersSection.swift b/Coder-Desktop/Coder-Desktop/Views/Settings/LiteralHeadersSection.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Settings/LiteralHeadersSection.swift
rename to Coder-Desktop/Coder-Desktop/Views/Settings/LiteralHeadersSection.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Settings/NetworkTab.swift b/Coder-Desktop/Coder-Desktop/Views/Settings/NetworkTab.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Settings/NetworkTab.swift
rename to Coder-Desktop/Coder-Desktop/Views/Settings/NetworkTab.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Settings/Settings.swift b/Coder-Desktop/Coder-Desktop/Views/Settings/Settings.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Settings/Settings.swift
rename to Coder-Desktop/Coder-Desktop/Views/Settings/Settings.swift
diff --git a/Coder Desktop/Coder Desktop/Views/TrayDivider.swift b/Coder-Desktop/Coder-Desktop/Views/TrayDivider.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/TrayDivider.swift
rename to Coder-Desktop/Coder-Desktop/Views/TrayDivider.swift
diff --git a/Coder Desktop/Coder Desktop/Views/Util.swift b/Coder-Desktop/Coder-Desktop/Views/Util.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/Util.swift
rename to Coder-Desktop/Coder-Desktop/Views/Util.swift
diff --git a/Coder Desktop/Coder Desktop/Views/VPNMenu.swift b/Coder-Desktop/Coder-Desktop/Views/VPNMenu.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/VPNMenu.swift
rename to Coder-Desktop/Coder-Desktop/Views/VPNMenu.swift
diff --git a/Coder Desktop/Coder Desktop/Views/VPNMenuItem.swift b/Coder-Desktop/Coder-Desktop/Views/VPNMenuItem.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/VPNMenuItem.swift
rename to Coder-Desktop/Coder-Desktop/Views/VPNMenuItem.swift
diff --git a/Coder Desktop/Coder Desktop/Views/VPNState.swift b/Coder-Desktop/Coder-Desktop/Views/VPNState.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Views/VPNState.swift
rename to Coder-Desktop/Coder-Desktop/Views/VPNState.swift
diff --git a/Coder Desktop/Coder Desktop/Windows.swift b/Coder-Desktop/Coder-Desktop/Windows.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/Windows.swift
rename to Coder-Desktop/Coder-Desktop/Windows.swift
diff --git a/Coder Desktop/Coder Desktop/XPCInterface.swift b/Coder-Desktop/Coder-Desktop/XPCInterface.swift
similarity index 100%
rename from Coder Desktop/Coder Desktop/XPCInterface.swift
rename to Coder-Desktop/Coder-Desktop/XPCInterface.swift
diff --git a/Coder Desktop/Coder DesktopTests/AgentsTests.swift b/Coder-Desktop/Coder-DesktopTests/AgentsTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/AgentsTests.swift
rename to Coder-Desktop/Coder-DesktopTests/AgentsTests.swift
diff --git a/Coder Desktop/Coder DesktopTests/LiteralHeadersSettingTests.swift b/Coder-Desktop/Coder-DesktopTests/LiteralHeadersSettingTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/LiteralHeadersSettingTests.swift
rename to Coder-Desktop/Coder-DesktopTests/LiteralHeadersSettingTests.swift
diff --git a/Coder Desktop/Coder DesktopTests/LoginFormTests.swift b/Coder-Desktop/Coder-DesktopTests/LoginFormTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/LoginFormTests.swift
rename to Coder-Desktop/Coder-DesktopTests/LoginFormTests.swift
diff --git a/Coder Desktop/Coder DesktopTests/Util.swift b/Coder-Desktop/Coder-DesktopTests/Util.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/Util.swift
rename to Coder-Desktop/Coder-DesktopTests/Util.swift
diff --git a/Coder Desktop/Coder DesktopTests/VPNMenuStateTests.swift b/Coder-Desktop/Coder-DesktopTests/VPNMenuStateTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/VPNMenuStateTests.swift
rename to Coder-Desktop/Coder-DesktopTests/VPNMenuStateTests.swift
diff --git a/Coder Desktop/Coder DesktopTests/VPNMenuTests.swift b/Coder-Desktop/Coder-DesktopTests/VPNMenuTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/VPNMenuTests.swift
rename to Coder-Desktop/Coder-DesktopTests/VPNMenuTests.swift
diff --git a/Coder Desktop/Coder DesktopTests/VPNStateTests.swift b/Coder-Desktop/Coder-DesktopTests/VPNStateTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopTests/VPNStateTests.swift
rename to Coder-Desktop/Coder-DesktopTests/VPNStateTests.swift
diff --git a/Coder Desktop/Coder DesktopUITests/Coder_DesktopUITests.swift b/Coder-Desktop/Coder-DesktopUITests/Coder_DesktopUITests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopUITests/Coder_DesktopUITests.swift
rename to Coder-Desktop/Coder-DesktopUITests/Coder_DesktopUITests.swift
diff --git a/Coder Desktop/Coder DesktopUITests/Coder_DesktopUITestsLaunchTests.swift b/Coder-Desktop/Coder-DesktopUITests/Coder_DesktopUITestsLaunchTests.swift
similarity index 100%
rename from Coder Desktop/Coder DesktopUITests/Coder_DesktopUITestsLaunchTests.swift
rename to Coder-Desktop/Coder-DesktopUITests/Coder_DesktopUITestsLaunchTests.swift
diff --git a/Coder Desktop/CoderSDK/Client.swift b/Coder-Desktop/CoderSDK/Client.swift
similarity index 100%
rename from Coder Desktop/CoderSDK/Client.swift
rename to Coder-Desktop/CoderSDK/Client.swift
diff --git a/Coder Desktop/CoderSDK/CoderSDK.h b/Coder-Desktop/CoderSDK/CoderSDK.h
similarity index 100%
rename from Coder Desktop/CoderSDK/CoderSDK.h
rename to Coder-Desktop/CoderSDK/CoderSDK.h
diff --git a/Coder Desktop/CoderSDK/Date.swift b/Coder-Desktop/CoderSDK/Date.swift
similarity index 100%
rename from Coder Desktop/CoderSDK/Date.swift
rename to Coder-Desktop/CoderSDK/Date.swift
diff --git a/Coder Desktop/CoderSDK/Deployment.swift b/Coder-Desktop/CoderSDK/Deployment.swift
similarity index 100%
rename from Coder Desktop/CoderSDK/Deployment.swift
rename to Coder-Desktop/CoderSDK/Deployment.swift
diff --git a/Coder Desktop/CoderSDK/HTTP.swift b/Coder-Desktop/CoderSDK/HTTP.swift
similarity index 100%
rename from Coder Desktop/CoderSDK/HTTP.swift
rename to Coder-Desktop/CoderSDK/HTTP.swift
diff --git a/Coder Desktop/CoderSDK/User.swift b/Coder-Desktop/CoderSDK/User.swift
similarity index 100%
rename from Coder Desktop/CoderSDK/User.swift
rename to Coder-Desktop/CoderSDK/User.swift
diff --git a/Coder Desktop/CoderSDKTests/CoderSDKTests.swift b/Coder-Desktop/CoderSDKTests/CoderSDKTests.swift
similarity index 100%
rename from Coder Desktop/CoderSDKTests/CoderSDKTests.swift
rename to Coder-Desktop/CoderSDKTests/CoderSDKTests.swift
diff --git a/Coder Desktop/Resources/.mutagenversion b/Coder-Desktop/Resources/.mutagenversion
similarity index 100%
rename from Coder Desktop/Resources/.mutagenversion
rename to Coder-Desktop/Resources/.mutagenversion
diff --git a/Coder Desktop/VPN/Info.plist b/Coder-Desktop/VPN/Info.plist
similarity index 100%
rename from Coder Desktop/VPN/Info.plist
rename to Coder-Desktop/VPN/Info.plist
diff --git a/Coder Desktop/VPN/Manager.swift b/Coder-Desktop/VPN/Manager.swift
similarity index 100%
rename from Coder Desktop/VPN/Manager.swift
rename to Coder-Desktop/VPN/Manager.swift
diff --git a/Coder Desktop/VPN/PacketTunnelProvider.swift b/Coder-Desktop/VPN/PacketTunnelProvider.swift
similarity index 100%
rename from Coder Desktop/VPN/PacketTunnelProvider.swift
rename to Coder-Desktop/VPN/PacketTunnelProvider.swift
diff --git a/Coder Desktop/VPN/TunnelHandle.swift b/Coder-Desktop/VPN/TunnelHandle.swift
similarity index 100%
rename from Coder Desktop/VPN/TunnelHandle.swift
rename to Coder-Desktop/VPN/TunnelHandle.swift
diff --git a/Coder Desktop/VPN/XPCInterface.swift b/Coder-Desktop/VPN/XPCInterface.swift
similarity index 100%
rename from Coder Desktop/VPN/XPCInterface.swift
rename to Coder-Desktop/VPN/XPCInterface.swift
diff --git a/Coder Desktop/VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h b/Coder-Desktop/VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h
similarity index 100%
rename from Coder Desktop/VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h
rename to Coder-Desktop/VPN/com_coder_Coder_Desktop_VPN-Bridging-Header.h
diff --git a/Coder Desktop/VPN/main.swift b/Coder-Desktop/VPN/main.swift
similarity index 100%
rename from Coder Desktop/VPN/main.swift
rename to Coder-Desktop/VPN/main.swift
diff --git a/Coder Desktop/VPNLib/Convert.swift b/Coder-Desktop/VPNLib/Convert.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Convert.swift
rename to Coder-Desktop/VPNLib/Convert.swift
diff --git a/Coder Desktop/VPNLib/Download.swift b/Coder-Desktop/VPNLib/Download.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Download.swift
rename to Coder-Desktop/VPNLib/Download.swift
diff --git a/Coder Desktop/VPNLib/FileSync/FileSyncDaemon.swift b/Coder-Desktop/VPNLib/FileSync/FileSyncDaemon.swift
similarity index 100%
rename from Coder Desktop/VPNLib/FileSync/FileSyncDaemon.swift
rename to Coder-Desktop/VPNLib/FileSync/FileSyncDaemon.swift
diff --git a/Coder Desktop/VPNLib/FileSync/daemon.grpc.swift b/Coder-Desktop/VPNLib/FileSync/daemon.grpc.swift
similarity index 99%
rename from Coder Desktop/VPNLib/FileSync/daemon.grpc.swift
rename to Coder-Desktop/VPNLib/FileSync/daemon.grpc.swift
index 4fbe0789..43d25fb9 100644
--- a/Coder Desktop/VPNLib/FileSync/daemon.grpc.swift	
+++ b/Coder-Desktop/VPNLib/FileSync/daemon.grpc.swift
@@ -3,7 +3,7 @@
 // swift-format-ignore-file
 //
 // Generated by the protocol buffer compiler.
-// Source: Coder Desktop/VPNLib/FileSync/daemon.proto
+// Source: Coder-Desktop/VPNLib/FileSync/daemon.proto
 //
 import GRPC
 import NIO
diff --git a/Coder Desktop/VPNLib/FileSync/daemon.pb.swift b/Coder-Desktop/VPNLib/FileSync/daemon.pb.swift
similarity index 98%
rename from Coder Desktop/VPNLib/FileSync/daemon.pb.swift
rename to Coder-Desktop/VPNLib/FileSync/daemon.pb.swift
index 4ed73c69..047ca500 100644
--- a/Coder Desktop/VPNLib/FileSync/daemon.pb.swift	
+++ b/Coder-Desktop/VPNLib/FileSync/daemon.pb.swift
@@ -3,7 +3,7 @@
 // swiftlint:disable all
 //
 // Generated by the Swift generator plugin for the protocol buffer compiler.
-// Source: Coder Desktop/VPNLib/FileSync/daemon.proto
+// Source: Coder-Desktop/VPNLib/FileSync/daemon.proto
 //
 // For information on using the generated types, please see the documentation:
 //   https://github.com/apple/swift-protobuf/
diff --git a/Coder Desktop/VPNLib/FileSync/daemon.proto b/Coder-Desktop/VPNLib/FileSync/daemon.proto
similarity index 100%
rename from Coder Desktop/VPNLib/FileSync/daemon.proto
rename to Coder-Desktop/VPNLib/FileSync/daemon.proto
diff --git a/Coder Desktop/VPNLib/Receiver.swift b/Coder-Desktop/VPNLib/Receiver.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Receiver.swift
rename to Coder-Desktop/VPNLib/Receiver.swift
diff --git a/Coder Desktop/VPNLib/Sender.swift b/Coder-Desktop/VPNLib/Sender.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Sender.swift
rename to Coder-Desktop/VPNLib/Sender.swift
diff --git a/Coder Desktop/VPNLib/Speaker.swift b/Coder-Desktop/VPNLib/Speaker.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Speaker.swift
rename to Coder-Desktop/VPNLib/Speaker.swift
diff --git a/Coder Desktop/VPNLib/Util.swift b/Coder-Desktop/VPNLib/Util.swift
similarity index 100%
rename from Coder Desktop/VPNLib/Util.swift
rename to Coder-Desktop/VPNLib/Util.swift
diff --git a/Coder Desktop/VPNLib/VPNLib.h b/Coder-Desktop/VPNLib/VPNLib.h
similarity index 100%
rename from Coder Desktop/VPNLib/VPNLib.h
rename to Coder-Desktop/VPNLib/VPNLib.h
diff --git a/Coder Desktop/VPNLib/XPC.swift b/Coder-Desktop/VPNLib/XPC.swift
similarity index 100%
rename from Coder Desktop/VPNLib/XPC.swift
rename to Coder-Desktop/VPNLib/XPC.swift
diff --git a/Coder Desktop/VPNLib/vpn.pb.swift b/Coder-Desktop/VPNLib/vpn.pb.swift
similarity index 99%
rename from Coder Desktop/VPNLib/vpn.pb.swift
rename to Coder-Desktop/VPNLib/vpn.pb.swift
index 0dd7238b..525f55bb 100644
--- a/Coder Desktop/VPNLib/vpn.pb.swift	
+++ b/Coder-Desktop/VPNLib/vpn.pb.swift
@@ -3,7 +3,7 @@
 // swiftlint:disable all
 //
 // Generated by the Swift generator plugin for the protocol buffer compiler.
-// Source: Coder Desktop/VPNLib/vpn.proto
+// Source: Coder-Desktop/VPNLib/vpn.proto
 //
 // For information on using the generated types, please see the documentation:
 //   https://github.com/apple/swift-protobuf/
diff --git a/Coder Desktop/VPNLib/vpn.proto b/Coder-Desktop/VPNLib/vpn.proto
similarity index 100%
rename from Coder Desktop/VPNLib/vpn.proto
rename to Coder-Desktop/VPNLib/vpn.proto
diff --git a/Coder Desktop/VPNLibTests/ConvertTests.swift b/Coder-Desktop/VPNLibTests/ConvertTests.swift
similarity index 100%
rename from Coder Desktop/VPNLibTests/ConvertTests.swift
rename to Coder-Desktop/VPNLibTests/ConvertTests.swift
diff --git a/Coder Desktop/VPNLibTests/DownloadTests.swift b/Coder-Desktop/VPNLibTests/DownloadTests.swift
similarity index 100%
rename from Coder Desktop/VPNLibTests/DownloadTests.swift
rename to Coder-Desktop/VPNLibTests/DownloadTests.swift
diff --git a/Coder Desktop/VPNLibTests/ProtoTests.swift b/Coder-Desktop/VPNLibTests/ProtoTests.swift
similarity index 100%
rename from Coder Desktop/VPNLibTests/ProtoTests.swift
rename to Coder-Desktop/VPNLibTests/ProtoTests.swift
diff --git a/Coder Desktop/VPNLibTests/SpeakerTests.swift b/Coder-Desktop/VPNLibTests/SpeakerTests.swift
similarity index 100%
rename from Coder Desktop/VPNLibTests/SpeakerTests.swift
rename to Coder-Desktop/VPNLibTests/SpeakerTests.swift
diff --git a/Coder Desktop/project.yml b/Coder-Desktop/project.yml
similarity index 96%
rename from Coder Desktop/project.yml
rename to Coder-Desktop/project.yml
index 4b0eef6d..b94f2629 100644
--- a/Coder Desktop/project.yml	
+++ b/Coder-Desktop/project.yml
@@ -1,4 +1,4 @@
-name: "Coder Desktop"
+name: "Coder-Desktop"
 options:
   bundleIdPrefix: com.coder
   deploymentTarget:
@@ -121,11 +121,11 @@ targets:
     type: application
     platform: macOS
     sources:
-      - path: Coder Desktop
+      - path: Coder-Desktop
       - path: Resources
         buildPhase: resources
     entitlements:
-      path: Coder Desktop/Coder_Desktop.entitlements
+      path: Coder-Desktop/Coder-Desktop.entitlements
       properties:
         com.apple.developer.networking.networkextension:
           - packet-tunnel-provider${PTP_SUFFIX}
@@ -140,7 +140,8 @@ targets:
         CODE_SIGN_IDENTITY: "Apple Development"
         CODE_SIGN_STYLE: Automatic
         COMBINE_HIDPI_IMAGES: YES
-        DEVELOPMENT_ASSET_PATHS: '"Coder Desktop/Preview Content"' # Adds development assets.
+        DEVELOPMENT_ASSET_PATHS: '"Coder-Desktop/Preview Content"' # Adds development assets.
+        PRODUCT_DISPLAY_NAME: "Coder Desktop"
         ENABLE_HARDENED_RUNTIME: YES
         ENABLE_PREVIEWS: YES
         INFOPLIST_KEY_LSUIElement: YES
@@ -174,19 +175,19 @@ targets:
       - package: LaunchAtLogin
     scheme:
       testPlans:
-        - path: Coder Desktop.xctestplan
+        - path: Coder-Desktop.xctestplan
       testTargets:
-        - Coder DesktopTests
-        - Coder DesktopUITests
+        - Coder-DesktopTests
+        - Coder-DesktopUITests
     buildToolPlugins:
       - plugin: SwiftLintBuildToolPlugin
         package: SwiftLintPlugins
 
-  Coder DesktopTests:
+  Coder-DesktopTests:
     type: bundle.unit-test
     platform: macOS
     sources:
-      - path: Coder DesktopTests
+      - path: Coder-DesktopTests
     settings:
       base:
         BUNDLE_LOADER: "$(TEST_HOST)"
@@ -199,11 +200,11 @@ targets:
       - package: ViewInspector
       - package: Mocker
 
-  Coder DesktopUITests:
+  Coder-DesktopUITests:
     type: bundle.ui-testing
     platform: macOS
     sources:
-      - path: Coder DesktopUITests
+      - path: Coder-DesktopUITests
     settings:
       base:
         PRODUCT_BUNDLE_IDENTIFIER: "com.coder.Coder-DesktopUITests"
diff --git a/Makefile b/Makefile
index 259c1ce5..bc15ab43 100644
--- a/Makefile
+++ b/Makefile
@@ -14,9 +14,10 @@ LINTFLAGS :=
 FMTFLAGS :=
 endif
 
-PROJECT := Coder\ Desktop
-XCPROJECT := Coder\ Desktop/Coder\ Desktop.xcodeproj
+PROJECT := Coder-Desktop
+XCPROJECT := Coder-Desktop/Coder-Desktop.xcodeproj
 SCHEME := Coder\ Desktop
+TEST_PLAN := Coder-Desktop
 SWIFT_VERSION := 6.0
 
 MUTAGEN_RESOURCES := mutagen-agents.tar.gz mutagen-darwin-arm64 mutagen-darwin-amd64
@@ -69,13 +70,13 @@ $(XCPROJECT): $(PROJECT)/project.yml
 		xcodegen
 
 $(PROJECT)/VPNLib/vpn.pb.swift: $(PROJECT)/VPNLib/vpn.proto
-	protoc --swift_opt=Visibility=public --swift_out=. 'Coder Desktop/VPNLib/vpn.proto'
+	protoc --swift_opt=Visibility=public --swift_out=. 'Coder-Desktop/VPNLib/vpn.proto'
 
 $(PROJECT)/VPNLib/FileSync/daemon.pb.swift: $(PROJECT)/VPNLib/FileSync/daemon.proto
 	protoc \
 		--swift_out=.\
 		--grpc-swift_out=. \
-		'Coder Desktop/VPNLib/FileSync/daemon.proto'
+		'Coder-Desktop/VPNLib/FileSync/daemon.proto'
 
 $(KEYCHAIN_FILE):
 	security create-keychain -p "" "$(APP_SIGNING_KEYCHAIN)"
@@ -115,7 +116,7 @@ test: $(XCPROJECT) ## Run all tests
 	set -o pipefail && xcodebuild test \
 		-project $(XCPROJECT) \
 		-scheme $(SCHEME) \
-		-testPlan $(SCHEME) \
+		-testPlan $(TEST_PLAN) \
 		-skipPackagePluginValidation \
 		CODE_SIGNING_REQUIRED=NO \
 		CODE_SIGNING_ALLOWED=NO | xcbeautify
@@ -173,6 +174,6 @@ help: ## Show this help
 
 .PHONY: watch-gen
 watch-gen: ## Generate Xcode project file and watch for changes
-	watchexec -w 'Coder Desktop/project.yml' make $(XCPROJECT)
+	watchexec -w 'Coder-Desktop/project.yml' make $(XCPROJECT)
 
 print-%: ; @echo $*=$($*)
diff --git a/scripts/build.sh b/scripts/build.sh
index 3be1045a..b1351da1 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -116,11 +116,11 @@ mkdir -p "$out"
 mkdir build
 
 # Archive the app
-ARCHIVE_PATH="./build/Coder Desktop.xcarchive"
+ARCHIVE_PATH="./build/Coder-Desktop.xcarchive"
 mkdir -p build
 
 xcodebuild \
-  -project "Coder Desktop/Coder Desktop.xcodeproj" \
+  -project "Coder-Desktop/Coder-Desktop.xcodeproj" \
   -scheme "Coder Desktop" \
   -configuration "Release" \
   -archivePath "$ARCHIVE_PATH" \
@@ -165,7 +165,7 @@ xcodebuild \
   -exportPath "$EXPORT_PATH"
 
 BUILT_APP_PATH="$EXPORT_PATH/Coder Desktop.app"
-PKG_PATH="$out/CoderDesktop.pkg"
+PKG_PATH="$out/Coder-Desktop.pkg"
 DSYM_ZIPPED_PATH="$out/coder-desktop-dsyms.zip"
 APP_ZIPPED_PATH="$out/coder-desktop-universal.zip"
 
diff --git a/scripts/update-cask.sh b/scripts/update-cask.sh
index c9a71a54..4277184a 100755
--- a/scripts/update-cask.sh
+++ b/scripts/update-cask.sh
@@ -44,15 +44,15 @@ done
   exit 1
 }
 
-# Download the CoderDesktop pkg
+# Download the Coder-Desktop pkg
 GH_RELEASE_FOLDER=$(mktemp -d)
 
 gh release download "$VERSION" \
   --repo coder/coder-desktop-macos \
   --dir "$GH_RELEASE_FOLDER" \
-  --pattern 'CoderDesktop.pkg'
+  --pattern 'Coder-Desktop.pkg'
 
-HASH=$(shasum -a 256 "$GH_RELEASE_FOLDER"/CoderDesktop.pkg | awk '{print $1}' | tr -d '\n')
+HASH=$(shasum -a 256 "$GH_RELEASE_FOLDER"/Coder-Desktop.pkg | awk '{print $1}' | tr -d '\n')
 
 IS_PREVIEW=false
 if [[ "$VERSION" == "preview" ]]; then
@@ -97,7 +97,7 @@ cask "coder-desktop${SUFFIX}" do
   version "${VERSION#v}"
   sha256 $([ "$IS_PREVIEW" = true ] && echo ":no_check" || echo "\"${HASH}\"")
 
-  url "https://github.com/coder/coder-desktop-macos/releases/download/$([ "$IS_PREVIEW" = true ] && echo "${TAG}" || echo "v#{version}")/CoderDesktop.pkg"
+  url "https://github.com/coder/coder-desktop-macos/releases/download/$([ "$IS_PREVIEW" = true ] && echo "${TAG}" || echo "v#{version}")/Coder-Desktop.pkg"
   name "Coder Desktop"
   desc "Native desktop client for Coder"
   homepage "https://github.com/coder/coder-desktop-macos"
@@ -105,7 +105,7 @@ cask "coder-desktop${SUFFIX}" do
   conflicts_with cask: "coder/coder/${CONFLICTS_WITH}"
   depends_on macos: ">= :sonoma"
 
-  pkg "CoderDesktop.pkg"
+  pkg "Coder-Desktop.pkg"
 
   uninstall quit:       [
               "com.coder.Coder-Desktop",

From cbd9f57b14d7626d2de4d272ebfe7c2b17487857 Mon Sep 17 00:00:00 2001
From: Ethan Dickson <ethan@coder.com>
Date: Wed, 12 Mar 2025 16:23:49 +1100
Subject: [PATCH 2/3] fixup

---
 Coder-Desktop/Coder-Desktop.xctestplan | 4 ++--
 Coder-Desktop/project.yml              | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/Coder-Desktop/Coder-Desktop.xctestplan b/Coder-Desktop/Coder-Desktop.xctestplan
index 8aa51291..0ddb4e11 100644
--- a/Coder-Desktop/Coder-Desktop.xctestplan
+++ b/Coder-Desktop/Coder-Desktop.xctestplan
@@ -29,7 +29,7 @@
       "target" : {
         "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "961679182CFF100E00B2B6DF",
-        "name" : "Coder DesktopUITests"
+        "name" : "Coder-DesktopUITests"
       }
     },
     {
@@ -43,7 +43,7 @@
       "target" : {
         "containerPath" : "container:Coder-Desktop.xcodeproj",
         "identifier" : "9616790E2CFF100E00B2B6DF",
-        "name" : "Coder DesktopTests"
+        "name" : "Coder-DesktopTests"
       }
     }
   ],
diff --git a/Coder-Desktop/project.yml b/Coder-Desktop/project.yml
index b94f2629..5411b5a4 100644
--- a/Coder-Desktop/project.yml
+++ b/Coder-Desktop/project.yml
@@ -141,7 +141,6 @@ targets:
         CODE_SIGN_STYLE: Automatic
         COMBINE_HIDPI_IMAGES: YES
         DEVELOPMENT_ASSET_PATHS: '"Coder-Desktop/Preview Content"' # Adds development assets.
-        PRODUCT_DISPLAY_NAME: "Coder Desktop"
         ENABLE_HARDENED_RUNTIME: YES
         ENABLE_PREVIEWS: YES
         INFOPLIST_KEY_LSUIElement: YES

From 8bc8be7d7f17b4a07c11c0e7edfe44fe4064fd07 Mon Sep 17 00:00:00 2001
From: Ethan Dickson <ethan@coder.com>
Date: Thu, 13 Mar 2025 13:27:44 +1100
Subject: [PATCH 3/3] update curl

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index bc15ab43..14faf6dd 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@ setup: \
 
 # Mutagen resources
 $(addprefix $(PROJECT)/Resources/,$(MUTAGEN_RESOURCES)): $(PROJECT)/Resources/.mutagenversion
-	curl -sL "https://storage.googleapis.com/coder-desktop/mutagen/$(MUTAGEN_VERSION)/$$(basename "$@")" -o "$@"
+	curl -sL "https://storage.googleapis.com/coder-desktop/mutagen/$(MUTAGEN_VERSION)/$(notdir $@)" -o "$@"
 	chmod +x "$@"
 
 $(XCPROJECT): $(PROJECT)/project.yml