Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also orlearn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also.Learn more about diff comparisons here.
base repository:coder/coder-desktop-macos
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base:314edbe
Choose a base ref
Loading
...
head repository:coder/coder-desktop-macos
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare:170b399
Choose a head ref
Loading
  • 19commits
  • 51files changed
  • 2contributors

Commits on May 14, 2025

  1. chore: set 'stop VPN on quit' setting to true by default (#155)

    It's fair to assume if you're closing Coder Desktop, you want Coder Connect to stop, so this is the default behaviour.Tailscale also stops their VPN when quitting the app, even though it works fine with the app closed.
    @ethanndickson
    ethanndickson authoredMay 14, 2025
    Configuration menu
    Copy the full SHA
    37d7e35View commit details
    Browse the repository at this point in the history

Commits on May 16, 2025

  1. fix: manually upgrade system extension (#158)

    This PR addresses#121. The underlying bug is still present in macOS, this is just a workaround, so I'm leaving the issue open.macOS calls `actionForReplacingExtension` whenever the version string(s) of the system extension living inside the Coder Desktop app bundle change.i.e. When a new version of the app is installed:1. App sends `activationRequest` (it does this on every launch, to see if the NE is installed)2. Eventually, `actionForReplacingExtension` is called, which can either return `.cancel` or `.replace`.3. Eventually,`didFinishWithResult` is called with whether the replacement was successful.(`actionForReplacingExtension` is *always* called when developing the app locally, even if the version string(s) don't differ)However, in the linked issue, we note that this replacement process is bug-prone. This bug can be worked around by deleting the system extension (in settings), and reactivating it (such as by relaunching the app).Therefore, in this PR, when `didFinishWithResult` is called following a replacement request, we instead will:1. Send a `deactivationRequest`, and wait for it to be successful.2. Send another `activationRequest`, and wait for that to be successful.Of note is that we *cannot* return `.cancel` from `actionForReplacingExtension` and then later send a `deactivationRequest`. `deactivationRequest` *always* searches for a system extension with version string(s) that match the system extension living inside the currently installed app bundle. Therefore, we have to let the replacement take place before attempting to delete it.Also of note is that a successful `deactivationRequest` of the system extension deletes the corresponding VPN configuration. This configuration is normally created by logging in, but if the user is already logged in, we'll update the UI to include a `Reconfigure VPN` button.<img width="263" alt="image" src="https://github.com/user-attachments/assets/d874821e-1696-4d17-bb3e-4ea83556f75c" />I've tested this PR in a fresh macOS 15.4 VM, upgrading from the latest release. I also forced the bug in the linked issue to occur by toggling on the VPN in System Settings before opening the new version of the app for the first time, and going through all the additional prompts did indeed prevent the issue from happening.
    @ethanndickson
    ethanndickson authoredMay 16, 2025
    Configuration menu
    Copy the full SHA
    05e41b7View commit details
    Browse the repository at this point in the history
  2. fix: set network extension as unconfigured when system extension is d…

    …eleted (#162)This fixes a bug when `Launch Coder Connect at startup` is enabled when updating the app with#161, where the app attempts to start too early, as it thinks the VPN is configured, but it was unconfigured with the deletion of the system extension.
    @ethanndickson
    ethanndickson authoredMay 16, 2025
    Configuration menu
    Copy the full SHA
    9f356e5View commit details
    Browse the repository at this point in the history

Commits on May 19, 2025

  1. feat: add experimental privileged helper (#160)

    Closes#135.Closes#142.This PR adds an optional privileged `LaunchDaemon` capable of removing the quarantine flag on a downloaded `.dylib` without prompting the user to enter their password. This is most useful when the Coder deployment updates frequently.<img width="597" alt="image" src="https://github.com/user-attachments/assets/5f51b9a3-93ba-46b7-baa3-37c8bd817733" />The System Extension communicates directly with the `LaunchDaemon`, meaning a new `.dylib` can be downloaded and executed even if the app was closed, which was previously not possible. I've tested this in a fresh 15.4 VM.
    @ethanndickson
    ethanndickson authoredMay 19, 2025
    Configuration menu
    Copy the full SHA
    48afa7aView commit details
    Browse the repository at this point in the history

Commits on May 22, 2025

  1. Configuration menu
    Copy the full SHA
    2adace3View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    117d8fdView commit details
    Browse the repository at this point in the history

Commits on May 23, 2025

  1. ci: sign builds for distribution via sparkle (#165)

    First PR for#47.To test the later components, we need a release build and a preview build signed with this key. So, this needs to be merged first.I've tested the release script with a dry-run, and validated the pkg passes `sparkle/sign_update --verify`, and that the app still works in a VM (specifically checking that signing it didn't invalidate the notarization, but I don't think signing it modifies it's contents, it just checks the signature matches the embedded public key)
    @ethanndickson
    ethanndickson authoredMay 23, 2025
    Configuration menu
    Copy the full SHA
    29c4f41View commit details
    Browse the repository at this point in the history

Commits on May 27, 2025

  1. fix: don't create http client if signed out (#166)

    If the session item in the keychain is missing but `hasSession` is true, the app will force unwrap the session token optional and crash on launch. Encountered this today.
    @ethanndickson
    ethanndickson authoredMay 27, 2025
    Configuration menu
    Copy the full SHA
    b2da490View commit details
    Browse the repository at this point in the history

Commits on May 28, 2025

  1. fix: conform CFBundleVersion to documentation (#167)

    Second PR for#47.Previously, we were setting [`CFBundleVersion`](https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion) to the output of `git describe --tags` (`vX.Y.Z` or  `vX.Y.Z-N-gHASH` for preview builds).To support Sparkle, and potentially to avoid a breakage with macOS failing to update an installed `LaunchDaemon` when it can't parse `CFBundleVersion`, we'll conform the string to the specification.Given that:> You can include more integers but the system ignores them.We set `CFBundleVersion` to a value of the form `X.Y.Z[.N]` where N is the number of commits since the `X.Y.Z` tag (omitted if 0)Sparkle did previously allow you to supply a manual version comparator, but it was deprecated to help require `CFBundleVersion` start with `X.Y.Z`sparkle-project/Sparkle#2585That issue recommends instead putting marketing version information in `CFBundleShortVersionString`, but that actually has even stricter requirements:https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleshortversionstringThough not documented, from testing & reading the [Sparkle source](https://github.com/sparkle-project/Sparkle/blob/2.x/Sparkle/SUStandardVersionComparator.m), I discovered that `X.Y.Z.N+1` will be deemed a later version than `X.Y.Z.N`, which is what we'll do for the preview stream of auto-updates. For non-preview builds (i.e. builds on a tag), both version strings will be `X.Y.Z`.Since we're no longer including the commit hash in a version string, we instead embed it separately in the `Info.plist` so we can continue to display it in the UI:<img width="284" alt="image" src="https://github.com/user-attachments/assets/a9b2359d-6e2f-4f7d-979c-ba69ee01e69c" />
    @ethanndickson
    ethanndickson authoredMay 28, 2025
    Configuration menu
    Copy the full SHA
    7af0cdcView commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5785faeView commit details
    Browse the repository at this point in the history

Commits on May 29, 2025

  1. feat: make on-upgrade steps more obvious (#172)

    Before:<img width="254" alt="image" src="https://github.com/user-attachments/assets/1460ea58-c915-4c72-85c4-0655030cb99f" />After:<img width="260" alt="Screenshot 2025-05-29 at 4 41 05 pm" src="https://github.com/user-attachments/assets/34fe0293-ccc4-4686-9285-eb7482d7a10e" /> <img width="258" alt="Screenshot 2025-05-29 at 4 40 56 pm" src="https://github.com/user-attachments/assets/2bd640eb-5d11-4384-8a24-b705148c2b2a" />
    @ethanndickson
    ethanndickson authoredMay 29, 2025
    Configuration menu
    Copy the full SHA
    65f4619View commit details
    Browse the repository at this point in the history

Commits on May 30, 2025

  1. ci: addupdate-appcastscript (#171)

    Third PR for#47.Adds a script to update an existing `appcast.xml`.This will be called in CI to update the appcast before uploading it back to our feed URL (`releases.coder.com/...`). It's currently not used anywhere.Invoked like:```swift run update-appcast -i appcast.xml -s CoderDesktop.pkg.sig -v 0.5.1 -o appcast.xml -d ${{ github.event.release.body }}```To update an appcast that looks like:<details><summary>appcast.xml</summary>```xml<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">    <channel>        <title>Coder Desktop</title>        <item>            <title>v0.5.1</title>            <description><![CDATA[<h2>What's Changed</h2><ul><li>fix: don't create http client if signed out by@ethanndickson in <a href="https://github.com/coder/coder-deskt%E2%80%A6r-desktop-macos/pull/170">https://github.com/coder/coder-deskt…r-desktop-macos/pull/170</a></li></ul><p><strong>Full Changelog</strong>: <a href="https://github.com/coder/coder-desktop-macos/compare/v0.5.0...v0.5.1">https://github.com/coder/coder-desktop-macos/compare/v0.5.0...v0.5.1</a></p>]]></description>            <pubDate>Thu, 29 May 2025 06:08:56 +0000</pubDate>            <sparkle:channel>stable</sparkle:channel>            <sparkle:version>0.5.1</sparkle:version>            <sparkle:fullReleaseNotesLink>https://github.com/coder/coder-desktop-macos/releases</sparkle:fullReleaseNotesLink>            <sparkle:minimumSystemVersion>14.0.0</sparkle:minimumSystemVersion>            <enclosure url="https://github.com/coder/coder-desktop-macos/releases/download/v0.5.1/Coder-Desktop.pkg" type="application/octet-stream" sparkle:installationType="package" sparkle:edSignature="NkyCj7Lzpw95P0N95SQHiBCjDLZYVukbRR3aOjGZAuL5Dc+I//DfTCRFCxoQNhA38uu/CCAR8v9E4SgMkDdmAA==" length="39630183"></enclosure>        </item>        <item>            <title>Preview</title>            <pubDate>Thu, 29 May 2025 06:08:08 +0000</pubDate>            <sparkle:channel>preview</sparkle:channel>            <sparkle:version>0.5.0.3</sparkle:version>            <sparkle:fullReleaseNotesLink>https://github.com/coder/coder-desktop-macos/releases</sparkle:fullReleaseNotesLink>            <sparkle:minimumSystemVersion>14.0.0</sparkle:minimumSystemVersion>            <enclosure url="https://github.com/coder/coder-desktop-macos/releases/download/preview/Coder-Desktop.pkg" type="application/octet-stream" sparkle:installationType="package" sparkle:edSignature="L0cFeyoy+D/Zgm3eXok87SKmgIUka8m2b+g7UWPReF4UhFUb4RlDsZ5PxXKd5MrtsaODGUz2iRMWraO7aQg+DA==" length="39630898"></enclosure>        </item>    </channel></rss>```</details>Producing a notification like:<img width="620" alt="image" src="https://github.com/user-attachments/assets/acae89d6-5d39-4464-bf60-7beac66af9c7" />
    @ethanndickson
    ethanndickson authoredMay 30, 2025
    Configuration menu
    Copy the full SHA
    96da5aeView commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2025

  1. ci: remove cache-nix-action (#175)

    It's twice as fast without the cacheWith cache:<img width="296" alt="image" src="https://github.com/user-attachments/assets/865bfbaf-774d-4213-ba99-b338dbef13dd" />Without:<img width="296" alt="image" src="https://github.com/user-attachments/assets/e55be0dd-bd4e-472f-af4c-c5d06f7ef7ad" />I can only assume it's just faster to compile some of the dependencies then to copy them from the cache
    @ethanndickson
    ethanndickson authoredJun 2, 2025
    Configuration menu
    Copy the full SHA
    46074e2View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3c72ff4View commit details
    Browse the repository at this point in the history
  3. feat: add auto-updates (#176)

    Closes#47.Stable:<img width="615" alt="image" src="https://github.com/user-attachments/assets/e34c8138-dac7-48ab-af76-0feea79c9f7e" />Preview:<img width="614" alt="image" src="https://github.com/user-attachments/assets/caeb2750-b735-473d-8568-e8f1098954d0" />Additionally:- Removes the updating of the `coder-desktop-preview` cask. - Marks the `coder-desktop` cask as auto-updating, so brew doesn't attempt to `upgrade` itself.I'll also need to make a PR on the `homebrew-coder` repo to mark it as deprecated in brew. If a user wishes to be on the preview channel, they just need to install the stable version, and switch to the preview channel in settings.
    @ethanndickson
    ethanndickson authoredJun 2, 2025
    Configuration menu
    Copy the full SHA
    aeb1e68View commit details
    Browse the repository at this point in the history
  4. ci: fix homebrew out format (#177)

    For some reason this line needs to be in the same stanza as conflicts_on. This passes the homebrew CI.
    @ethanndickson
    ethanndickson authoredJun 2, 2025
    Configuration menu
    Copy the full SHA
    e25c61dView commit details
    Browse the repository at this point in the history
  5. ci: bump google-github-actions/auth from 2.1.8 to 2.1.10 in the githu…

    …b-actions group (#178)Signed-off-by: dependabot[bot] <support@github.com>Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    @dependabot
    dependabot[bot] authoredJun 2, 2025
    Configuration menu
    Copy the full SHA
    681d448View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2025

  1. ci: set preview build description to commit message (#180)

    Just lets you see what changed in a preview build at a glance.
    @ethanndickson
    ethanndickson authoredJun 3, 2025
    Configuration menu
    Copy the full SHA
    71c5d4cView commit details
    Browse the repository at this point in the history
  2. fix: disable unattended updates (#179)

    There's no point allowing users to enable unattended updates, as the installer requires a password prompt, as does the app the first time it's launched after updating -- it would be more annoying than useful.All this does is remove the checkbox on the update prompt:Before:<img width="1020" alt="image" src="https://github.com/user-attachments/assets/7bed4a05-cf6e-4de4-9f08-e5a05c4ceac5" />After:<img width="620" alt="image" src="https://github.com/user-attachments/assets/a1375eb2-0cd5-4e35-93d1-52275132fc1b" />Automatic update *checks* can still be enabled in settings.
    @ethanndickson
    ethanndickson authoredJun 3, 2025
    Configuration menu
    Copy the full SHA
    170b399View commit details
    Browse the repository at this point in the history
Loading

[8]ページ先頭

©2009-2025 Movatter.jp