Skip to content

fix(mobile): outdated pull request approvals are labeled, not shown as current - #36868

Open
juccul wants to merge 2 commits into
pingdotgg:mainfrom
juccul:fix/mobile-outdated-pr-approvals
Open

juccul wants to merge 2 commits into
pingdotgg:mainfrom
juccul:fix/mobile-outdated-pr-approvals

Conversation

@juccul

@juccul juccul commented Nov 14, 2026

Copy link
Copy Markdown
Contributor

Problem

On mobile, a pull request whose only approval came before its newest commit contradicts itself. The collapsed review row reads "Request a review · None assigned", but expanding it lists the reviewer with a green approved check. Seen on #34380: macroscopeapp approved ca98bdec on Nov 11, then bc19f85f was pushed on Nov 14.

Change

pullRequestReviewSummary already ignores approvals that predate the newest commit when picking the summary. It now flags those reviews as outdated, and the expanded list draws them with a muted check, an "Outdated" label, and an "Approved before the latest commit" accessibility label. The summary rule is unchanged.

Scope

Small fix for an obvious display bug in one screen, so no issue. The pull request list row still uses the server's reviewDecision, which doesn't apply the outdated-approval rule. That is a separate question for web and server, so it is left alone here.

Verification

  • Extended the existing stale-approval case in pullRequestStatus.test.ts. It fails on main (expected [ undefined ] to deeply equal [ true ]) and passes with the fix.
  • vp run check:changed passes.
  • Android emulator, dev client against a local dev server: opened feat(voice): add a native streaming transcription toggle #34380 and expanded the review row.
Before After

Not checked on iOS. The changed screen has no platform-specific code.

@github-actions github-actions Bot added vouch:unvouched Author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Nov 14, 2026
@juccul
juccul marked this pull request as ready for review November 14, 2026 18:24
@coderabbitai

coderabbitai Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 5108dd4 and 34453b9.

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

No actionable comments were generated in the recent review.

Walkthrough

Review summaries now flag approvals made before the newest commit as outdated and exclude them from approved-review counts. Reviewer rows show the outdated status with distinct text and tint.

Changes: Approval status

Layer / File(s) Summary
Calculate outdated approvals
apps/mobile/src/features/pull-requests/pullRequestStatus.ts
Each review now includes an outdated flag for approvals created before the newest commit. The approved-review count excludes outdated approvals.
Display and test outdated status
apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx, apps/mobile/src/features/pull-requests/pullRequestStatus.test.ts
Reviewer rows show an “Outdated” label, use distinct accessibility text, and apply the fallback tint to outdated approvals. The test checks the outdated flag.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: saphid

Merge Risk: Minimal · previous review 5108d

Pull request approvals made before the latest commit are now labeled as outdated instead of looking current. The change is small and low-risk, and nothing blocks merging.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: outdated pull request approvals on mobile are now labeled instead of being shown as current. It follows the conventional commit form and matches the summary, which fla…
Description check Passed The description follows the repository template. It has Problem, Change, Scope, and Verification sections. The Problem section states the expected and observed behavior with a reproduction case (#3438…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: outdated pull request approvals on mobile are now labeled instead of being shown as current. It follows the conventional commit form and matches the summary, which flags outdated approvals in pullRequestReviewSummary and renders them with an Outdated label.

Full details: Description check

Explanation

The description follows the repository template. It has Problem, Change, Scope, and Verification sections. The Problem section states the expected and observed behavior with a reproduction case (#34380). The Change section explains the flag and display update. Scope explains why no issue is linked and why the list row is out of scope. Verification lists a failing-then-passing test, the changed-files check, a manual Android emulator check, before/after screenshots, and notes that iOS was not checked. The template asks for the model and harness used, and the description does not state them. This is a minor gap.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 01c84c7 and 5108dd4.

Files selected for processing: 3

  • apps/mobile/src/features/pull-requests/PullRequestStatusRows.tsx
  • apps/mobile/src/features/pull-requests/pullRequestStatus.test.ts
  • apps/mobile/src/features/pull-requests/pullRequestStatus.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

@juliusmarminge juliusmarminge added the takeover:in-progress A takeover lead is working on this PR label Nov 14, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@juliusmarminge juliusmarminge added takeover:needs-julius Takeover done; route gate says Julius decides and removed takeover:in-progress A takeover lead is working on this PR labels Nov 14, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). takeover:needs-julius Takeover done; route gate says Julius decides vouch:unvouched Author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants