From ad06a5dd3f105ef042577e7a6e0aa08916fa759d Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 14:05:26 +0100 Subject: [PATCH] =?UTF-8?q?fix(2):=20R014=20normalize=20=E2=80=94=20use=20?= =?UTF-8?q?git=20clone=20--mirror=20(not=20--bare)=20so=20abra's=20later?= =?UTF-8?q?=20fetches=20find=20refs/heads/main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bare lacked refs/heads/main, so abra's post-normalize git ops (app secret insert / deploy) failed 'unable to fetch tags: reference not found' when fetching from the repointed local origin. --mirror copies all refs (heads+tags) → abra fetch OK + R014 passes (both verified). Co-Authored-By: Claude Opus 4.8 (1M context) --- runner/harness/abra.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/harness/abra.py b/runner/harness/abra.py index 8eb4d4b..c199c51 100644 --- a/runner/harness/abra.py +++ b/runner/harness/abra.py @@ -134,7 +134,10 @@ def normalize_recipe_tags(recipe: str) -> int: # upstream lightweight tag) pulls the corrected tags instead. bare = os.path.expanduser(f"~/.abra/recipes/.{recipe}-ccci-fixed.git") subprocess.run(["rm", "-rf", bare], check=False) - subprocess.run(["git", "clone", "--quiet", "--bare", path, bare], check=True) + # --mirror (not --bare): copies ALL refs incl. refs/heads/main, so abra's later git ops + # (`app secret insert`, deploy) that fetch from origin find every ref ("reference not found" + # if main is missing). The annotated tags ride along. + subprocess.run(["git", "clone", "--quiet", "--mirror", path, bare], check=True) subprocess.run( ["git", "-C", path, "remote", "set-url", "origin", f"file://{bare}"], check=True )