Skip to content

feat(web): pull request surfaces — filters & search qualifiers, all-server listing, update branch, smarter diffs, panel follow-ups - #6039

Open
Bil0000 wants to merge 38 commits into
pingdotgg:mainfrom
Bil0000:fix/pr-right-panel-quick-fixes
Open

feat(web): pull request surfaces — filters & search qualifiers, all-server listing, update branch, smarter diffs, panel follow-ups#6039
Bil0000 wants to merge 38 commits into
pingdotgg:mainfrom
Bil0000:fix/pr-right-panel-quick-fixes

Conversation

@Bil0000

@Bil0000 Bil0000 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Follow-ups to the pull request surfaces, from Discord/X feedback.

List: filters, search qualifiers, review status

  • URL-driven filters mirroring GitHub's search: Draft (all / only / hide), Review (Approved / Changes requested / Review required / No reviews), Checks (Passing / Failing). On GitHub they become search qualifiers; elsewhere rows are narrowed service-side from the fields they carry (checks stays host-side; hosts that never summarise reviews aren't judged by the review filter).
  • GitHub-style qualifiers typed into the search bar: label:x, label:"needs design", -label:x, author:login, draft:true|false, review:…, status:… — and any unrecognized key:value token (size:XXL, vouch:trusted) filters as that label, so each repository's own label scheme just works; quoting keeps a token literal text. Typed qualifiers win over the menu; leftover words stay ordinary search text.
  • Rows show their review status ("Approved" / "Changes requested") via PullRequestListEntry.reviewDecision; listings stay ordered by recently updated.

List: every connected server

The page previously listed one environment. It now unions all connected servers that support pull requests: per-environment atoms fanned out through one merge atom, rows tagged with their server, viewer identity / truncation / cursors / project scope all environment-scoped, failures degrading to partial results. A Server filter scopes to one connection; the sidebar link shows when any server qualifies; PR links in chat resolve across servers; right-panel tabs are server-scoped so the same PR from two servers is two tabs (parts adapted from #6108 — thanks @StiensWout). Azure DevOps repositories no longer read as unavailable: the selector hands az the repository name instead of the org/project/_git/repo path.

Detail: base-branch freshness + Update branch

GitHub parity for the out-of-date banner: up to date / "out-of-date with the base branch — changes can be cleanly merged" (with behind-by count, only on a real mergeable verdict) / conflicting. Update branch split button: merge commit by default, "Update with rebase" when the host and viewer allow it (gh pr update-branch [--rebase] through the existing action pipeline; detection via the compare API's behindBy with fork-qualified head refs, since mergeStateStatus only reports BEHIND under strict checks). Capability- and permission-gated end to end; other providers untouched.

Code tab: diffs in reading order instead of alphabetical

orderDiffFiles orders each slice source → tests → generated (lockfiles, snapshots, dist/, minified). Source files follow an import graph parsed from the patch's own lines — dependencies before dependents, deterministic, directory-clustered ties. Tests sit after the implementation they name.

Right panel + summary follow-ups

  • Fix/Ask/resolve-conflicts hand-offs land in the open thread's composer when the panel shows that thread's own PR — matched by project + repository + number, so a second checkout of the same repository prepares its own worktree.
  • Chrome scroll collapse in the panel; smooth reopen at the top; sans font for review annotations; hidden tab-strip scrollbar.
  • Summary: labels row, avatar-only attribution with hover names, capitalized review states, resolved conversations and dismissed approvals collapse (dismissal reason read from the timeline's ReviewDismissedEvent, paginated), approved/dismissed reviews don't offer "Fix in a thread".
  • Correct per-file counts for withheld hunks via PullRequestDiffResult.omittedFileStats.

Verification

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 526c80f1-7ee5-46fe-bda8-4022150be7d9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 10, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 10, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR adds multiple new features including PR list filters, review status display, import-based diff ordering, update-branch functionality, and multi-environment listing support. The scope and new logic introduced warrant human review.

You can customize Macroscope's approvability policy. Learn more.

… summary

An approval review is a verdict rather than a finding, so its comment no
longer offers the fix-in-a-thread hand-off.
GitHub omits hunks for files it will not inline, so the viewer's hunk-sum
counts read -0 +0. The host's own additions/deletions now ride the diff
slice, and the code tab draws every file's counts itself.
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 10, 2026 19:49

Dismissing prior approval to re-evaluate 4095917

@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Aug 10, 2026
Comment thread apps/web/src/components/pullRequest/PullRequestCodeTab.tsx
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 10, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 10, 2026 20:00

Dismissing prior approval to re-evaluate c4e4edc

@Bil0000 Bil0000 changed the title fix(web): right-panel pull request quick fixes fix(web): pull request panel follow-ups — thread hand-off, chrome, summary, diff counts Aug 10, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 10, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 10, 2026 20:10

Dismissing prior approval to re-evaluate 9b66581

Attribution is the avatar alone with the name on hover, the dot
separators go, review states read as words (Changes requested), and a
dismissed review no longer offers the fix hand-off.
@Bil0000 Bil0000 changed the title fix(web): pull request panel follow-ups — thread hand-off, chrome, summary, diff counts fix(web): pull request panel follow-ups — thread hand-off, chrome, comments, diff counts Aug 10, 2026
@github-actions github-actions Bot added the size:XL 500-999 changed lines (additions + deletions). label Aug 10, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 10, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 11, 2026 01:03

Dismissing prior approval to re-evaluate 1c4c08f

@Bil0000 Bil0000 changed the title fix(web): pull request panel follow-ups — thread hand-off, chrome, comments, diff counts feat(web): pull request list filters, review status, smarter diff order + panel follow-ups Aug 11, 2026
@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 11, 2026
Comment thread apps/server/src/pullRequest/GitHubPullRequestCli.ts
Comment thread apps/server/src/pullRequest/PullRequestService.ts
Comment thread apps/web/src/routes/_chat.pull-requests.tsx
Comment thread apps/web/src/components/pullRequest/pullRequestList.logic.ts Outdated
Comment thread apps/web/src/components/pullRequest/pullRequestList.logic.ts
…tory name

Providers that ignore the list filters get their rows narrowed by the
service, and azure-devops resolves its selector to the repository name
az actually accepts instead of the org/project/_git/repo path that read
as unavailable.
Also generalizes search qualifiers: an unrecognized key:value token
filters as the label it names, so each repository's own label scheme
works without a hardcoded list.
GitHub's compare read answers how far behind the base a branch is, and
gh pr update-branch carries the update through the existing action
pipeline with merge or rebase, gated by the host's capability and the
viewer's own updateMethods.
Comment thread apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx
Comment thread apps/server/src/pullRequest/GitHubPullRequestProvider.ts
Comment thread apps/server/src/pullRequest/GitHubPullRequestCli.ts
Comment thread apps/server/src/pullRequest/PullRequestService.ts
Comment thread apps/web/src/components/pullRequest/pullRequestDetail.logic.ts Outdated
The comparison's GraphQL variables now travel as gh flags, the
standalone permissions read fetches the comparison for open pull
requests, and the review filter no longer judges rows from hosts that
never summarise their reviews.
@Bil0000 Bil0000 changed the title feat(web): pull request list filters, review status, smarter diff order + panel follow-ups feat(web): pull request surfaces — filters & search qualifiers, all-server listing, update branch, smarter diffs, panel follow-ups Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant