v2.17.28
semaphoreui/semaphorev2.17.28Mar 22, 2026by github-actions[bot]
AI Summary
Improves internal task tracking by persisting the runner association and correcting status validation logic in the runner update flow.
Key Highlights
- Added `runner_id` field to task records to persist runner association
- Fixed runner task status validation to use the actual task status field
New Features
- Added `runner_id` field to task records
Full Release Notes
## Release v2.17.28 This release improves runner-to-task tracking and fixes task status handling in the runner update flow. A new `runner_id` field was added to tasks in the database, which makes it possible to persist the association between a task and the runner executing it. This improves internal task tracking and lays the groundwork for more reliable runner state handling. This release also fixes a bug in the runner update logic where the current task state was checked using the wrong field. In `api/runners/runners.go`, the status check was corrected from `job.Status.IsFinished()` to `tsk.Task.Status.IsFinished()`, ensuring the system evaluates the actual stored task state before applying runner updates. This makes task state transitions more accurate during runner execution. ### What's changed * Added `runner_id` to the task record in the database for better runner-to-task association. ([#3712](https://github.com/semaphoreui/semaphore/pull/3712)) * Fixed runner task status validation to use the actual task status field instead of the job status field. ### Full Changelog [https://github.com/semaphoreui/semaphore/compare/v2.17.27...v2.17.28](https://github.com/semaphoreui/semaphore/compare/v2.17.27...v2.17.28)