You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
dashboard: merge-gate pills (sentinel, needs-human, unauthorized) show before the PR reaches the gate #14650
"Until the PR is in the merge gate, we should not see things like needs-human or unauthorized or sentinel, because there is nothing we can do about it while PRs are in motion."
Screenshot evidence on the Hive activity monitor: #14399 at CI / Review shows sentinel + needs human pills; #14614 at CI / Review shows sentinel; rationguard#397 at Returned to contributor shows unauthorized.
Problem
stageTrackerModifiers (src/pkg/dashboard/stage_tracker.go) emits every marker it finds — needs-human, needs-decision, unauthorized — regardless of the row's stage, and the sentinel chip (stageTrackerSentinelChipHtml in static/index.html) draws on every lane but 085. All of them also count under Needs attention (stageTrackerNeedsAttention). While the PR is still before the merge gate none of these is something a person can act on, so they are noise that hides the pills that are actionable (hold, draft, stalled).
Proposal
Split the pills into two classes, computed server-side with an explicit actionable_now flag per modifier:
Actionable now — always rendered: hold, draft, stalled, regressed (muted stage ↓ unless parked on a person, as today), needs-rebase, blocked, and unauthorizedonly when the refused step blocks the current stage (unauthorized:approve-workflow-runs — held workflow runs mean CI cannot even start; rationguard#397 is this carve-out, since waiting for the gate would waste the whole CI / review cycle).
Merge gate — held back (payload deferred_modifiers) while the PR's stage is before the merge-gate band (stage/080, read from stagelabels.AwaitingMergeAdmission, the same boundary adoption yields at): sentinel (notice and real alert alike), needs-human, needs-decision, and unauthorized for a merge-time step (merge / branch-update 403). Once the PR reaches 080+ they render exactly as today and count toward Needs attention.
The merge-gate cell text ("Sentinel alert · needs human", "Awaiting human: …") is unchanged; issues on their own stages keep every pill; an issue riding its covering PR follows the PR. Labels are untouched — presentation and counting only. Documented as a pill → class → when-shown table in src/docs/dashboard-sections.md.
@clubanderson this issue was closed by @hivecommons-hive[bot] as completed.
If this was closed by a merged PR, the fix only takes effect once it ships in a tagged release and your deployment updates to it — check your running version against the fix before concluding the fix failed.
If you are still seeing the problem, comment /reopen and it will be reopened for you — you do not need write access. Please add what you are still observing (running version, logs, steps) so it is not closed the same way again.
Activity
🌱 dashboard: defer merge-gate pills until the PR reaches the gate
🌱 dashboard: defer merge-gate pills until the PR reaches the gate
🌱 dashboard: defer merge-gate pills until the PR reaches the gate
github-actions commentedon Oct 28, 2026
@clubanderson this issue was closed by @hivecommons-hive[bot] as completed.
If this was closed by a merged PR, the fix only takes effect once it ships in a tagged release and your deployment updates to it — check your running version against the fix before concluding the fix failed.
If you are still seeing the problem, comment
/reopenand it will be reopened for you — you do not need write access. Please add what you are still observing (running version, logs, steps) so it is not closed the same way again.🌱 dashboard: defer merge-gate pills until the PR reaches the gate (hi…