- Notifications
You must be signed in to change notification settings - Fork3
Comparing changes
Open a pull request
base repository:coder/coder-desktop-macos
Uh oh!
There was an error while loading.Please reload this page.
base:v0.3.0
head repository:coder/coder-desktop-macos
Uh oh!
There was an error while loading.Please reload this page.
compare:v0.4.0
- 16commits
- 98files changed
- 1contributor
Commits on Apr 10, 2025
refactor(CoderSDK): share code between Client and AgentClient (#132)
Refactor to address review feedback that `AgentClient` extending the regular `Client` was confusing.
Commits on Apr 15, 2025
feat: use the deployment's hostname suffix in the UI (#133)
Closes#93.<img width="272" alt="image" src="https://github.com/user-attachments/assets/54786bea-9d32-432f-9869-5abd42a86516" />The only time the hostname suffix is used by the desktop app is when an offline workspace needs to be shown in the list, where we naively append `.coder`. This PR sets this appended value to whatever `--workspace-hostname-suffix` is configured to deployment-side.We read the config value from the deployment when:- The app is launched, if the user is signed in.- The user signs in.- The VPN is started.
fix: support old VPN config names in post & pre install scripts (#134)
One thing I noticed as part of my work on#121 is that our attempted fix introduced in#92 wasn't working as expected if the user had a VPN configuration installed before#86. This PR fetches the unique name of the VPN service dynamically, as part of the script, such that the service is started and stopped regardless of whether the service is called "Coder" or the older "CoderVPN".This also ensures we don't break it again if we ever change that name, such as to "Coder Connect" (I don't totally recall why it was set to "Coder", but I don't mind it)
Commits on Apr 23, 2025
chore: bump mutagen version (#138)
Adds the fix forcoder/internal#566
Commits on May 1, 2025
feat: add workspace apps (#136)
Closes#94.<img width="311" alt="Screenshot 2025-04-22 at 2 10 32 pm" src="https://github.com/user-attachments/assets/36e20e2e-49b4-4cbd-8bcc-e41840fdc45c" />https://github.com/user-attachments/assets/0777d1c9-6183-487d-b24a-b2ad9639d75bThe cursor does not change to a pointing hand as it should when screen-recording, and the display name of the app is also shown on hover:<img width="255" alt="image" src="https://github.com/user-attachments/assets/95c1f06b-b14a-457c-85a6-5a514b017def" />As per the linked issue, this only shows the first five apps. If there's less than 5 apps, they won't be centered (I think this looks a bit better):<img width="325" alt="image" src="https://github.com/user-attachments/assets/348c1b46-f8d5-4a32-8ba6-eb03d8125344" />Later designs will likely include a Workspace window where all the apps can be viewed, and potentially reordered to control what is shown on the tray.EDIT: Web apps have been filtered out of the above examples, as we don't currently have a way to determine whether they will work properly via Coder Connect.
feat: add progress messages when creating sync sessions (#139)
This loading might take a minute on a poor connection, and there's currently no feedback indicating what's going on, so we can display the prompt messages in the meantime.i.e. setting up a workspace with a fair bit of latency:https://github.com/user-attachments/assets/4321fbf7-8be6-4d4b-aead-0581c609d668This PR also contains a small refactor for the `Agent` `primaryHost`, removing all the subsequent nil checks as we know it exists on creation.
Commits on May 7, 2025
Commits on May 8, 2025
fix(pkgbuild): dont start coder connect after upgrade (#150)
As part of my work on#121 and trying to reproduce the behaviour in a VM, I discovered the issue consistently occurs if the VPN is running when the app is launched (as the network extension is replaced on upgrade).The existing pkgbuild scripts don't account for the VPN running with the app closed. In this scenario the `preinstall` script creates a marker file saying the VPN should be started in the `postinstall`. A marker file saying the app is running is not created. Then, in the `postinstall` the VPN is started, but not the app. When the user does launch the app, the network extension is upgraded whilst the VPN is running, and the linked issue occurs.It's not possible to write a bash script that waits for not only the app to launch, but for the network extension replacement request to be sent and handled.However, we already do this in Swift code. If `Start Coder Connect on launch` is toggled on, the VPN won't be started until it is absolutely safe to do so.<img width="604" alt="image" src="https://github.com/user-attachments/assets/010446b6-be33-47f0-9e59-4131f89d46a0" />Therefore, we'll remove the portion of the pkgbuild scripts responsible for turning the VPN on after upgrade. If users want this behaviour, they can just toggle it on in settings.
chore: dont stop coder connect on device sleep (#151)
Closes#88.Withcoder/internal#563 resolved, there's no need to stop the VPN on sleep, as when the device wakes the tunnel will have the correct workspace & agent state.However, if the Coder deployment doesn't include the patch incoder/coder#17598 (presumably v2.23 or later), the UI state will go out of sync when the device is slept or internet connection is lost. I think this is fine honestly, and I don't think it's worth doing a server version check to determine whether we should stop the VPN on sleep.
feat: show an alert when the menu bar icon is hidden (#153)
Relates to#148.If the menu bar icon is hidden (such as when behind the notch, or otherwise), reopening the app will display an alert that the icon is hidden.There's also a button to not show the alert again.I've also tested that this, and the 'Do not show again' button, work in a fresh VM.This is the same as what Tailscale does:https://github.com/user-attachments/assets/dae6d9ed-eab2-404f-8522-314042bdd1d8
Commits on May 9, 2025
fix: handle missing workspace app
display_name
(#154)also uses `code-insiders.svg` for the VS Code insiders icon.Context:coder/coder#17700
Commits on May 12, 2025
feat: send push notifications for invalid
coder
scheme URIs (#146)Relates to#96.<img width="380" alt="image" src="https://github.com/user-attachments/assets/36316e23-ba6e-40f0-ba4d-228dd9c31006" /><img width="369" alt="image" src="https://github.com/user-attachments/assets/d9ff0c21-c4c7-485a-8767-ca1772ebecbf" />I've had to replace the **app** provisioning profile for this to build.
feat: support RDP-specific deep links (#147)
Closes#96.If a `coder_app` exists on the workspace, where the URL is of the form: ```coder://dev.coder.com/v0/open/ws/<workspace>/agent/<agent>/rdp?username=administrator&password=password``` the URL will be parsed, validated, and an alert opened. If `Open` is clicked on the alert, the password will be written to the clipboard, where it can be pasted when prompted.https://github.com/user-attachments/assets/da8410c7-d656-4bf7-936a-8d465953e195We're unable to avoid the entering of the password, as the `password` field in an `.rdp` file, even if encrypted properly, is ignored by the macOS Windows RDP app.The app supports reading credentials from the macOS keychain, and whilst we could create keychain entries, they have to be associated with an RDP config in the app, and there's no way to automate the creation of that config, and then run that config.Further reading:https://stackoverflow.com/questions/48713606/how-to-create-rdp-file-on-mac-os-that-allows-auto-loginhttps://techcommunity.microsoft.com/discussions/azurevirtualdesktopforum/macos-remote-desktop-client-app---automatic-logon-no-credential-prompt/2596451The above demo was done by adding this app to the template:```resource "coder_app" "connectrdp" { agent_id = coder_agent.main.id slug = "connectrdp" display_name = "Coder Connect RDP" url = "coder://dev.coder.com/v0/open/ws/${data.coder_workspace.me.name}/agent/main/rdp?username=Administrator&password=coderRDP!" icon = "/icon/terminal.svg" external = true}```
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:git diff v0.3.0...v0.4.0
Uh oh!
There was an error while loading.Please reload this page.