[Bug]: Android thread swipe-action labels are cut off with larger text/display sizes#27094
Area
apps/mobile, Android thread-list swipe actions
Summary
The labels below the Settle and Snooze buttons are vertically clipped when system text/display sizing is increased. User-supplied screenshots show only the upper portion of both words below the circular buttons. Clipping is also visible at the smaller of the two supplied sizes.
Steps to reproduce
- Open the official T3 Code Android app.
- In Android Settings, increase Display size and text, including font size. Exact scale factors were not captured.
- Return to the Chats list and partially swipe a thread left to expose Settle and Snooze.
- Inspect the labels beneath the circles.
Expected: the labels' complete glyphs remain visible. Actual: the lower portions are cut off. At the larger setting, the labels also crowd each other.
The screenshots are from a user report, not a reproduction on current main. App version and Android version are not available. Screenshots contain private thread/project names and are deliberately not published.
Source diagnosis
Current main at 08a463e29976617134de01e9341f898bc881d0eb still wraps the scalable AppText in a fixed height: 14 Animated.View in SwipeActionButton:
https://github.com/pingdotgg/t3code/blob/08a463e29976617134de01e9341f898bc881d0eb/apps/mobile/src/features/home/thread-swipe-actions.tsx
AppText delegates to React Native Text without disabling font scaling. A fixed label container cannot grow to its scaled text's measured height. The shared component is used beyond this one Home row, including sidebar/archive actions.
Candidate correction, not yet device-verified
Replace the fixed height with a minimum and prevent shrinking:
| 1 | - { height: 14, justifyContent: "center", paddingTop: props.compact ? 0 : 2 }, |
| 2 | + { minHeight: 14, flexShrink: 0, justifyContent: "center", paddingTop: props.compact ? 0 : 2 }, |
This lets native text measurement determine the label height without capping accessibility scaling. It is a candidate for the vertical clipping only; horizontal crowding at larger sizes needs native verification too.
Verification and remaining work
- Searched issues and PRs for Android font/display sizing, swipe labels, clipping, Settle and Snooze. No matching swipe-label fix found. #24925 addresses system font scaling more broadly.
- The candidate patch applies to the fetched current source with
git apply --check. - No native reproduction, after screenshot, typecheck or repository checks have been run. Direct repository cloning is blocked on this environment and T3's device_list returns "Agent device access is turned off for this environment."
- Per CONTRIBUTING's UI evidence requirement, no unverified PR is being opened. Please reproduce at default and enlarged font/display sizes, including compact/sidebar/archive rows and both Android/iOS where applicable, before submitting the correction.
Reported and investigated with GPT-6.1 Sol, high reasoning effort, through the Codex harness in T3 Code.