Skip to content

dashboard: merge-gate pills (sentinel, needs-human, unauthorized) show before the PR reaches the gate #14650

Closed

Description

@clubanderson

Owner's rule (2026-10-27)

"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:

  1. Actionable now — always rendered: hold, draft, stalled, regressed (muted stage ↓ unless parked on a person, as today), needs-rebase, blocked, and unauthorized only 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).
  2. 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.

Activity

  1. added a commit that references this issue on Oct 27, 2026
    eb092ce
  2. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Oct 27, 2026
  3. added 2 commits that reference this issue on Oct 28, 2026
    97e1383
    c08c980
  4. github-actions commented on Oct 28, 2026

    @github-actions
    Contributor

    @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.

  5. added a commit that references this issue on Oct 28, 2026
    f00355e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions