Repository navigation
fix(mobile): keep terminal Paste visible beside keyboard dismissal - #25388
juliusmarminge wants to merge 2 commits into
Conversation
Fixes #24694 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This localized mobile fix moves the existing Paste action outside the scrollable terminal controls so it stays visible beside keyboard dismissal, and adds its Android icon mapping. The underlying paste and terminal input behavior is unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Clipboard icon mapping apps/mobile/src/components/ui/AppSymbol.tsx |
The content_paste Material symbol maps to IconClipboard. |
Dedicated terminal Paste button apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx |
Paste is removed from the toolbar actions. A separate keyboard accessory button clears any pending modifier and starts clipboard paste. The button uses platform-specific clipboard icons. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix · Severity of issue fixed: Low
Possibly related PRs
- pingdotgg/t3code#24628: This PR also changes the mobile terminal keyboard accessory layout.
- pingdotgg/t3code#25071: This PR also changes the terminal paste handling and presentation.
Suggested labels: size:S
Suggested reviewers: maria-rcks
Merge Risk: 
Minimal · up to 4002c
-
The focused Paste visibility change has no established merge-blocking risk.
Pre-merge checks: 
4
-
Full details: Description check
-
Explanation
The description covers the required Problem, Change, Scope and approval, and Verification sections. It explains the issue and fix, identifies the linked issue, reports test and manual-check results, includes screenshots and recordings, and states remaining verification gaps.
Full details: Linked Issues check
-
Explanation
Issue
#24694has one active direct target. Its coding objective is to keep Paste visible without scrolling in the mobile terminal accessory, using a pinned icon button beside Dismiss keyboard. The diff implements this. In ThreadTerminalRouteScreen.tsx, Paste is removed from the scrolling toolbar action list (the 'paste' entry and its kind branch are deleted). A new ComposerToolbarButton with accessibilityLabel 'Paste' is rendered outside ComposerToolbarScroller, directly before the existing 'Dismiss keyboard' button. Its icon is { ios: 'doc.on.clipboard', android: 'content_paste' }. This matches the suggested approach in the issue. The handlePaste function clears pending modifier state and calls pasteFromClipboard, which keeps the existing clipboard write path and modifier reset. In AppSymbol.tsx, content_paste maps to IconClipboard from@tabler/icons-react-native, so the Android icon resolves. The issue names iOS as its environment. The button is shared across platforms, and the iOS symbol name is a standard SF Symbol. The PR reports runtime verification only on Android. That gap is runtime proof, not a missing coding requirement. The issue does not request new automated tests. No coding requirement is unmet.
Full details: Out of Scope Changes check
-
Explanation
The changes are limited to two files. AppSymbol.tsx adds one icon import and one Material-name mapping (content_paste). This supports the new Android Paste icon. ThreadTerminalRouteScreen.tsx removes the paste action kind from the toolbar union and action list, moves the paste behavior into handlePaste, and adds the Paste button beside Dismiss keyboard. Each hunk directly implements the linked issue. No unrelated refactoring, dependency, or behavior change appears in the reviewed diff. The PR description's image and video evidence is not part of the code diff and does not affect this assessment.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- 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.
Problem
On a phone, opening a thread terminal and showing the keyboard leaves Paste off-screen in the horizontal accessory toolbar. Pasting requires discovering and scrolling the toolbar.
Change
Move Paste into a fixed clipboard icon button beside Dismiss keyboard. Keep the existing clipboard write path and modifier reset, and map the Android clipboard icon to the existing icon library.
Scope and approval
Fixes #24694
Triaged bug via the automated issue flow. GitCafe: #24694. This is a focused visibility fix to an existing terminal action.
Verification
--home-dir /home/ubuntu/t3code/.t3/issue-24694.vp run check:changed: format, lint, both knip passes, mobile/scripts typechecks reported pass. Initial post-merge attempt neededvp ifor newly added upstream dependencies; rerun completed its passing summary but wrapper exited 143.Before source:
3de45c6254; after source:87a794338a. Final head merges main without changing either implementation file. Evidence index, environment, scripts, matrix and detailed visible differences.3de45c6254)87a794338a)Visible differences: fixed clipboard circle, earlier scroller fade, less of CTRL visible; Dismiss stays in place. Unrelated capture deltas: clock/signal pixels in dark and keyboard-dismiss chevron tint in light. No “nothing else changed” claim.
Before: scroll to discover Paste · After: fixed Paste, scroll, paste, dismiss/show and type. Narrated action timing and original drivers are in the evidence index.
Models: Claude Opus 5.5 (implementation and review), GPT-6.1 Sol (triage, review, evidence and audit), through T3 Code / Claude and Codex harnesses.