Repository navigation
Description
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-runwith--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 invokeswrangler versions deploy <id>@100% --name developing-today-backup --yes, without forwarding--dry-run. Wrangler documents the deployment command's--dry-runoption 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
- PR github-backup: rename to developing-today-backup + just/nix deploy standard #3280 merged with the finding unaddressed: the inline comment has no replies, and GraphQL
reviewThreadsfor PR github-backup: rename to developing-today-backup + just/nix deploy standard #3280 shows all 3 threadsisResolved=false. - No fix commit after the comment: the defect is still present on current main (below).
Still-live evidence (verified this run, current main)
infra/github-backup/worker/deploy.mjs (current main):
- The
--deploy-versionbranch 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 runswrangler versions deploy <id>@100% --name developing-today-backup --yes— no--dry-runforwarding, 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
- Sibling, not a duplicate: pkarr-worker(deploy): --dry-run is ignored on the --deploy-version path — a rollback preview creates a real 100% deployment #3252 files the identical defect in
pkgs/pkarr-worker/deploy.mjs. That issue is scoped to the pkarr script only and does not cover this script (the fleet's established pattern is one issue per script — see github-backup(worker deploy): unrecognized arguments are silently ignored — a typo'd --dry-rnu performs a real deploy (upload + secret reset) #3287, filed for this same deploy.mjs's unrecognized-argument defect). - github-backup(worker deploy): unrecognized arguments are silently ignored — a typo'd --dry-rnu performs a real deploy (upload + secret reset) #3287 (unrecognized arguments silently ignored in this file) is a distinct defect.
Acceptance criteria
deploy.mjs --dry-run --deploy-version <id>creates no deployment: it either forwards--dry-runto wrangler or rejects the combination with a clear error before any wrangler call.- The non-dry-run
--deploy-versionpath 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
developing-today commentedon Nov 1, 2026
CODE-1330
dezren39 commentedon Nov 1, 2026
🤖 Agent note · filed
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
4 remaining items
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
--dry-run --deploy-versioncannot perform a live deployment; add stubbed-executable regression testMerge pull request #3480 from developing-today/queue/5424-3474-dry-ru…
dezren39 commentedon Nov 1, 2026
🤖 Agent note · done
--dry-runcombined with--deploy-versionright after argument parsing, before any bws/wrangler invocation; ordinary rollback and plain dry-run paths unchanged