Skip to content

github-backup(deploy): --dry-run is ignored on the --deploy-version path — a rollback preview creates a real 100% deployment #3474

Closed

Description

@dezren39

Finding (from PR review)

Codex P1 on PR #3280 (chatgpt-codex-connector[bot], 2026-11-01T01:33:18Z): "Honor dry-run when deploying an existing version" — #3280 (comment)

When an operator combines --dry-run with --deploy-version <id> to preview a rollback, this branch runs before the dry-run check and immediately changes the production deployment. Running the actual script with mocked executables confirmed that it invokes wrangler versions deploy <id>@100% --name developing-today-backup --yes, without forwarding --dry-run. Wrangler documents the deployment command's --dry-run option as "Don't actually deploy," but the wrapper silently discards that protection and bypasses confirmation. Forward the dry-run flag for existing-version deployments, or reject the combination before making any changes.

No-response evidence

Still-live evidence (verified this run, current main)

infra/github-backup/worker/deploy.mjs (current main):

  • The --deploy-version branch runs before the dry-run check and exits:
    if (deployVersion !== null) {
      createDeployment(deployVersion);
      reportLive();
      process.exit(0);
    }
    if (dryRun) { /* wrangler deploy --dry-run ... */ }
  • createDeployment() unconditionally runs wrangler versions deploy <id>@100% --name developing-today-backup --yes — no --dry-run forwarding, no rejection of the combination.

So deploy.mjs --dry-run --deploy-version <id> — the safest-looking way to preview a rollback — performs the real 100% deployment.

Dedupe / related

Acceptance criteria

  • deploy.mjs --dry-run --deploy-version <id> creates no deployment: it either forwards --dry-run to wrangler or rejects the combination with a clear error before any wrangler call.
  • The non-dry-run --deploy-version path is unchanged.
  • A stubbed-executable regression test covers the combination (fails on current code).
  • Or the finding is resolved by a documented decision on this issue.

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    task/triageQueue packet kind: verify, reproduce, and route this item
    priority/highImportant and time-sensitive
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  2. developing-today commented on Nov 1, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed

  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: repo-worker-code (OpenChamber scheduled lane)
    • Session / ID: OpenCode scheduled lane 2026-11-01; queue task 5417 (triage, attempt 1)
    • Found via: claimed from repo-health-code-pilot queue
    • Task: Verify the reported --dry-run/--deploy-version interaction on current main and route the remaining fix without invoking a live deployment.
  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. 4 remaining items

  7. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 1, 2026
  8. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  9. added a commit that references this issue on Nov 1, 2026
  10. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    app/github-backupinfra/github-backup estate mirror systemeffort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)priority/highImportant and time-sensitivesource/pr-comment-reviewFiled by the pr-comment-review jobstatus:donetask/triageQueue packet kind: verify, reproduce, and route this item

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions