Before submitting
Area
apps/mobile
Steps to reproduce
- On Android, open a thread and focus the composer.
- Type
@ plus a query that returns more rows than fit in the picker, e.g. @Rev in a project with several matching threads and files.
- Try to scroll the picker by swiping up inside it.
Expected behavior
The list scrolls, so rows below the fold can be reached.
Actual behavior
Nothing moves. The picker is capped at 180px, the fifth row is cut off at the bottom edge, and everything beneath it is unreachable. Tapping a visible row still works.
Impact
Major degradation or frequent failure. Only the first four results can be picked. With @, up to five thread matches are listed ahead of files, so a short query can leave no file reachable at all.
Version or commit
main @ 4ee6bfd
Environment
Android 16 emulator (Pixel), T3 Code Dev client built from the commit above. Originally noticed in the installed mobile app. iOS not tested.
Screenshots
After swiping up inside the picker; it is unchanged, with the fifth row still clipped:
Suspected cause (not confirmed)
ThreadComposer.tsx renders the popover in a wrapper that sits outside its parent's bounds:
<View className="absolute inset-x-0 bottom-full z-10 mb-2">
<ComposerCommandPopover ... />
On Android, native touch dispatch does not deliver touches to children outside their parent's bounds, so the ScrollView inside ComposerCommandPopover never sees the drag, while React Native's own hit testing still resolves Pressable taps on the rows. That matches what I see: taps work, scrolling does not, and the picker rows are absent from the Android accessibility tree. I have not verified this by changing the layout.
If that is right, it is not specific to @: the same popover serves / commands, $ skills and # pull requests, and NewTaskDraftScreen uses it too. I only tested @ in an existing thread.
Workaround
Type more of the name so the wanted row is in the first four.
Before submitting
Area
apps/mobile
Steps to reproduce
@plus a query that returns more rows than fit in the picker, e.g.@Revin a project with several matching threads and files.Expected behavior
The list scrolls, so rows below the fold can be reached.
Actual behavior
Nothing moves. The picker is capped at 180px, the fifth row is cut off at the bottom edge, and everything beneath it is unreachable. Tapping a visible row still works.
Impact
Major degradation or frequent failure. Only the first four results can be picked. With
@, up to five thread matches are listed ahead of files, so a short query can leave no file reachable at all.Version or commit
main @ 4ee6bfd
Environment
Android 16 emulator (Pixel),
T3 Code Devclient built from the commit above. Originally noticed in the installed mobile app. iOS not tested.Screenshots
After swiping up inside the picker; it is unchanged, with the fifth row still clipped:
Suspected cause (not confirmed)
ThreadComposer.tsxrenders the popover in a wrapper that sits outside its parent's bounds:On Android, native touch dispatch does not deliver touches to children outside their parent's bounds, so the
ScrollViewinsideComposerCommandPopovernever sees the drag, while React Native's own hit testing still resolvesPressabletaps on the rows. That matches what I see: taps work, scrolling does not, and the picker rows are absent from the Android accessibility tree. I have not verified this by changing the layout.If that is right, it is not specific to
@: the same popover serves/commands,$skills and#pull requests, andNewTaskDraftScreenuses it too. I only tested@in an existing thread.Workaround
Type more of the name so the wanted row is in the first four.