diff --git a/releases/app-catalog.json b/releases/app-catalog.json index f5347a69..e118fcd7 100644 --- a/releases/app-catalog.json +++ b/releases/app-catalog.json @@ -568,9 +568,13 @@ }, "versions": [ { - "version": "29.3.knots20260508", - "image": "146.59.87.168:3000/lfg2025/bitcoin-knots:29.3.knots20260508", + "version": "latest", + "image": "146.59.87.168:3000/lfg2025/bitcoin-knots:latest", "default": true + }, + { + "version": "29.3.knots20260508", + "image": "146.59.87.168:3000/lfg2025/bitcoin-knots:29.3.knots20260508" } ] }, diff --git a/scripts/generate-app-catalog.sh b/scripts/generate-app-catalog.sh index ea8967e1..a519b1fe 100755 --- a/scripts/generate-app-catalog.sh +++ b/scripts/generate-app-catalog.sh @@ -191,11 +191,16 @@ VERSIONS = { {"version": "25.2", "image": f"{REGISTRY}/bitcoin:25.2", "deprecated": True}, ], # Knots: a real tagged build is now published, so it's selectable + pinnable - # in the Knots app interface (the floating :latest remains the manifest - # default; pinning here moves a runner off the floating tag). + # in the Knots app interface. `latest` is the default (== the manifest's + # floating tag) so selecting it un-pins / tracks latest — this MUST match the + # top-level catalog version (L167-168) or the card can't reach "latest" and + # selecting the highlighted default would instead pin+recreate. Pinning + # 29.3.knots20260508 moves a runner off the floating tag. "bitcoin-knots": [ + {"version": "latest", + "image": f"{REGISTRY}/bitcoin-knots:latest", "default": True}, {"version": "29.3.knots20260508", - "image": f"{REGISTRY}/bitcoin-knots:29.3.knots20260508", "default": True}, + "image": f"{REGISTRY}/bitcoin-knots:29.3.knots20260508"}, ], } for app_id, versions in VERSIONS.items():