Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz

Relationships

#2447 Retry refusals print unquoted forEach template names in --from hints, which bash rejects

Opened by hammz · 9/23/2026· Shipped 9/29/2026

Problem

When swamp workflow resume <wf> --run <id> refuses to retry a failed run, two refusals suggest a --from step: the rejected-approval refusal (Add --from <gate> to ask again.) and the pending-step refusal (Add --from <step> to run it.). Both print the entry template name unquoted (selectRetryTemplates in src/domain/workflows/failed_step_retry.ts).

For a forEach step, the template name is the step name as written in the workflow, and it usually contains an expression, such as read-${{ self.plate }}. The printed hint Add --from read-${{ self.plate }} cannot be pasted into a shell: bash rejects it with bad substitution.

Found by the verification reviews of swamp-club#2409 (PR swamp-club/swamp#2582).

Expected

The printed --from value is shell-quoted when it needs quoting, so the hint runs as printed. quoteShellWord in src/cli/remote_run.ts already does this for printed --server and --repo-dir values; the refusal lives in the domain layer, so the quoting helper would need to be reachable from there, or the refusal could carry the step name for the caller to quote.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/29/2026, 3:19:59 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
hammz assigned hammz9/29/2026, 2:37:50 PM

Sign in to post a ripple.