Feat/automatic update installation
Summary
This is a feature request (#4322) to have goose auto-download and install updates when available. This change adds that functionality.
Type of Change
- [x] Feature
- [ ] Bug fix
- [ ] Refactor / Code quality
- [ ] Performance improvement
- [ ] Documentation
- [ ] Tests
- [ ] Security fix
- [ ] Build / Release
- [ ] Other (specify below)
Testing
Manual testing of the actual build. I added console.log statements and followed the follwing steps
- Build the app. cd ui/desktop / npm run package / npm run make
- Open the executable file and saw updates auto-downloaded to download folder
- confirmed the right releases was auto-downloaded (tested on Mac only)
Note: because these builds are unsigned, i wasn't able to test the auto-install part. I believe that should work as well.
Related Issues
Relates to #ISSUE_ID
Discussion: LINK (if any)
#4322
Screenshots/Demos (for UX changes)
Before:
After:
|
|
|
|
Email:
Thank you for your contribution! Let me add the tags, and tag teammates for review.
@DOsinga @alexhancock @michaelneale @jamadeo @zanesq @angelahning
As we are in the weekend in AU and in the states, expect a review come Monday, ET! @AdemolaAri
Thanks @AdemolaAri! I tested locally and it seems to download the update but it didn't actually install it after restart does it work for you?
Also a few minor things with the experience:
- This existed already but the tray icon has a dot that an update is available but when clicking it just opens settings, can you fix that so it opens the app tab in settings?
- The prompt after downloading still shows the text to the user to extract the file and move to Applications. After clicking this it open downloads it closes the app. Can we improve this experience a bit?
@zanesq , auto-install did not work for me on mac. from my findings, it seems Mac does not allow auto-install of unsigned app which is what builds locally. to really test auto-install, we'll need a signed app - which I believe only the app owners can do. chatGPT breakdown and references to this (https://chatgpt.com/share/690015a1-9500-800a-96a9-830079e13087)
I'll work on those other items.
.bundle
ok thanks looking into how we can test a signed version of this.. also if you want to look at https://github.com/block/goose/issues/5424 while you are at it
quick heads up timing wise! @zanesq - Hacktoberfest has a deadline where all PRs need to be merged by October 31st (Friday). To make sure contributor PRs like this one hit that deadline on time, aiming to have these PRs reviewed and approved (if we're able) by EOD tomorrow (October 30th)! Let me know if you think it's possible for this one 🙏 and thank you for working on this, @AdemolaAri !
Not sure if this will make it unfortunately since there are still changes requested and we need to test in an actual signed release. I'll try to get a signed release tested with the current changes so we can rule that out at least.
after the requested changes are made and approved if this doesn't break anything we can merge to main to test on a signed build and revert if needed
@taniandjerry , I'm sorry I've not been able to work on the other things I need for this - I do not have access to my computer until this Friday. It's fine if this doesn't count towards HacktoberFest. I plan to get the updates on this PR out sometime this weekend
@taniandjerry , I'm sorry I've not been able to work on the other things I need for this - I do not have access to my computer until this Friday. It's fine if this doesn't count towards HacktoberFest. I plan to get the updates on this PR out sometime this weekend
That is amazing. Since your submission would likely pass beyond hacktoberfest, but you've been working on this feature with @zanesq that will make an impact on users for goose, I'll definitely be sure we are able to reward you in some way for still working on this. 🤗 ❤️ looking forward to getting this across the finish line!
@michaelneale made a signed build to test from this branch but I get the following error message Update Available but no download URL found for platform: darwin, arch: arm64 does that happen for you?
@michaelneale made a signed build to test from this branch but I get the following error message
Update Available but no download URL found for platform: darwin, arch: arm64does that happen for you?![]()
@zanesq interesting. I believe you're hitting this code block, I added https://github.com/block/goose/pull/5345/files#r2457676532 . I encountered this when the app detects that there's a new version available, but when the code scans the release version repository it couldn't find a build for that assetName. Yeah, I thought I resolved it by making the assetName search case insensitive but might need some cleanups there
not latest version its 1.11.0 in the screenshot and latest is 1.12.1
@zanesq , Now when you click the Update Available button, it navigates to the correct section of Setting page.
Also, fixed Update Available but no download URL found for platform: darwin, arch: arm64, this is a Goose vs goose text issue. i had normalized the values during comparison but missed one .lowercase() addition.
Please review and let me know :)
Thanks tested latest signed build from this branch and the download did work but the progress bar was jumpy until it finally downloaded (see below for recording)
https://github.com/user-attachments/assets/8c3d6ca8-7e78-4bf4-aae5-64f19c616925
It didn't do the auto install but did open the downloads directory with the download.
Since its downloading now I think we can merge this after fixing the jumpy progress bar if you want to take a look at that then we can come back to the auto install in another PR later.
Thanks tested latest signed build from this branch and the download did work but the progress bar was jumpy until it finally downloaded (see below for recording)
Kapture.2025-11-10.at.16.41.58.mp4 It didn't do the auto install but did open the downloads directory with the download.
Since its downloading now I think we can merge this after fixing the jumpy progress bar if you want to take a look at that then we can come back to the auto install in another PR later.
oh yeah, turns out i already worked on a fix for that but holding off on pushing it. If all looks good, we can get this merged and revisit auto install.
Still jumpy for me, also it seems to kick it off twice after it finishes it tries again to download at the end. Please verify it works on your end in the app. One more thing since auto install isn't working we should change that language to not say it will be auto installed after restart before we merge.
https://github.com/user-attachments/assets/4b8616cc-406f-4e66-b694-177e8c3a63ee
@zanesq i'm back at this. sorry i was away for a few weeks.
Jumpy download bar should be fixed now.
https://github.com/user-attachments/assets/008f0bdf-dd63-48b4-bdf5-0a41001a8d65
And I added the appropriate wording around auto-downloading but not auto-installing. I also added an 'open downloads and quit' action in the dialog to take users to the download folder and auto-quit the app removing one manual step at least.
https://github.com/user-attachments/assets/7f657666-2610-45b4-97fe-39e672a1df23
It does seem like auto-install works when the download is done thru the native electron path. The github fallback path seem to not be able to do auto-install for some reason. (I'm limited by not being able to do/test a signed build so just going by the code logic)
Pls test again and let me know how it goes.