All checks were successful
continuous-integration/drone/push Build is passing
Closes the head_version-vs-latest_version divergence: should_promote gates on head_version (code under test) but promote_canonical recorded latest_version(recipe_tags). In a manual RECIPE=<r> run whose main checkout sits on a tag OLDER than the newest published tag, the gate would pass on the older tag yet promote the newer (never-tested) one. promote_canonical now takes the tested `version` (head_version, guaranteed a release tag by the tagged-gate) and records exactly that. Sweep path unaffected (head==tag by construction). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>