Sin guard `concurrency:` múltiples dispatches del repo del tenant corrían
helm upgrade en paralelo sobre el mismo release → 'another operation in
progress' → release trabado en pending-install → primer deploy nunca completa
(vivido E2E 2026-06-10, tenant 9e6babb0). Causa raíz del first-deploy flaky
(runs 3418/3419).
- concurrency workflow-level (group por repo, cancel-in-progress:false: encola,
no cancela — cancelar a mitad de helm install es lo que CREA el pending-install)
- step de recuperación: detecta pending-install/uninstalling→uninstall,
pending-upgrade/pending-rollback→rollback, antes del helm upgrade. Fail-safe:
solo toca estados pending-*, no toca deployed/failed/inexistente.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>