From c0bb3d5c9688e36e8ca72e0d3e34bf797f9cd1b0 Mon Sep 17 00:00:00 2001 From: Ayrat Hudaygulov Date: Mon, 14 Sep 2026 11:31:33 +0100 Subject: [PATCH] CI: remove Retry Probe fixture; fix canary dry_run flag that was always live MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The temporary _retry-probe.yml from #489 has done its job (see #489 comments): attempt 1 killed by timeout-minutes, Agent Retry fired within 10 s and called rerun-failed-jobs, attempt 2 re-ran only the dead leg, the completion of attempt 2 was ignored by the run_attempt guard, and in timeout-both mode exactly one retry happened (no attempt 3). Canary: `inputs.dry_run == 'true'` compares a boolean input to a string; GitHub coerces both to numbers (1 vs NaN) so it was always false and every dry-run dispatch sent real PagerDuty events — which is how a "Retry Probe (temporary): stalled" warning reached the owner at 10:25Z today (resolved manually). `inputs.dry_run == true` fixes it; verified on branch canary-probe-test run 34833513756's successor: "[dry-run] would trigger" lines, no HTTP calls. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01V4AMHh8hMfZh53Tnj3TSSn --- .github/workflows/_retry-probe.yml | 44 --------------------------- .github/workflows/agent-retry.yml | 1 - .github/workflows/workflow-canary.yml | 3 +- 3 files changed, 2 insertions(+), 46 deletions(-) delete mode 100644 .github/workflows/_retry-probe.yml diff --git a/.github/workflows/_retry-probe.yml b/.github/workflows/_retry-probe.yml deleted file mode 100644 index 136970c2..00000000 --- a/.github/workflows/_retry-probe.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Retry Probe (temporary) - -# TEMPORARY end-to-end test fixture for agent-retry.yml (#489). Removed in the -# follow-up PR once the retry chain has been observed working on main. - -on: - workflow_dispatch: - inputs: - mode: - type: choice - default: recover - options: - - recover - - timeout-both - description: recover = attempt 1 times out, attempt 2 succeeds; timeout-both = every attempt times out - -jobs: - leg: - runs-on: ubuntu-latest - timeout-minutes: 1 - steps: - - name: Time out on attempt 1 (and on every attempt in timeout-both mode) - env: - MODE: ${{ inputs.mode }} - ATTEMPT: ${{ github.run_attempt }} - run: | - echo "mode=${MODE} attempt=${ATTEMPT}" - if [ "$ATTEMPT" = "1" ] || [ "$MODE" = "timeout-both" ]; then - echo "sleeping past timeout-minutes on purpose" - sleep 300 - fi - echo "attempt ${ATTEMPT} succeeded" - - finalize: - needs: leg - if: always() - runs-on: ubuntu-latest - steps: - - name: Fail the run unless the leg succeeded (mirrors monitor.yml finalize) - env: - LEG_RESULT: ${{ needs.leg.result }} - run: | - echo "leg result: ${LEG_RESULT}" - [ "$LEG_RESULT" = "success" ] || exit 1 diff --git a/.github/workflows/agent-retry.yml b/.github/workflows/agent-retry.yml index 5f537910..935341e2 100644 --- a/.github/workflows/agent-retry.yml +++ b/.github/workflows/agent-retry.yml @@ -9,7 +9,6 @@ on: - Monitor - Daily Project Assessment - Product Analysis - - Retry Probe (temporary) # TEMPORARY, removed with _retry-probe.yml types: [completed] permissions: diff --git a/.github/workflows/workflow-canary.yml b/.github/workflows/workflow-canary.yml index 75605901..be684f57 100644 --- a/.github/workflows/workflow-canary.yml +++ b/.github/workflows/workflow-canary.yml @@ -31,7 +31,8 @@ jobs: env: PD_URL: https://events.eu.pagerduty.com/v2/enqueue PD_KEY: ${{ secrets.PAGERDUTY_ROUTING_KEY }} - DRY_RUN: ${{ inputs.dry_run == 'true' }} + # boolean input vs string 'true' never matched (coerced to 1 vs NaN) — every "dry run" was live + DRY_RUN: ${{ inputs.dry_run == true }} steps: - name: Resolve canary self-report