Conversation
Add a self-update module that checks GitHub Releases for newer versions,
downloads the platform-appropriate binary, and replaces the running
executable in-place. In-place replacement at the same path preserves
macOS TCC grants (Accessibility, Input Monitoring, Microphone).
Components:
- murmur-core/src/update.rs: core update logic (check, download, replace)
- Queries GitHub Releases API for latest version
- Compares semver to determine if update is available
- Downloads platform artifact (darwin-arm64, darwin-x86_64, linux-x86_64,
windows-x86_64)
- Extracts archive and atomically replaces the binary
- Re-signs with codesign on macOS
- CLI: `murmur update` checks and installs; `murmur update --check` checks only
- Config: `auto_update: bool` (default false) for opt-in auto-updates
- Startup: background thread checks for updates on launch
- If auto_update enabled, downloads and applies automatically
- Otherwise notifies via tray menu
- Tray: "Check for Updates..." menu item, shows available version when found
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a self-update module that checks GitHub Releases for newer versions, downloads the platform-appropriate binary, and replaces the running executable in-place.
In-place replacement at the same path preserves macOS TCC grants (Accessibility, Input Monitoring, Microphone).
Changes
Core update module (
murmur-core/src/update.rs)darwin-arm64,darwin-x86_64,linux-x86_64,windows-x86_64)codesignon macOS to preserve TCC grantsCLI subcommand
murmur update— check for updates and installmurmur update --check— check only, don't installConfig
auto_update: bool(default:false) — opt-in automatic updates on startupBackground startup check
auto_updateis enabled, downloads and applies automaticallyTray menu
Testing