fix(bitcoin): knots catalog default must equal top-level version

The knots versions[] marked 29.3.knots20260508 as default while the
top-level catalog version is the floating 'latest' tag — violating the
generator's own invariant (default:true MUST equal the top-level version
so selecting it un-pins / tracks latest). Live effect via package.versions:
catalog_default_version='latest' so the UI-highlighted default actually
PINS+recreates (opposite of un-pin) and 'latest' was unreachable from the
Version & Updates card.

Add a 'latest' default entry (== the manifest's floating tag) and keep
29.3.knots20260508 as a pinnable option. Verified on .228: package.versions
now returns default=latest with 2 selectable versions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-06-28 19:56:49 -04:00
parent da20f67462
commit 169ff2e2cd
2 changed files with 14 additions and 5 deletions

View File

@ -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"
}
]
},

View File

@ -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():