From 615545df390744f3fa9686317f21e1926936ee71 Mon Sep 17 00:00:00 2001 From: JSONbored <49853598+JSONbored@users.noreply.github.com> Date: Tue, 14 Jul 2026 12:54:33 -0700 Subject: [PATCH] fix(ci): sync miner engine-version pin on the engine release branch scripts/check-engine-parity.ts requires packages/loopover-miner/expected-engine.version to match packages/loopover-engine/package.json's version, but release-please's engine component only ever touches files under packages/loopover-engine/**, so it can never update that cross-package pin itself. This left every engine release PR structurally unable to pass CI (confirmed on the engine-v3.1.0 release PR, #5807). Extends the existing package-lock.json sync step to also write the pin whenever the engine branch's version changes. --- .github/workflows/mcp-release-please.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mcp-release-please.yml b/.github/workflows/mcp-release-please.yml index 13844c4606..81b7b6381d 100644 --- a/.github/workflows/mcp-release-please.yml +++ b/.github/workflows/mcp-release-please.yml @@ -64,7 +64,13 @@ jobs: # engine-v0.2.0 dry runs left it stale, breaking npm ci with "Missing: @ from # lock file"). Patches it directly on whichever release branch(es) release-please just # created/updated, using the same branch naming convention its own commits already rely on. - - name: Sync package-lock.json on any release branch + # + # The engine branch also needs packages/loopover-miner/expected-engine.version bumped to match + # packages/loopover-engine/package.json's new version: release-please's engine component only + # ever touches files under packages/loopover-engine/**, so it can never update that cross-package + # pin itself -- scripts/check-engine-parity.ts's checkMinerEngineVersionPinSync would otherwise + # fail on every single engine release PR (confirmed live on the engine-v3.1.0 release PR, #5807). + - name: Sync package-lock.json and engine-version pin on any release branch env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | @@ -91,6 +97,17 @@ jobs: git commit -m "chore(release): sync package-lock.json" git push origin "HEAD:$branch" fi + if [ "$component" = "engine" ]; then + engine_version="$(node -p "require('./packages/loopover-engine/package.json').version")" + printf '%s\n' "$engine_version" > packages/loopover-miner/expected-engine.version + if git diff --quiet packages/loopover-miner/expected-engine.version; then + echo "expected-engine.version already in sync on $branch." + else + git add packages/loopover-miner/expected-engine.version + git commit -m "chore(release): sync miner engine-version pin" + git push origin "HEAD:$branch" + fi + fi done # release-please creates the component tag + GitHub Release with GITHUB_TOKEN, which (by