v2.17.32
semaphoreui/semaphorev2.17.32Apr 1, 2026by github-actions[bot]
AI Summary
This release focuses on runner reliability, security improvements, and overall stability, including smarter distribution, startup validation, and permission checks.
Key Highlights
- Smarter runner distribution with random selection for better load balancing
- Config validation at startup to prevent misconfiguration issues
- Admin permission check required for restoring projects from backup
- Fixes for Git branch names containing slashes and nil pointer crashes
New Features
- Randomize runner selection
- Config validation at startup
- Admin permission check for project restore
Full Release Notes
## Semaphore UI v2.17.32 – Release Summary This release focuses on **runner reliability, security improvements, and overall stability**, along with several bug fixes and translation updates. ### 🚀 Improvements * **Smarter runner distribution** Runners are now selected randomly, improving load balancing and avoiding uneven task distribution across runners. ### 🔐 Security & Safety * **Config validation at startup** The `access_key_encryption` setting is now validated during startup to prevent misconfiguration issues early. * **Stronger permission checks** Restoring projects from backup now requires admin permissions, improving security around sensitive operations. ### 🐛 Bug Fixes * Fixed nil pointer crash in runner updates when tasks are not part of a pool * Fixed incorrect handling of Git branch names containing slashes * Improved runner shutdown logic to ensure progress is uploaded before termination * Fixed inconsistencies in task status updates * Minor fix for a missed import ### 🌍 Localization * Improved Traditional Chinese (zh_TW) translations and consistency --- ## What's Changed * fix(i18n): improve Traditional Chinese (zh_TW) translations by @tan9 in https://github.com/semaphoreui/semaphore/pull/3701 * fix(config): validate access_key_encryption at startup by @abh in https://github.com/semaphoreui/semaphore/pull/3710 * fix(i18n): improve zh_TW translation consistency by @tan9 in https://github.com/semaphoreui/semaphore/pull/3705 * Fix branch names with slashes truncated in GetRemoteBranches by @Copilot in https://github.com/semaphoreui/semaphore/pull/3717 * Add admin permission check for project restore from backup by @JulianKap in https://github.com/semaphoreui/semaphore/pull/3695 * chore(deps): update dependency axios to v1.13.6 by @renovate[bot] in https://github.com/semaphoreui/semaphore/pull/3692 * fix: nil pointer dereference in UpdateRunner when task not in pool by @cursor[bot] in https://github.com/semaphoreui/semaphore/pull/3727 * feat: randomize runner selection by @agrrh in https://github.com/semaphoreui/semaphore/pull/3722 * fix(runners): gate one-off shutdown on acknowledged progress upload by @fiftin in https://github.com/semaphoreui/semaphore/pull/3738 * fix/status updating by @fiftin in https://github.com/semaphoreui/semaphore/pull/3737 ## New Contributors * @tan9 made their first contribution in https://github.com/semaphoreui/semaphore/pull/3701 * @abh made their first contribution in https://github.com/semaphoreui/semaphore/pull/3710 * @cursor[bot] made their first contribution in https://github.com/semaphoreui/semaphore/pull/3727 * @agrrh made their first contribution in https://github.com/semaphoreui/semaphore/pull/3722 **Full Changelog**: https://github.com/semaphoreui/semaphore/compare/v2.17.31...v2.17.32