From ca747be35f2f3ca49a636c0af7b32d15968c0aaa Mon Sep 17 00:00:00 2001 From: MickLesk <47820557+MickLesk@users.noreply.github.com> Date: Fri, 9 Oct 2026 21:20:06 +0200 Subject: [PATCH] Check against the release the maintainer marked as latest The deploy path has taken /releases/latest since #55, the check still sorted the list. A repo that does not flag its betas as prereleases then offered the beta with the higher number, and the deploy answered "already installed" with the stable release: FileBrowser Quantum reported 2.1.0-beta on every run and the addon failed after the skipped download, AudioMuse offered v5.0.0-model. Pins, tag prefixes and the prerelease opt-in still read the list. --- lib/forge.func | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/forge.func b/lib/forge.func index dfe1659..da4f8d5 100644 --- a/lib/forge.func +++ b/lib/forge.func @@ -1656,6 +1656,14 @@ check_for_release() { fi fi + # The deploy path takes the release the maintainer marked as latest. Sorting + # the list here instead offered unflagged betas with higher numbers, which the + # deploy then refused as "already installed" on every run. + if [[ -z "$releases_json" && -z "$pinned_version_in" && -z "$tag_prefix" && "${GH_INCLUDE_PRERELEASE:-0}" != "1" ]] && + _forge_designated_release "$forge" "$base" "$repo_path" "$json_file"; then + releases_json="[$(<"$json_file")]" + fi + if [[ -z "$releases_json" ]]; then local list list="$(_forge_descriptor "$forge" list)"