From 2fbd5ee515b0e3a76b18277b0f3eb8f1939e2ceb Mon Sep 17 00:00:00 2001 From: Gergo Magyar Date: Sun, 2 Aug 2026 07:07:15 +0000 Subject: [PATCH] fix(ci): make the task repo resolve the ref its tasks name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every task in tasks.scenarios.yaml names `ref: main`, and resolving it is the first thing task binding does. actions/checkout only creates a local ref for the ref it checked out, so `main^{commit}` resolves on a main run and dies with "unknown revision" on any other — which is what a workflow_dispatch from a branch hits, before a single session starts. The step that points the benchmark at the checkout now also makes that checkout able to answer for the refs the tasks name. On a main run the fetch is a no-op. --- .github/workflows/gitnexus-skill-evolution.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/gitnexus-skill-evolution.yml b/.github/workflows/gitnexus-skill-evolution.yml index 64bfbb4ae..88b98e879 100644 --- a/.github/workflows/gitnexus-skill-evolution.yml +++ b/.github/workflows/gitnexus-skill-evolution.yml @@ -233,6 +233,14 @@ jobs: # task `repo` path. The benchmark only clones the repo (copy-on-write) # and mounts dependencies read-only, so the checkout is never mutated. ln -sfn "${GITHUB_WORKSPACE}" "${HOME}/GitNexus" + # Every task in tasks.scenarios.yaml names `ref: main`, and resolving + # it is the first thing task binding does. actions/checkout only + # creates a local ref for the ref it checked out, so `main^{commit}` + # resolves on a main run and fails on any other — a no-op here when + # main is already what was checked out. + git -C "${GITHUB_WORKSPACE}" fetch --no-tags --quiet \ + "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ + '+refs/heads/main:refs/heads/main' - name: Seed the proposer with the previous run's evidence id: seed