From db10241761b19d2b4cbccaa9647fae7e1a137bee Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 1 Jun 2026 18:22:19 +0000 Subject: [PATCH] fix: make agentrun trigger source fetch resilient --- scripts/src/agentrun.ts | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/scripts/src/agentrun.ts b/scripts/src/agentrun.ts index 8a8790b9..10af95e2 100644 --- a/scripts/src/agentrun.ts +++ b/scripts/src/agentrun.ts @@ -148,14 +148,34 @@ async function status(config: UniDeskConfig): Promise> { async function triggerCurrent(config: UniDeskConfig, options: TriggerOptions): Promise> { const source = await capture(config, g14SourceRoute, ["script", "--", [ - "set -eu", + "set -u", "cd /root/agentrun-v01", - "git fetch origin v0.1", - "git merge --ff-only refs/remotes/origin/v0.1", + "fetch_status=succeeded", + "fetch_output=$(git fetch origin v0.1 2>&1)", + "fetch_code=$?", + "if [ \"$fetch_code\" -ne 0 ]; then fetch_status=failed; fi", + "printf 'fetchStatus=%s\\n' \"$fetch_status\"", + "printf 'fetchExitCode=%s\\n' \"$fetch_code\"", + "printf 'fetchOutput=%s\\n' \"$fetch_output\" | tail -n 8", + "origin_ref=$(git rev-parse refs/remotes/origin/v0.1 2>/dev/null || true)", + "merge_status=skipped", + "merge_code=0", + "if [ -n \"$origin_ref\" ]; then", + " merge_output=$(git merge --ff-only refs/remotes/origin/v0.1 2>&1)", + " merge_code=$?", + " if [ \"$merge_code\" -eq 0 ]; then merge_status=succeeded; else merge_status=failed; fi", + " printf 'mergeStatus=%s\\n' \"$merge_status\"", + " printf 'mergeExitCode=%s\\n' \"$merge_code\"", + " printf 'mergeOutput=%s\\n' \"$merge_output\" | tail -n 8", + " if [ \"$merge_code\" -ne 0 ]; then exit \"$merge_code\"; fi", + "else", + " printf 'mergeStatus=skipped-origin-missing\\n'", + " printf 'originRefMissing=true\\n'", + "fi", "printf 'sourceCommit='", "git rev-parse HEAD", "printf 'originV01='", - "git rev-parse refs/remotes/origin/v0.1", + "git rev-parse refs/remotes/origin/v0.1 2>/dev/null || true", "git status --short --branch", ].join("\n")]); const sourceCommit = matchLine(source.stdout, "sourceCommit=");