feat: add update notifications and one-click updates - #148
Conversation
|
Awesome! I think we are getting close with this PR. I have a bit more feedback from my agent's review here:
|
|
Addressed both 👍
The staging change also made us treat the asset name from the release metadata as untrusted, since it ends up as a path on disk. Names that aren't plain file names are now rejected before any filesystem operation. GitHub normalizes asset names on upload so this shouldn't ever trigger for a real release, the updater just no longer depends on it. |
|
Great work! Thanks for making this. |

This PR adds update notifications and in-place updates, using GH releases as the source of truth.
This PR:
~/.codiff/update-state.json, shared by the app and the CLIcodiff updateto the CLI, which upgrades through Homebrew when the cask owns the install, opens the app to update itself otherwise, and points at the release page for source checkoutscodiff --versionwhen a newer version is cached, implemented in the Node CLI and mirrored in the POSIX sh wrapper with the same version comparison and state validation so a broken or stale state file stays silentScreenshots
Previous iterations
This iteration was a two-click update, which after some thought it felt like it can be simplified to match modern tools like VSCode and Codex, an update is just a single-click and self-explanatory. So I decided to match it.Used Fable 5 xhigh with 20 iterations of review with Sol 5.6 xhigh.