feat(mobile): bring GitLab and Bitbucket code review up to the GitHub workflow (part 2/2) - #6021
Conversation
Code Review SummaryStatus: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)CRITICAL
WARNING
SUGGESTION
Files Reviewed (4 files)
Fix these issues in Kilo Cloud Previous Review Summary (commit 35421e1)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 35421e1)Status: No Issues Found | Recommendation: Merge Files Reviewed (1 files)
Reviewed by grok-4.6 · Input: 433.4K · Output: 29.5K · Cached: 1.8M Review guidance: REVIEW.md from base branch |
35421e1 to
fc000dc
Compare
… workflow (part 2/2) #6021
8d3940d to
2c804a5
Compare
| {/* The three write sheets (s6) are siblings of the GitHub route's | ||
| sheets: they mount inside this layout, so they see the provider | ||
| scope and this PR's single `PendingReviewProvider` queue. */} | ||
| <Stack.Screen name="comment-composer" options={sheetOptions} /> |
There was a problem hiding this comment.
CRITICAL: Provider stack never registers index, so GitLab/Bitbucket reviews open the comment composer
The GitHub sibling layout registers index first because unregistered routes sort after registered ones — without that, the initial screen is the comment-composer formSheet. This layout only registers the four sheets, so navigating to a provider PR/MR (inbox, badge, paste, deep link) can present the composer instead of the overview.
Register <Stack.Screen name="index" /> before the sheet screens, matching apps/mobile/src/app/(app)/pr-review/[owner]/[repo]/[number]/_layout.tsx.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| @@ -1,4 +1,36 @@ | |||
| diff --git a/android/src/main/java/expo/modules/router/ExpoRouterModule.kt b/android/src/main/java/expo/modules/router/ExpoRouterModule.kt | |||
There was a problem hiding this comment.
WARNING: Patch newly deletes ExpoRouterModule.kt with a truncated diff header
This deletion is not in the base patch. There is no ---/+++ hunk, so apply may fail the whole patch (losing the catch-all ranking fork and the existing linking fix) or delete Expo Router's Android native module. Keep the getStateFromPath-forks.js ranking fork; drop the Kotlin deletion header.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| const gitlabStatus = useGitLabStatus(scope); | ||
| const bitbucketReadiness = useBitbucketReadiness(scope); | ||
|
|
||
| const github = usePrInbox(enabled); |
There was a problem hiding this comment.
WARNING: GitHub inbox is always queried, so an unconnected GitHub account poisons the merged list
GitLab and Bitbucket are gated on connected === true. GitHub is not: usePrInbox(enabled) always runs. githubPrReview.listInbox throws PRECONDITION_FAILED when there is no user token. The entry route is a connect-gate pass-through so GitLab-only users can paste links.
When GitLab has rows, GitHub's first-page error becomes laterPageError and the footer shows "couldn't load more" forever. When GitLab is also disconnected, allFailed is true and the empty state is the GitHub reconnect notice.
Gate GitHub the same way as the other providers (treat not-connected as enabled: false, not an error).
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| if (search.trim() || !bridge) { | ||
| return null; | ||
| } | ||
| if (bridge.sections.some(section => section.key === 'bitbucket')) { |
There was a problem hiding this comment.
SUGGESTION: Org-only Bitbucket note is keyed on a provider section, so recents-only Bitbucket still shows it
buildRepoSections only emits key: 'bitbucket' for non-recent Bitbucket rows. An org whose Bitbucket repos all sit under Recently used has no bitbucket section, so this still renders "Bitbucket is available for organizations only" under real Bitbucket recents. The same predicate fires in an org with zero Bitbucket rows.
Suppress the note when any listed row (including recents) is Bitbucket, or when the session already has an organization.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Changelog for users
Changelog for maintainers
/mergesheet ahead of the catch-all identity route; universal links add**tail rows before the GitHub row, and the AASA adds both provider paths.toSortedandtoReversed; the diff replaces both with copy-then-sort or copy-then-reverse.E2E proof
[e1] shared GitLab link opens the provider review in-app — iOS simctl openurl https://app.kilo.ai/pr-review/gitlab/igor352/kilo-e2e-personal/1 handed off to Kilo; digest and e1-review-screen.png show Merge request !1, E2E review fixture, Overview/Files/Discussion.
e1-gitlab-handoff.mp4.trim.mp4
E2E proof — log excerpts
/Users/igor/.local/share/kwf/sections/bring-mobile-gitlab-and-bitb-3792/e2e-web/e1-stale-head.logOwner request for the stack
PR stack (merge bottom to top)
kwf/bring-mobile-gitlab-and-bitb-3792-l1)kwf/bring-mobile-gitlab-and-bitb-3792-l30) ← this PR