Repro (released brew CLI 4.0.3, macOS)
mkdir scratch && cd scratch && wheels deploy init
wheels deploy app boot --release=v1 --dry-run # instant: prints the dry-run docker run line
wheels deploy app boot --release=1 --dry-run # hangs ~76s, then:
# [ERROR] Error: lucee.runtime.exp.NativeException: Operation timed out
Reproduced twice across independent verification sessions (timed at 1:16.52 wall in the latest run). A purely numeric release value appears to trigger a real SSH/connection attempt to the template's placeholder host (192.168.0.1) despite --dry-run, while any non-numeric value (v1, abc1234) short-circuits correctly.
Suspected area
Likely a type-coercion branch in cli/lucli/services/deploy/cli/DeployArgsParser.cfc (--release arm at lines 39-42) or in DeployAppCli's version handling — a numeric string may fail an isValid/len-style guard and fall into a "resolve version from remote" path that ignores the dry-run flag.
Expected
--dry-run must never open a connection; numeric release labels (build numbers are a natural choice) should behave identically to alphanumeric ones.
Dedupe: not covered by the existing deploy batch #3084–#3089, nor by #2956/#2957 (security/orchestration scopes), nor by docs PR #3102. Found during the P2 guide-behavioral-audit (p2-2-cliref, claim deploy-app-02).
🤖 Generated with Claude Code
Repro (released brew CLI 4.0.3, macOS)
Reproduced twice across independent verification sessions (timed at 1:16.52 wall in the latest run). A purely numeric release value appears to trigger a real SSH/connection attempt to the template's placeholder host (192.168.0.1) despite
--dry-run, while any non-numeric value (v1,abc1234) short-circuits correctly.Suspected area
Likely a type-coercion branch in
cli/lucli/services/deploy/cli/DeployArgsParser.cfc(--releasearm at lines 39-42) or in DeployAppCli's version handling — a numeric string may fail an isValid/len-style guard and fall into a "resolve version from remote" path that ignores the dry-run flag.Expected
--dry-runmust never open a connection; numeric release labels (build numbers are a natural choice) should behave identically to alphanumeric ones.Dedupe: not covered by the existing deploy batch #3084–#3089, nor by #2956/#2957 (security/orchestration scopes), nor by docs PR #3102. Found during the P2 guide-behavioral-audit (p2-2-cliref, claim deploy-app-02).
🤖 Generated with Claude Code