Use v(\d+\.\d+(?:\.\d+)?) instead of v(.*) to only match real version numbers (v0.29, v0.29.1), not arbitrary strings. Keep latest unconditional since all tag pushes are releases. Based on review of PR #52 approach vs #53. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>