Skip to content

[scanner] Fire a targeted re-read when the hive itself removes blocked (ItemRefreshHook) #14964

Closed

Description

@hivecommons-hive

Part of #14952 (part 2b).

The PR for #14952 fixes the root cause of the stale blocked rows: a reconcile pass that started before the hive's own unblock no longer overwrites the webhook-patched snapshot (applied re-reads are remembered on the snapshot and replayed onto a pass's result before it is published, compare-and-swap).

What remains is the latency half of the maintainer's prescription: add a github.ItemRefreshHook fired by every hive-side blocked removal (unblockIssue and the other RemoveLabel(..., BlockedLabel) sites in src/pkg/github/issue_blocked.go and src/pkg/github/review_backlog_blocks.go — 5 sites) that invalidates the stage-tracker cache and queues the same targeted re-read an inbound unlabeled webhook gets (dashboard webhookTrackerRefresher / ApplyWebhookItems), so the hive does not depend on the inbound webhook to see its own label edit. Needs wiring from pkg/github through boot into pkg/dashboard plus tests, so it was split out to keep the first PR reviewable. ForgeState already has write-through (forgeWriteThrough); no change there.

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

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
    ContributorAuthor

    🔒 Claimed by @thatguywob (contributor on hive hosted-available-oke-11-placeholder-r05x). The claim lasts 30m0s 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
    ContributorAuthor

    🔓 Claim by @thatguywob released (lease revoked).

  4. hivecommons-hive commented on Oct 28, 2026

    @hivecommons-hive
    ContributorAuthor

    Already delivered by #14957 (merged 2026-10-28T14:37Z into v5), which landed alongside the #14952 root-cause fix rather than as a separate PR:

    • src/pkg/github/item_refresh_hook.go — ItemRefreshHook, SetItemRefreshHook, notifyItemRefresh, and (*Client).unblockIssue which removes BlockedLabel then fires the hook.
    • All five hive-side blocked removals now go through unblockIssue: issue_blocked.go:465,506,562,632 and review_backlog_blocks.go:84 on v5.
    • Wiring: src/cmd/hive/main.go:3697 github.SetItemRefreshHook(b.dashSrv.RefreshSelfEditedItem); src/pkg/dashboard/webhook_tracker_refresh.go:267 RefreshSelfEditedItem invalidates the tracker cache and queues the same targeted re-read an inbound unlabeled webhook gets.
    • Tests: item_refresh_hook_test.go.

    Nothing left for a second PR; closing as completed.


    🐝 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

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

    agent/scannerCreated or modified by the scanner agenthelp 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