Name the rerun controls after what they rerun - #1179
Merged
Merged
Conversation
The workflow header button and the pipeline-row button did the opposite of what their labels suggested: the header "Rerun" starts a whole new workflow, while "Rebuild Pipeline" only re-runs what did not pass in that one pipeline. Users reading the labels reached for the wrong one (#686). Rename both to say their scope — "Rerun Workflow" and "Rerun Failed Jobs" — add tooltips that spell out the difference and point at the other control, and raise the pipeline-row button from btn-tiny to btn-small so the pipeline-scoped action is not the smallest thing in the row. Follow-through on the rename: the in-flight and error-restore labels in the tree JS, the workflow editor's rerun-granularity copy that names the button, and the docs passage describing both buttons (which also claimed the header button restarts a pipeline rather than the workflow). Behaviour, routes and permissions are unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Raising the pipeline-row rerun button to btn-small made the tree rows read wrong, so it goes back to btn-tiny alongside Stop Pipeline. The tooltip on that button was a plain title attribute, which is not the mechanism the app uses and did not surface in the tree. Switch it to data-tippy-content: app.js binds those at page load, and Pollman already destroys and rebinds tooltips around every partial refresh, so the tree keeps its tooltip across polls. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
skipi
marked this pull request as ready for review
August 14, 2026 10:15
skipi
enabled auto-merge (squash)
August 14, 2026 10:15
DamjanBecirovic
approved these changes
Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The two rerun controls on the workflow page describe themselves in ways that invert their actual scope. The header button reads Rerun but starts a completely new workflow from the same commit. The button on a failed pipeline row reads Rebuild Pipeline but is the narrow one — it re-runs only what did not pass inside that single pipeline. Reading the labels, "Rebuild Pipeline" is the one that sounds like a full restart, so people reach for whichever button is nearest and get the scope they did not want. That is the confusion reported in #686.
This renames both controls after what they rerun and makes the difference legible without a click:
Rerun→ Rerun Workflow, tooltip "Starts a fresh run of the whole workflow from this commit". Same on the job page header, where the tooltip also keeps the "including this job" note.Rebuild Pipeline→ Rerun Failed Jobs, tooltip "Reruns only the jobs in this pipeline that did not pass, keeping the ones that did. Use Rerun Workflow above for a fresh run of everything."That row tooltip previously existed as a plain
titleattribute and did not surface in the tree. It now usesdata-tippy-content, the mechanism the rest of the app uses:app.jsbinds those on page load, and Pollman already destroys and rebinds tooltips around each partial refresh, so the tooltip survives the tree's polling. Button sizes are unchanged — the row keepsbtn-tiny, matchingStop Pipelinenext to it.Follow-through so the rename does not leave stale copy behind: the tree JS in-flight label (
Rebuilding...→Rerunning...) and its error-restore label, the workflow editor's rerun-granularity section (which named the button in its explanatory line), and the docs passage describing both buttons — that passage additionally claimed the header button "restarts the whole pipeline from the beginning", which is wrong; it restarts the workflow.Routes, permissions, feature gating and behaviour are untouched. The row button still renders only behind
ui_partial_ppl_rebuild, so organizations without that feature see a single unambiguous Rerun Workflow.Scope
This is a deliberate low-effort interim step: it fixes the vocabulary, not the layout. The larger piece of work — collapsing both controls into one pipeline-scoped
Rerunmenu that enumerates the pipelines with failures — is being explored separately (#1178 carries the playground it is designed in). The vocabulary picked here is the vocabulary that design lands on, so this rename is not thrown away when the menu ships.Verification
Copy-only change; no spec asserts any of the renamed strings. The guest-path assertion in
workflow_controller_test.exsthat refutes the presence of a rerun button is unaffected — anonymous and guest viewers renderworkflow/_workflow.html.eex, which has no rerun control at all. Relying on CI for compile, format, lint and the front suites.Left for a follow-up
docs/docs/using-semaphore/pipelines.mdembedsimg/rerun-pipeline.jpg, a screenshot showing the old labels. It needs to be retaken once this is deployed. The versioned CE/EE docs are intentionally not touched — released versions still ship the old labels.Stop Pipeline, in the same row, still has no tooltip at all.