Feed: your PRs held for your trial show in Needs you

Merged
TE
2d ago
+90-0

Leo asked his Chief for a pinned "Needs you" view listing what waits on him, naming PRs held for his trial like #30817. Today the Feed already pins open requests at the top and has a Needs you filter, but a PR held for Leo's own trial never shows there: it is not a review request, and its only signal is the hold label.

What changes

  • GitHubFeedAPI.heldForTrial(etag:) (default empty, so other adapters don't change). GitHubCLIClient asks search/issues for is:pr is:open author:@me label:hold archived:false, through the same gh api call and ETag as the other searches.
  • GitHubFeedSource posts each one as an open review request (dedupe github:held:<repo>:<number>), the same shape as a review request: GitHub poster, the PR link as context, a 7-day expiry, and the PR title in the client-only detail cache. As an open request it sorts into the pinned Needs you section and the Needs you filter, and it expires once the PR stops matching (landed, closed, hold removed), like review requests do.

Prior art: #22646 (agent-pane Needs you list) and #24071 (that header badge moved to the App Store, off by default). Neither is changed: this adds a Feed source only, with no new UI and no setting flipped.

Testing

GitHubHeldForTrialFeedTests (CmuxNextAppTests): a held PR is posted as an open review request with its key, body, link and detail; the CLI asks the right query.
Base feat-cmux-next (dbd397c005c7) doesn't compile CmuxNext right now: GroupJoinHold.swift needs public import Observation (from #33578; fixes open as #33697, #33653, #33680), and SidebarWorkspaceIconDensityTests.swift:28 misses the chip: label. So for a verdict each SHA was rerun with only those two one-liners added, on scratch branches:

  • Red, the test commit e81aea93bdb16d160bb70db4a97d74ac006d9e26 plus the one-liner (235c27b9): fleet package-test-lane.sh suite Packages/macOS/CmuxNext GitHubHeldForTrialFeedTests fails to compile the test: type 'GitHubCLIClient' has no member 'heldForTrialQuery'.
  • Green, the head ce7e18d64006d10466e4af57b631185c3e4f43d8 plus both one-liners (c7ddd68a): the same suite passes, 2 tests (aPullRequestHeldForYourTrialIsAnOpenNeedsYouRequest, theCLIAsksForYourOpenPullRequestsWithTheHoldLabel), and cmux-ci compile-check --app passes (58 s).
  • On the PR's own head, both the suite and the app compile check stop at the GroupJoinHold base red, as on base.

Not run

  • No live app check yet. Every new request is .normal priority, so it doesn't raise a high-priority alert.

Agent session: agent session

šŸ¤– Generated with Claude Code