fix(mobile): the iPhone Duo's inspector panes use the full column#23152
On an unfolded iPhone Duo, the Git, Files and Changed files inspector panes stopped 84 pt short of the vertical bar. The Git list sat in a third of the column with its title cut off, and the Files header had no room for its search button.
Each pane hosts its own native stack inside the inspector column, and the column already insets its body for the vertical bar. UIKit still gives a nested navigation controller's screens the bar's inset wherever they sit, so the pane headers and the Git list took it a second time.
The inspector column now leaves horizontal insets to its panes. Their native stacks reach the column edge, where UIKit's inset is correct, and NativeInspectorContent pads each pane's content once with the column's insets. It replaces NativeSheetContent, whose own provider re-read the nested screen's inset.
The second commit fixes the Changed files list. It padded its top by the column's safe area plus a fixed 44 pt bar. On the unfolded Duo the column's top inset is 0, because the status bar sits in the vertical bar, while the pane's header ends 82 pt down, so the first file started under the header. The list now lets UIKit inset it for the header, as the Git and Files panes already do.
Verification
Measured with accessibility frames and an lldb safe-area dump on the Duo simulator (951 pt wide, with the vertical bar from x = 867):
| Before | After | |
|---|---|---|
| Git list rows | x 600–771 | x 600–855 |
| Git title | ends at x 783 | ends at x 867 |
| Files header | close button only | close and search |
| Changed files, first row | y 56, under the header (ends at 82) | y 94 |
Mobile typecheck passes. Android is unchanged because the wrapper only applies with native workspace columns. On iPad the column has no side insets in landscape, so the change doesn't apply there; it hasn't been checked on an iPad device.
| Git: before | Git: after |
|---|---|
| Before: Git inspector list squeezed into a third of the column | After: Git inspector list reaches the vertical bar |
| Files: before | Files: after |
|---|---|
| Before: Files header without search | After: Files header with close and search |
| Changed files: before the second commit | Changed files: after |
|---|---|
| Before: first file under the header | After: first file below the header |
Implemented with Claude Opus 5.5 in Claude Code, running in T3 Code.
🤖 Generated with Claude Code
Checks
- SuccessfulCodeRabbitGitHub
Review completed
- Successful
Skipped - Not affected
- Skipped
- Skipped
- Skipped
- SuccessfulRemove preview downloadGitHub
- SuccessfulCheckGitHub
- Skipped
- SkippedRelease SmokeGitHub
- SkippedTest WebGitHub
- SkippedRustGitHub
- SuccessfulTestGitHub
- SuccessfulBuild and TypecheckGitHub
- SuccessfulTest Server 8GitHub
- SuccessfulTest Server 2GitHub
- SuccessfulTest Server 5GitHub
- SuccessfulTest Server 6GitHub
- SuccessfulTest Server 1GitHub
- SuccessfulTest Server 7GitHub
- SuccessfulLintGitHub
- SuccessfulTest Server 3GitHub
- SuccessfulChangesGitHub
- SuccessfulTest Server 4GitHub
- SkippedEAS PreviewGitHub
- Skipped
- SuccessfulLabel PR sizeGitHub
- Skipped
- SuccessfulLabel PR 23150GitHub
- CancelledLabel PR sizeGitHub
- CancelledLabel PR 23150GitHub
- Cancelled
- SuccessfulNative fingerprint diffGitHub
- CancelledRelease SmokeGitHub
- CancelledTestGitHub
- CancelledTest WebGitHub
- CancelledBuild and TypecheckGitHub
- SkippedDeploy web previewGitHub
- CancelledRustGitHub
- FailedCheckGitHub
- SkippedDeploy web previewGitHub
- Skipped
- SkippedEAS PreviewGitHub
- CancelledNative fingerprint diffGitHub
- CancelledTest Server 6GitHub
- CancelledTest Server 2GitHub
- CancelledTest Server 1GitHub
- CancelledTest Server 3GitHub
- CancelledTest Server 7GitHub
- CancelledTest Server 8GitHub
- CancelledTest Server 4GitHub
- CancelledTest Server 5GitHub
- CancelledLintGitHub
- CancelledChangesGitHub
- Skipped
- SuccessfulCollect PR targetsGitHub
- SuccessfulPrepare PR size configGitHub
- SuccessfulPrepare PR size configGitHub
- SuccessfulCollect PR targetsGitHub
Approvability
Verdict: Approved at 5164c04
Macroscope's review found this PR approvable — This is a focused iOS safe-area/layout bug fix for existing inspector panes, with behavior gated to native workspace-column layouts and no changes to Android or unsupported paths. The small shared wrapper and automatic list inset adjustment address the duplicated and fixed insets without introducing a new capability or product default.
No code changes detected at 16b5b60. Prior analysis still applies.
You can add or adjust custom eligibility rules. Learn more.
Thread transfer impact
⚠️ The latest CI run did not produce a thread transfer result for 16b5b60.
This comment will update automatically after the next completed run.
Important
Review skipped
Review was skipped as selected files did not have any reviewable changes.
⚙️ Run configuration
- Configuration used: Path: .coderabbit.config.ts
- Review profile: CHILL
- Plan: Team
- Run ID:
a3232136-d2da-486f-8123-e5977db8b859
📥 Commits
Reviewing files that changed from the base of the PR and between 992a380de8625b14b3b65cdc8aa65107f2e0bc8d and 16b5b60a8a53d635e4f213c649cdd5e035e82073.
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. 🎉
ℹ️ Recent review info
⚙️ Run configuration
- Configuration used: Path: .coderabbit.config.ts
- Review profile: CHILL
- Plan: Team
- Run ID:
679b9b7f-bbc3-431e-8006-0ce407234062
📥 Commits
Reviewing files that changed from the base of the PR and between da2fd1536c0c5dca1a4eb645df7e38a473c6b584 and 992a380de8625b14b3b65cdc8aa65107f2e0bc8d.
📒 Files selected for processing: 1
apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx
Limit details: You’ve used all 10 included reviews currently available.
📝 Walkthrough
iOS inspector content now uses
NativeInspectorContentfor horizontal safe-area handling. The inspector column disables its own horizontal insets. The review file list uses automatic iOS inset adjustment and fixed padding.Changes: Inspector Insets
Layer / File(s) Summary Inspector inset wrapper and column configuration
apps/mobile/src/native/NativeInspectorContent.tsx,apps/mobile/src/native/NativeSheetContent.tsx,apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsxAdded NativeInspectorContentwith conditional horizontal safe-area insets, removedNativeSheetContent, and disabled automatic horizontal insets on the inspector column.Apply inspector insets to content
apps/mobile/src/features/files/thread-file-navigator-pane.tsx,apps/mobile/src/features/review/ReviewSheet.tsx,apps/mobile/src/features/threads/git/GitOverviewSheet.tsx,apps/mobile/src/features/threads/thread-inspector-content-stack.tsxWrapped iOS file, review, Git overview, and inspector error content in NativeInspectorContent. The review file list now uses automatic iOS inset adjustment and fixed padding.Priority: ⬇️ Low
Estimated code review effort: 2 (Simple) | ~12 minutes
Change: Bug fix
Suggested reviewers:
pixpmusic
Merge Risk: ⚪ Minimal · up to 992a3
No actionable merge-blocking issue was established for the inspector layout change. It is ready to merge after normal checks.
Pre-merge checks: Passed 3 · Failed 1
Failed Failed checks: 1 warning
Check name Status Explanation Resolution Description check Warning The description clearly explains the problem, implementation, affected platforms, verification results, limitations, and includes before-and-after UI evidence. It does not include the required Scope a… Add a Scope and approval section. Link the triaged issue or maintainer approval with the approval comment, or explain why this focused fix is an obvious bug that qualifies without prior approval. Passed Passed checks: 3 passed
Check name Status Explanation Title check Passed The title clearly identifies the mobile iPhone Duo inspector-pane layout fix and matches the main change. 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: Description check
Explanation
The description clearly explains the problem, implementation, affected platforms, verification results, limitations, and includes before-and-after UI evidence. It does not include the required Scope and approval section or explain why the fix qualifies for an exemption.
Resolution
Add a Scope and approval section. Link the triaged issue or maintainer approval with the approval comment, or explain why this focused fix is an obvious bug that qualifies without prior approval.
✨ Finishing Touches: 💡 1
📝 Generate docstrings
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
- Commit to this branch
- Create a new PR
🛠️ Fix failing CI checks: 💡
- Commit to this branch
- Create a new PR
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.