Skip to content

fix(runner): select highest embedded runner version, bump to 2.335.1#97

Merged
ephpm-claude[bot] merged 1 commit into
mainfrom
fix-runner-deprecated-version
Jul 8, 2026
Merged

fix(runner): select highest embedded runner version, bump to 2.335.1#97
ephpm-claude[bot] merged 1 commit into
mainfrom
fix-runner-deprecated-version

Conversation

@ephpm-claude

@ephpm-claude ephpm-claude Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Problem

macOS jobs (native and VM) silently failed: the runner connected, got no work, exited 0 in ~7s, and the job sat queued forever. The runner log showed:

Current runner version: '2.333.1'
An error occurred: Runner version v2.333.1 is deprecated and cannot receive messages.

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 (a RunnerVersion bump downloads the new tarball but leaves the old one behind), and ReadDir returns them sorted — so 2.333.1 beat 2.335.1 alphabetically and the deprecated runner shipped. Bumping RunnerVersion alone never fixed it because the constant only controls the download name, not extraction.

Fix

  • findTarball now parses the trailing version and selects the highest embedded version, so a leftover tarball can't regress the shipped runner.
  • Bump RunnerVersion 2.333.1 → 2.335.1 (2.333.1 is GitHub-deprecated; 2.335.1 is current).
  • Unit tests for parseRunnerVersion, compareRunnerVersions, and a guard that findTarball picks 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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant