From 7708ce6e76871efe4c4571e6497b274b1b87ba12 Mon Sep 17 00:00:00 2001 From: Codex Date: Fri, 3 Jul 2026 07:59:24 +0000 Subject: [PATCH] fix: infer triggered state from native pipelinerun --- scripts/src/cicd.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/src/cicd.ts b/scripts/src/cicd.ts index 88bac6e9..9221f5a5 100644 --- a/scripts/src/cicd.ts +++ b/scripts/src/cicd.ts @@ -939,11 +939,12 @@ async function decideAndMaybeTrigger( const previousObserved = stringOrNull(recordAt(previous, ["source"])?.observedSha); const previousTarget = stringOrNull(recordAt(previous, ["target"])?.targetSha); const superseded = previousInFlight !== null && previousObserved !== null && observedSha !== null && previousObserved !== observedSha; + const nativePipelineRunMatchesObserved = observedSha !== null && live.pipelineRun !== null && live.pipelineRun === expectedPipelineRunName(follower, observedSha); let phase: BranchFollowerPhase; let decision: string; let triggerCommand: Record | undefined; let inFlightJob: string | null = live.inFlightJob; - let lastTriggeredSha = live.lastTriggeredSha ?? previousLastTriggered; + let lastTriggeredSha = live.lastTriggeredSha ?? previousLastTriggered ?? (nativePipelineRunMatchesObserved ? observedSha : null); let lastSucceededSha = live.lastSucceededSha ?? previousLastSucceeded; if (targetSha === null && observedSha !== null && previousLastSucceeded === observedSha && previousTarget === observedSha) targetSha = observedSha; @@ -960,7 +961,7 @@ async function decideAndMaybeTrigger( phase = "Noop"; decision = "target already matches observed source sha"; lastSucceededSha = observedSha; - } else if (previousLastTriggered !== null && previousLastTriggered === observedSha) { + } else if (lastTriggeredSha !== null && lastTriggeredSha === observedSha) { phase = "ClosingOut"; decision = "same sha was already triggered; use status/events/logs for closeout"; } else {