Relationships
#2977 workflow approve/resume hint lines wrap + quote names, breaking copy-paste
Opened by albertchae · 10/2/2026· Shipped 10/5/2026
Description
The hint lines printed after swamp workflow approve (and in the suspend/approval blocks) wrap to the terminal width and wrap the workflow name and run id in double quotes. Both hurt copy-paste: the quotes are unnecessary (workflow names and run UUIDs contain no spaces) and the line-wrap splits the command across lines, so selecting it yields a broken command.
Observed
2026-10-02T18🔞40.459Z info workflow·approve After approval: swamp workflow resume "wipe-drive"
--run "8603d973-24ca-4f36-9c04-7b7c39a4a41a"Copying this yields: swamp workflow resume "wipe-drive"\n --run "8603d973-..." — wrapped, indented, and quoted.
The same pattern appears in the 'Suspended workflow … To approve: / After approval:' block printed by swamp workflow run/resume.
Steps to reproduce
- Create a workflow with a
manual_approvalstep. swamp workflow run <wf>→ it suspends at the approval.swamp workflow approve <wf> <step> --run <id>and observe the 'After approval:' hint.
Expected
Print the suggested command as a single, unwrapped, unquoted line that can be copied verbatim, e.g.:
swamp workflow resume <wf> --run <uuid>
(No surrounding double quotes; don't hard-wrap command hints to terminal width — or emit them outside the timestamped/indented log gutter so a copy grabs just the command.)
Impact
Minor but constant friction when driving any approval-gated workflow by hand.
Environment
swamp 20261002.000056.0-sha.a1e4cae5; macOS (darwin 25.6.0); zsh.
Shipped
Click a lifecycle step above to view its details.
stack72 commented 10/5/2026, 3:48:10 PM
Thanks @albertchae for reporting this! We shipped: Print the copy-paste command hints from workflow approve and workflow approvals with writeOutput instead of LogTape, so they come out unquoted and are never hard-wrapped by the pretty sink, following the existing workflow recover pattern. The hints stay suppressed under --quiet. The approve server-path hint prints the real server URL (via formatCommandTarget) instead of a placeholder. Status lines stay on the logger and JSON output is unchanged.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.
Sign in to post a ripple.