diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 450e402..1b1e1fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -501,7 +501,7 @@ jobs: run: | cat > version.json << EOF { - "version": "${{ steps.version.outputs.VERSION_NUM }}", + "latest_version": "${{ steps.version.outputs.VERSION_NUM }}", "releaseDate": "${{ steps.version.outputs.BUILD_DATE_ISO }}", "patch": ${{ steps.version.outputs.PATCH_NUMBER }}, "releaseName": "", diff --git a/.github/workflows/update-version-json.yml b/.github/workflows/update-version-json.yml index 2b14ec2..04ac8ac 100644 --- a/.github/workflows/update-version-json.yml +++ b/.github/workflows/update-version-json.yml @@ -140,7 +140,7 @@ jobs: # Generate version.json using cat and heredoc cat > version.json << EOF { - "version": "${{ steps.version.outputs.VERSION_FULL }}", + "latest_version": "${{ steps.version.outputs.VERSION_FULL }}", "releaseDate": "${{ steps.version.outputs.BUILD_DATE_ISO }}", "patch": ${{ steps.version.outputs.PATCH_NUMBER }}, "releaseName": ${{ steps.release_info.outputs.RELEASE_NAME }}, diff --git a/src/gui/render.cpp b/src/gui/render.cpp index a429131..81a172e 100644 --- a/src/gui/render.cpp +++ b/src/gui/render.cpp @@ -1748,17 +1748,29 @@ int Render::Run() { LOG_INFO("CrossDesk version: {}", CROSSDESK_VERSION); latest_version_info_ = CheckUpdate(); - if (!latest_version_info_.empty() && - latest_version_info_.contains("version") && - latest_version_info_["version"].is_string()) { - latest_version_ = 'v' + latest_version_info_["version"].get(); + if (!latest_version_info_.empty()) { + std::string version; + if (latest_version_info_.contains("latest_version") && + latest_version_info_["latest_version"].is_string()) { + version = latest_version_info_["latest_version"].get(); + } else if (latest_version_info_.contains("version") && + latest_version_info_["version"].is_string()) { + version = latest_version_info_["version"].get(); + } + + if (!version.empty()) { + latest_version_ = 'v' + version; + } else { + latest_version_ = ""; + } if (latest_version_info_.contains("releaseNotes") && latest_version_info_["releaseNotes"].is_string()) { release_notes_ = latest_version_info_["releaseNotes"].get(); } else { release_notes_ = ""; } - update_available_ = IsNewerVersion(CROSSDESK_VERSION, latest_version_); + update_available_ = + !version.empty() && IsNewerVersion(CROSSDESK_VERSION, latest_version_); LOG_INFO("Update check: current={}, latest={}, available={}", CROSSDESK_VERSION, latest_version_, update_available_); if (update_available_) { @@ -1767,7 +1779,7 @@ int Render::Run() { } else { latest_version_ = ""; update_available_ = false; - LOG_WARN("Update check skipped: version.json is empty or missing version"); + LOG_WARN("Update check skipped: version.json is empty or missing latest_version"); } InitializeSettings(); diff --git a/src/version_checker/version_checker.cpp b/src/version_checker/version_checker.cpp index 7907800..a5f8539 100644 --- a/src/version_checker/version_checker.cpp +++ b/src/version_checker/version_checker.cpp @@ -337,8 +337,9 @@ nlohmann::json CheckUpdate() { } latest_patch_ = 0; latest_patch_available_ = ReadPatchField(j, &latest_patch_); - LOG_INFO("Fetched version.json: version={}, releaseDate={}, patch={}", - j.value("version", ""), j.value("releaseDate", ""), + LOG_INFO("Fetched version.json: latest_version={}, releaseDate={}, patch={}", + j.value("latest_version", j.value("version", "")), + j.value("releaseDate", ""), latest_patch_available_ ? latest_patch_ : -1); return j; } catch (const std::exception& e) {