Repository navigation
Conversation
Size rows and drag geometry from app typography and system font scaling. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
…title Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This focused mobile UI fix dynamically sizes thread arrangement rows and section headers for larger app and system font settings while preserving the existing default dimensions. Its runtime impact is confined to the arrangement screen’s layout and drag geometry, with targeted test coverage and no production-default or infrastructure changes. You can add or adjust custom eligibility rules. Learn more. |
|
Warning Review limit reachedOnly developers with an assigned seat can use this organization's usage-based review budget, and seats here are assigned manually. Ask an admin to assign a seat, or change the review continuation mode in Billing. Next included review available in 31 minutes. View limit details
No actionable comments were generated in the recent review. ℹ️ Recent review info
Walkthrough
Merge Risk:
|
|
Note Written by thanks @only21mil. your shared typography sizing and drag geometry are preserved, along with all contributor commits. i merged current main ( verification at
fresh native rendering, drag/drop, resizing during a drag and before/after captures remain unverified. this vm has no attached android device, and the device service reports "agent device access is turned off for this environment." the default web/server dev process started successfully and was stopped; chrome cannot exercise this native-only sheet. no new images are claimed, and the original native evidence remains in the body. before merge, check long titles at appearance size 22 plus enlarged system text, then reorder, move between sections and expand settled/show more on this head. this takeover is waiting for that native verification. |
|
Note Written by Verified in a real dev environmentno changed behavior could be exercised on this linux boat vm. this is an unverifiable result, not a passing runtime verification. read the description, discussion, commit authors and full three-file diff at the change is confined to the native mobile arrangement sheet and its sizing helper/tests. users reach it through a thread row menu > arrange threads, with appearance text size 22 and enlarged system text. web chrome does not render this native sheet. checked current native access through t3 device tooling: followed the repository mobile verification skill, which requires stopping verification when device tools are unavailable. no dev server, provider turn, screenshots or recording were started or produced. no code, branches, labels or pr state were changed. Not verifiedmain reproduction and candidate native rendering remain unverified. no available device path could exercise title clipping, scaled section labels, floating drag previews, reorder/drop offsets, edge autoscroll, cross-section moves, settled/show more, or cancellation when dimensions change during a drag. no ios/android client or real codex gpt-6.1-sol turn was exercised. before/after images and interaction recording require enabled native device access and matching app data. the existing contributor evidence was read but is not claimed as fresh verification. |
|
Note Written by Verified on Android emulator (API 35) against a real dev serververified head set appearance text size to 22 pt and android system font scale to 1.3. disabled the working section through settings to enable active reordering. reproduced the clipped second title line on the pr's main base dragged thread 4 below thread 2: order changed from 4,3,2,1 to 3,2,4,1. the floating preview and drop position matched the taller rows. moved thread 3 into pinned, moved thread 2 into settled, expanded settled, and dragged thread 2 back into active. counts and the main thread list updated; read-only database inspection confirmed persisted ordering, pinning, and settlement. inspected both full-size captures and the recording, and checked uploaded mp4 playback and seeking. the inline animation below trims the idle interval between reorder and pin. no code changes or push were needed. existing ci reports 28 successful, zero failing, zero pending checks; these were not rerun. Not verifiedios cannot run on this linux vm. physical devices, changing dimensions during a drag, edge autoscroll, settled/show more pagination, other themes/text sizes, and today's github/main were not exercised. web and desktop do not render this native-only sheet. no new automated checks were run during this verification-only pass. |



Problem
Arrange threads gives every thread 56 points of height, including its drag preview. At Appearance text size 22, two title lines need 64 points before system font scaling. On iOS, the fixed row shows only one truncated line. On Android, the second line is cut at the row boundary. Section labels also have a fixed height.
To reproduce, increase Appearance text size, use a long thread title, and open Arrange threads. System text scaling makes the mismatch larger.
Change
Calculate row and section heights from the existing typography metrics, app text size and system font scale, keeping the current minimums. Use those dimensions for list offsets, drag positions and preview bounds. Cancel an active drag when row dimensions change so its coordinates cannot refer to the old layout.
Scope and approval
No issue or discussion exists. This is a small, focused fix of an obvious bug: rows clip their own titles at larger text sizes. It sizes the existing rows from the existing typography metrics and adds no setting or workflow.
Verification
pnpm exec vp test run --project unit src/lib/layout.test.ts -t "thread arrangement text sizing": fails against the base sheet's fixed 56/48 dimensions exposed through a temporary adapter. Base has no sizing helper; the adapter preserves its original arithmetic.pnpm exec vp test run --project unit src/lib/layout.test.ts: all 8 tests pass.pnpm --filter @t3tools/mobile typecheck: passes.vp lint --report-unused-disable-directivesandvp fmt --check: no lint errors; format passes. React warnings remain.Base and this branch (commit 426f976, before merging main) ran production JavaScript in matching native Debug clients on iOS 26.5 and Android 16. Through the UI, set Appearance to 22 pt, enlarge system text, then open a row menu > Arrange threads. The captures show the platform-specific clipping before and the taller rows after. On both platforms the branch also passed recorded drops and five-second holds at the lower edge that scrolled to later rows. Android base and branch both changed the visible order from 12,11,10,9 to 11,10,9,12. Every run was torn down.
The candidate screenshots below were refreshed on iOS and Android after merging main at commit
2f6f653a29, with the original base captures retained for comparison. The five linked recordings remain from before the merge; candidate recordings show commit426f97651f. The refreshed Android list uses Appearance 22 pt and system font scale 1.35. Its preview is a still from a new merged-head recording.The regression fails on the original fixed-height policy exposed through an adapter.
All eight candidate layout tests pass.
On iOS, base titles show one line and candidate titles show two.
On Android, original base title lines are cut at the row boundary; the merged-head candidate rows contain both lines.
Both Android drag previews show Reorder. The merged-head candidate card is taller.
The iOS candidate preview shows its title and Reorder destination.
Recordings of drops within Active: iOS candidate, Android base, Android candidate.
Candidate edge holds scroll to later rows. After each drop, Settled shows one thread: iOS edge hold, Android edge hold.
Not checked: changing text size during a drag, physical devices, or the full repository test suite.
Prior PRs: #18547 by Alex (@PixPMusic) changes Android content framing. #19892 by Jai Khurana (@jaikhuranna) changes arrangement saving. #15957 by Alex Southwell (@saphid) adds in-list dragging. #22032 by @sedillo adds last-message sorting. These address separate changes; this fix reuses no code from them.
Production fix, tests, device verification, PR description and images written with GPT-6.1 Sol in T3 Code Nightly.
🤖 Generated with GPT-6.1 Sol in T3 Code Nightly