fix(runner): select highest embedded runner version, bump to 2.335.1#97
Merged
Merged
Conversation
findTarball() returned the FIRST embedded archive matching the OS prefix
with no version awareness. When the embed dir holds more than one version
— which happens whenever a RunnerVersion bump downloads the new tarball
but leaves the previous one behind — ReadDir order wins, so the OLDER
runner ships. GitHub deprecates old runner versions and refuses their
connections ("Runner version vX is deprecated and cannot receive
messages"), so every job silently fails: the runner connects, gets no
work, exits 0 in ~7s, and the job sits queued forever.
Bumping RunnerVersion alone never fixed this because the constant only
controls the DOWNLOAD name, not extraction. Make findTarball parse the
trailing version and pick the highest, so a leftover tarball can't
regress the shipped runner. Also bump RunnerVersion 2.333.1 -> 2.335.1
(2.333.1 is now GitHub-deprecated; 2.335.1 is current).
Verified on a live macOS host: the native runner now reports
"Current runner version: '2.335.1'" and runs real jobs instead of
exiting on the deprecation error.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ChVRC9ZrvQarrctDwSy1S5
This was referenced Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
macOS jobs (native and VM) silently failed: the runner connected, got no work, exited 0 in ~7s, and the job sat
queuedforever. The runner log showed:Root cause
findTarball()returned the first embedded archive matching the OS prefix, with no version awareness. The embed dir can legitimately hold more than one version (aRunnerVersionbump downloads the new tarball but leaves the old one behind), andReadDirreturns them sorted — so2.333.1beat2.335.1alphabetically and the deprecated runner shipped. BumpingRunnerVersionalone never fixed it because the constant only controls the download name, not extraction.Fix
findTarballnow parses the trailing version and selects the highest embedded version, so a leftover tarball can't regress the shipped runner.RunnerVersion2.333.1 → 2.335.1 (2.333.1 is GitHub-deprecated; 2.335.1 is current).parseRunnerVersion,compareRunnerVersions, and a guard thatfindTarballpicks the newest embedded tarball.Verified live
On the Mac mini the native runner now reports
Current runner version: '2.335.1'and runs a real job (Running job: Build (PHP 8.3, macos-aarch64)) instead of dying on the deprecation error — the first macOS job to complete since June 10.🤖 Generated with Claude Code