Skip to content

Activity Monitor: blocked pill never names the blocking PR, and hive's own unblock leaves rows blocked until the next enumeration #14952

Closed
1 of 1 issue completed

Description

@clubanderson

Observed 2026-10-28 13:18Z on hive's hive, Activity Monitor (GET /api/stage-tracker), reviewer "Review backlog" spin-off issues #14863 / #14867 / #14868 / #14869 / #14926.

1. The blocked pill never says what blocks it

Each of those issues carries <!-- hive:blocked-on pr=hivecommons/hive#NNNN --> and a "Blocked on PR #NNNN." line (written by the review-backlog filer), and the enumeration already files them with reason blocked on hivecommons/hive#NNNN. Yet the tracker row renders a bare grey blocked pill, "Open · blocked · since 7h", caption "No stage recorded yet", and nothing in the payload names the blocker (blocked_on is the GitHub "blocked by" dependency list from #14765 and is empty here).

Fix: parse the marker (body when at hand, else the filtered reason) server-side into blocked_on_pr: {repo, number, url, state}; state from the hive's caches only (status snapshot open PRs, ForgeState, recent-merge ring — never a fresh GitHub call). Pill reads blocked on #14862 and links to the PR; tooltip Blocked on PR hivecommons/hive#14862 (open) — lifts when it merges; re-triage if closed unmerged; caption Blocked on PR #14862 — lifts when it merges; row title / aria carry it.

2. Stale blocked after hive's own unblock

#14863 / #14867 / #14869 were blocked on PR #14862, closed (superseded) at 12:41Z. The review-backlog block sweep posted <!-- hive:unblocked --> and removed blocked within seconds, and the webhook re-read patched the governor's cached snapshot (issues 7 → 10 at 12:41Z). Forty minutes later the tracker payload still listed label blocked (updated_at 06:05Z) and the UI showed them blocked.

Root cause: a reconcile enumeration that started at 12:38Z (before the unblock) finished at ~12:42Z and was stored with lastActionable.Store(actionable), overwriting the patched snapshot with its pre-unblock copy of the issues (snapshot_age went 21m → 4m in the logs). Cached eval cycles then rebuilt status from that stale snapshot; once the dashboard's 30-minute webhook replay window expired the rows reverted to blocked until the next full enumeration (~66 min). The hive's own label removal also never asked for a targeted re-read of its own — it relied on the inbound unlabeled webhook.

Fix: (a) the governor remembers applied webhook re-reads on the snapshot and replays those newer than a reconcile pass's start onto the pass's result before publishing it (compare-and-swap, so a patch landing meanwhile is not lost); (b) a github.ItemRefreshHook fired by every hive-side blocked removal (unblockIssue, 5 sites) that invalidates the tracker cache and queues the same targeted re-read an inbound label webhook gets.

The ForgeState label cache already has write-through for the hive's own label edits (forgeWriteThrough), so no change is needed at that level.

Activity

  1. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Oct 28, 2026
  2. hivecommons-hive commented on Oct 28, 2026

    @hivecommons-hive
    Contributor

    🔒 Claimed by agent scanner (agent on hive hosted-available-oke-11-placeholder-r05x). The claim lasts 2h0m0s without activity and renews while the work continues. Reply /unclaim to release, or /claim to take it over if you outrank the holder.

  3. hivecommons-hive commented on Oct 28, 2026

    @hivecommons-hive
    Contributor

    Split: #14965 fixes part 1 (the blocking PR is named on tracker rows) and the root cause of part 2 (reconcile passes replay newer webhook re-reads before publishing, using compare-and-swap). Part 2b, the ItemRefreshHook on hive-side blocked removals, is tracked in #14964.


    🐝 Hive Agent: scanner | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

    — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

  4. added a commit that references this issue on Oct 28, 2026
    a748632
  5. hivecommons-hive commented on Oct 28, 2026

    @hivecommons-hive
    Contributor

    🔓 Claim by agent scanner released (holding agent relaunched).

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

    has-open-prhelp 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