feat: Inform user if cli is outdated#81
Conversation
|
3 second timeout is ok. It's only a courtesy check and not critical. The check could run on a background thread so there is no delay before patching starts, but that will cause the console log "cli is outdated" message to appear in a non-deterministic ordering. Sometimes it will be the first line, sometimes mixed in with other patcher log statements. I think how it is now (blocks to check if outdated) is ok because in normal conditions the check will be a fraction of a second. |
# [1.6.0-dev.6](v1.6.0-dev.5...v1.6.0-dev.6) (2026-03-20) ### Features * Inform user if cli is outdated ([#81](#81)) ([5bcd4f7](5bcd4f7))
|
Is this only update CLI to latest release? How if user using Pre-release? |
|
Hmm, yeah this could use an adjustment to check pre-release versus stable. Instead of using github api, can use github raw link to build property. This also avoid problems of non-auth github api refusing connections from some ip blocks. Change to make: If |
|
Sure thing, do I push updates to this PR itself? Will update the github api with these raw links instead. One small edge case: What if the latest version is the stable release, then it would never check for the dev release that happen after it right? |
|
Can make a new PR with the changes. Old merged PR's can't be reopened. After dev merges to main, the dev branch is reset to main. So it will show a non dev release in that property file. So it still shows the latest release even if it's not a pre-release anymore. |
|
FYI I got a report about the update check not working properly when on dev releases
|
|
Changing to GitHub raw links will fix that. |
I meant: |
|
There is no user data or anything that moves across from dev to stable update, so it can't easily remember it started at dev. Either we tell them there is a new stable release and they can decide to change to it from dev, or if CLI is on dev and the latest is stable then the update check ignores the stable release and it will show an update again when a new dev is available. I'm not sure which is the better approach. |
|
Maybe we could warn the user when they are about to leave dev for stable? Something like: |
|
That works. They user should know there is a new non-dev release and they can decide if they want to change to stable |
# [1.6.0](v1.5.0...v1.6.0) (2026-03-22) ### Bug Fixes * Bump arsclib version, remove APKEditor ([412847e](412847e)) * Dispatch error when launching app ([#79](#79)) ([989e72a](989e72a)) * Update to latest patcher dev ([496d8e9](496d8e9)) * Update to latest patcher dev ([1356259](1356259)) * Update to latest patcher dev ([fb8a4ff](fb8a4ff)) * Update to latest patcher dev ([1551c8e](1551c8e)) * Update to Patcher 1.3.0 ([19c0846](19c0846)) * Use GitHub raw links for CLI update check ([#87](#87)) ([2aa6263](2aa6263)) * Use more logging verbosity when updating options.json ([#72](#72)) ([4d223f2](4d223f2)) ### Features * Add desktop GUI ([#42](#42)) ([cd627e6](cd627e6)) * Inform user if cli is outdated ([#81](#81)) ([5bcd4f7](5bcd4f7))
# [1.4.0-dev.1](v1.3.0...v1.4.0-dev.1) (2026-03-24) ### Bug Fixes * Bump arsclib version, remove APKEditor ([7db96f0](7db96f0)) * Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([5a18f49](5a18f49)) * Update to latest patcher dev ([0e0ccf0](0e0ccf0)) * Update to latest patcher dev ([df1b416](df1b416)) * Update to latest patcher dev ([0d6d9d8](0d6d9d8)) * Update to latest patcher dev ([e2bd02e](e2bd02e)) * Update to Patcher 1.3.0 ([42a0042](42a0042)) * Update to Patcher 1.3.1 ([a808bf1](a808bf1)) * Update to Patcher 1.3.2 ([d935ad9](d935ad9)) * Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([afd0cc3](afd0cc3)) * Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([bb00a53](bb00a53)) ### Features * Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([4e33491](4e33491)) * Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([093e068](093e068))
# [1.4.0](v1.3.0...v1.4.0) (2026-03-24) ### Bug Fixes * Bump arsclib version, remove APKEditor ([7db96f0](7db96f0)) * Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([5a18f49](5a18f49)) * Update to latest patcher dev ([0e0ccf0](0e0ccf0)) * Update to latest patcher dev ([df1b416](df1b416)) * Update to latest patcher dev ([0d6d9d8](0d6d9d8)) * Update to latest patcher dev ([e2bd02e](e2bd02e)) * Update to Patcher 1.3.0 ([42a0042](42a0042)) * Update to Patcher 1.3.1 ([a808bf1](a808bf1)) * Update to Patcher 1.3.2 ([d935ad9](d935ad9)) * Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([afd0cc3](afd0cc3)) * Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([bb00a53](bb00a53)) ### Features * Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([4e33491](4e33491)) * Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([093e068](093e068))
Check the user's version with the latest stable version to see if the user's version is outdated. Currently it only runs with the patch subcommand and the network connection has a 3 sec TTL. Any errors are silently thrown and the patching continues. Do we reduce the TTL or is this fine?
It is running on the main thread itself, but it'll block it max for 3 seconds. In case there are any issues with this implementation, please let me know. I'll make the changes