Repository navigation
๐ tracker: a PR waiting on its author never leads with Close as superseded - #15664
Conversation
โฆseded A human-authored PR the review swarm sent back for changes rendered the red inline 'Close as superseded' button: stageTrackerLeadActions flagged every server decide:* option not already in the Decideโฆ submenu as lead, and once delegate/hold were taken the first leftover was the close. - StageTrackerDecisionOption gains Lead (json lead); the server sets it only where a close is the answer (decisionLeadWithCloseSuperseded, the reviewer's RedundantOf). - The SPA never leads a row with a danger option unless o.lead, and the Decideโฆ fallback skips danger entries; the โฏ menu is unchanged. - The waiting pill for a person's own PR reads 'waiting on @x to push' and the popover question no longer asks 'or close it?'. - Tests updated; focused cases for waiting-on-author (no close lead), the live 085 sent-back shape, and redundant-of (close still leads). Signed-off-by: Andrew Anderson <andy@clubanderson.com>
โฆsted PR An issue with several linked PRs draws a sub-row per PR; when one parked PR asks, stageTrackerDecisionTarget resolved the issue row's lead to that PR as well, so the same 'Let hive decide' button appeared on the parent header and on the sub-row (hive#15320 โ #15647, hive#15338 โ #15648). stageTrackerLeadActionOnRow drops the parent's lead when it acts on a nested PR that is drawn as a sub-row and renders its own; the parent's โฏ menu keeps 'Decide PR #Nโฆ'. Test: a parent + nested-PR pair yields one button. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of
|
|
@clubanderson this PR is held at Failing checks:
Next: the hive does not push to your branch. Push a new head (or reply here); CI and the review swarm re-run automatically and the PR returns to the normal path. |
|
stage 080-awaiting-merge-admission โ 071-needs-author: required-check-failing:coverage |
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
โฆubmenu lists its verb Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
stage 080-awaiting-merge-admission โ 050-review-pending: required-check-pending:Sign-off survives the squash |
There was a problem hiding this comment.
Read tracker-actions.js:355-470, tracker-row.js:1043-1350, stage_tracker_decision.go:555-900 and the generated index.html at c8bc8fa. Looks correct to me.
- The lead rule is now explicit in one place:
lead: !danger || !!o.lead(tracker-actions.js:373) plus the submenu fallback filtering!x.danger(:445). The only producer ofLead: trueisdecisionLeadWithCloseSuperseded(stage_tracker_decision.go:894), i.e.RedundantOfset, so a close can lead only when a reviewer named the superseding PR. The Go test asserts no other option is ever marked lead. - I checked the
taken && โฆ && !o.leadbypass (:364): in the redundant-of case the โฏ menu gets the prefilled "Close as superseded" at top level while Decideโฆ keeps the generic "Close as superseded byโฆ" (stageTrackerDecideOptions). The inline comment says that's intended; noting it so nobody reads it as a dup later. stageTrackerLeadActionOnRow(:472-481) only suppresses the parent button whenitem.kind === 'issue', sub-rows are actually drawn (subRowsis set only on thelinked.length > 1branch,tracker-row.js:1304), the target is one of them, and that sub-row itself yields a lead โ so the single-linked-PR case and an issue's own 045 ask keep their button. Both pinned in the node fixture.static/index.htmlis regenerated in the diff and matchesstatic-srcfor the three touched functions.
โ hive: agent=reviewer-2 backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
Port the v5 tracker-row.js changes (hivecommons#15657, hivecommons#15664, hivecommons#15668, hivecommons#15680) into the split files: stageTrackerAnchor under-repair column (tracker-row.js), acted labels (tracker-row-strip.js), queue-merge pending copy (tracker-row-acted.js), and stageTrackerLead / left_train / subRows / review notes (tracker-row-layout.js). static/index.html regenerated and matches the auto-merge byte for byte. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Fixes #15663
Why
stageTrackerLeadActionsflagged every serverdecide:*option not already in the Decideโฆ submenu aslead; with delegate/hold taken, the first leftover was the close.What
StageTrackerDecisionOptiongainsLead bool(json:"lead"); the server sets it only indecisionLeadWithCloseSuperseded(the reviewer'sRedundantOf), the one place a close is the answer.stageTrackerLeadActionsnever flags adanger(decide:close-*) option as the row's lead unlesso.lead; the Decideโฆ fallback instageTrackerLeadActionskips danger entries. The โฏ menu is unchanged.decisionForWaitingOnAuthorno longer asks "Wait for them, or close it?"; the waiting pill for a person's own PR reads "waiting on @author to push".stageTrackerLeadActionOnRow: an issue row whose lead acts on a nested PR drawn as a sub-row renders no button โ the sub-row (with the chevron) carries it; the parent keeps "Decide PR #Nโฆ" in โฏ.static/index.htmlregenerated withmake dashboard-gen.Tests
stage_tracker_row_actions_test.go: waiting-on-author โ no close lead / no inline button; the live 085 sent-back shape โ non-destructive lead, close still in โฏ;lead: trueredundant-of โ Close as superseded still leads.stage_tracker_decision_redundant_test.go:Leadset on the RedundantOf path only;TestDecisionForWaitingOnAuthorNeverLeadsWithClose.stage_tracker_lead_action_test.go: a parent + nested-PR pair yields exactly one lead button.