Repository navigation
fix(mobile): backport iOS thread scroll fix to 1.4.1 - #15808
Conversation
(cherry picked from commit 1945ce8)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused mobile bug-fix backport that updates the keyboard controller and its local patch to preserve iOS thread scroll positions and correct inset math. Its runtime impact is limited to keyboard-aware scrolling; the app version and lockfile changes support the required native store build without introducing a new capability or broader infrastructure change. You can add or adjust custom eligibility rules. Learn more. |
Backports #14808 to the 1.4 store line so App Store users get the iOS thread scroll fix without waiting for 2.0.
On 1.4.0, an iOS thread feed snaps back to the top a few seconds after you open a Working thread, type in the composer, send, or steer. It came in with the Expo 58 bump (#12045). Reanimated 4.7 now syncs settled animated values back into React. react-native-keyboard-controller 1.22.4 left
contentOffsetout of its first animated-props run, so the synced offset was treated as a style, and the next render reset the scroll position to 0.mainalready moved to 2.0.0 and the v2 orchestrator (#2829). This PR therefore targets a newrelease/mobile-1.4branch, cut at 024d49520ea, the commit just before the v2 orchestrator landed. 1.4.0 itself shipped from 4804036e04a. The branch has two commits:main.versionfrom 1.4.0 to 1.4.1.The keyboard-controller bump changes the native fingerprint, so this needs a new store build. An OTA can't reach 1.4.0 binaries.
Shipping
The production EAS workflow runs automatically only on pushes to
main, so this branch needs a manual dispatch after merge:release/mobile-1.4withmode=build,profile=production,platform=ios. The bug is iOS-only, since keyboard-controller only emitscontentOffseton iOS. An Android build would also put 1.4.1 on the Play internal track above 2.0.0.The build is auto-submitted to TestFlight. Releasing it on the App Store is a manual step in App Store Connect. Afterwards, the latest iOS production build will be 1.4.1, which differs from
main's 2.0.0, so the next mobile-touching push tomainwill cut and submit a fresh 2.0.0 build. That is harmless. OTAs frommaincan't reach 1.4.1, becausemain's fingerprint includes the major version (#14944).Verification
tsc --noEmitinapps/mobilepasses on this branch.mainin #14808: opening a Working thread, typing, sending, and steering all keep the scroll position. I did not run a simulator pass on this branch. It has the same keyboard-controller patch and the same thread feed scroll setup (KeyboardAwareLegendListinThreadFeed.tsx).🤖 Generated with Claude Code