fix(ios): scroll short source files from blank space - #10178
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped native iOS bug fix that reuses the existing horizontal scrolling path only for trailing blank space in a single expanded source file. Existing multi-file, collapsed, header, and review-diff interactions are explicitly excluded, with no schema, security, deployment, or default-behavior changes. You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: 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. |
## What's Changed * fix(mobile): keep pending messages in the chat timeline by @juliusmarminge in pingdotgg/t3code#10449 * fix(mobile): show connection status in the floating pill instead of a second one by @juliusmarminge in pingdotgg/t3code#10440 * fix: use Pierre icons consistently for attachments by @juliusmarminge in pingdotgg/t3code#10475 * feat(mobile): open the thread screen as soon as a new task is submitted by @juliusmarminge in pingdotgg/t3code#10435 * fix(devcontainer): make repository setup work by @saphid in pingdotgg/t3code#7875 * fix(projects): prevent invalid script IDs from crashing threads by @saphid in pingdotgg/t3code#10019 * fix(mobile): hide changed-files navigator and restore refresh in raw diff fallback by @lnieuwenhuis in pingdotgg/t3code#9828 * fix(ios): scroll short source files from blank space by @juliusmarminge in pingdotgg/t3code#10178 * feat(mobile): start a new thread on an existing branch by @StiensWout in pingdotgg/t3code#10359 * fix(mobile): improve font-size slider performance and prevent maximum update depth errors by @bbernag in pingdotgg/t3code#7138 * fix(web): keep composer toolbar controls anchored during transitions by @juliusmarminge in pingdotgg/t3code#10478 * fix(web): resize the floating preview from any edge by @juliusmarminge in pingdotgg/t3code#10467 * fix(mobile): prevent chat from disappearing when scrolling by @juliusmarminge in pingdotgg/t3code#10479 * fix(mobile): smooth composer status pill resizing by @juliusmarminge in pingdotgg/t3code#10484 * fix(mobile): release initial scroll target after dragging by @juliusmarminge in pingdotgg/t3code#10483 * fix(mobile): animate thread lifecycle transitions consistently by @juliusmarminge in pingdotgg/t3code#10487 * fix(mobile): restore assistant message bottom padding by @juliusmarminge in pingdotgg/t3code#10491 * fix(mobile): preserve chat rows when toggling commands by @juliusmarminge in pingdotgg/t3code#10492 ## New Contributors * @bbernag made their first contribution in pingdotgg/t3code#7138 **Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260907.1332...v0.0.40-nightly.20260907.1346 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.40-nightly.20260907.1346
* origin/main: (675 commits) fix(web): tolerate servers that predate git identity in project import (pingdotgg#10547) chore(mobile): bump app version to 1.1.0 fix(mobile): wait for native thread scroll before reveal (pingdotgg#10486) fix(mobile): match Working status color to desktop fix(web): remove inserted citations on cancel (pingdotgg#10518) feat(web): group onboarding project import by repository (pingdotgg#10493) fix(mobile): preserve chat rows when toggling commands (pingdotgg#10492) fix(mobile): restore assistant message bottom padding (pingdotgg#10491) fix(mobile): animate thread lifecycle transitions consistently (pingdotgg#10487) fix(mobile): release initial scroll target after dragging (pingdotgg#10483) fix(mobile): smooth composer status pill resizing (pingdotgg#10484) fix(mobile): prevent chat from disappearing when scrolling (pingdotgg#10479) fix(web): resize the floating preview from any edge (pingdotgg#10467) fix(web): keep composer toolbar controls anchored during transitions (pingdotgg#10478) fix(mobile): improve font-size slider performance and prevent maximum update depth errors (pingdotgg#7138) feat(mobile): start a new thread on an existing branch (pingdotgg#10359) fix(ios): scroll short source files from blank space (pingdotgg#10178) fix(mobile): hide changed-files navigator and restore refresh in raw diff fallback (pingdotgg#9828) fix(projects): prevent invalid script IDs from crashing threads (pingdotgg#10019) fix(devcontainer): make repository setup work (pingdotgg#7875) ... # Conflicts: # apps/server/src/provider/builtInDrivers.ts # docs/README.md # docs/user/install.md # packages/contracts/src/settings.test.ts # packages/contracts/src/settings.ts
Horizontal dragging below the last line of a short iOS source file does nothing, even when its lines overflow. Starting the same gesture over a code row works.
Let that trailing blank area target the existing single, expanded, headerless file. Reuse the current pan, overflow and back-navigation guards. The full review screen keeps its existing hit testing because its file headers exclude this fallback. Headerless single-file snippets in inline review-comment cards also gain blank-area scrolling. No new state or row scan.
Related #5157. This reproduces the narrower blank-area failure, not the author's unspecified touch path on iOS 27.
Verification
(360,650)to(80,650)do nothing before and reach all three right-hand line endings after. Reverse drags restore the left edge. Row-origin scrolling works in both builds.Before and after
After the same two blank-area drags:
Before recording: blank-area drags ignored, followed by a working row drag
After recording: blank-area drags scroll right and back left
Hold for native-release timing. This native change should be coordinated with the next store build under the repository's fingerprint workflow. Do not automatically close the original report on this narrower reproduction.
Prepared by GPT 6 Astra via Codex in T3 Code.
Note
Fix
horizontalPanTargetto scroll short source files from blank space on iOSAdds a fallback in T3ReviewDiffView.swift for pan points that do not map to a row. When the point is at or below the content end, no file-header rows exist, exactly one file has measured content width, and that file is expanded, the method now returns a code-scrolling target so horizontal pans in the bottom blank area scroll the file.
Macroscope summarized 2d39d4f.