All checks were successful
continuous-integration/drone/push Build is passing
A once-failed promote left swarm secrets (e.g. drone's gitea client_secret_v1) behind; the retry's install_steps 'abra app secret insert' then FATAd 'already exists', so a recipe could never recover its canonical. promote_canonical now teardown_app()s the warm domain when there is NO existing canonical (fresh seed) — clearing leftover secrets/.env/partial volumes — while a re-promote (canonical exists) still reattaches its retained known-good volume untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>