[Bug]: Android composer and working pill cover the newest transcript lines during a running turn, and they cannot be scrolled into view
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
- Open the T3 Code Android app and open a thread.
- Send a prompt so the turn starts running (the floating "Working for Xm Ys" pill appears above the composer).
- Let the agent stream a long reply, so the transcript is taller than the viewport.
- With the keyboard closed, scroll the transcript to the very end.
Expected behavior
The last lines of the transcript should come to rest fully above the composer. The reserved bottom space should account for the composer and the floating working pill, so every line the agent has streamed can be scrolled into view and read while the turn is still running.
Actual behavior
The newest lines rest underneath the composer chrome and cannot be scrolled any further — the list is already at its maximum scroll offset. The composer's backdrop gradient fades the text that sits behind it, so those lines are visibly present but unreadable, and there is no gesture that reveals them. The only way to read the newest output is to wait for the turn to finish or to open the thread on web/desktop.
In the screenshot below, No Nix flake. Let me try compiling with JDK 21 to catch errors: is the agent's latest line. It is drawn behind the "Working for 10m 08s" pill and the composer input row, and the list will not scroll past this point.
The extra height of the running state seems to be what pushes it over: with the pill hidden (settled thread) the resting position looks correct.
Impact
Major degradation or frequent failure
Version or commit
Android app 1.1.0 (Play Store)
Environment
- OS: Android
- Client: T3 Code Android app, 1.1.0 from the Play Store
Note per #11119: no production Android OTA appears to have published between 2026-09-07 and 2026-09-15, so a 1.1.0 store install is running the Sep 7 runtime. I have not been able to check this against a current main build, so this may already be better on main.
Logs or stack traces
Screenshots, recordings, or supporting files

Workaround
Wait for the turn to settle, or read the thread on web/desktop.
Possibly related
Not a duplicate of any of these as far as I can tell, but they are close enough to be worth linking:
- #10960 — Android transcript drawing under the chrome, but triaged as the keyboard-open (Gboard) case. This report is with the keyboard closed, during a running turn.
- #11119 / #10846 — Android overlap within a message (timestamp/copy chrome over prose). Different failure; being addressed by #11611.
- #4999 (closed unmerged) — "keep the composer from covering the last message on thread open". Its diagnosis reads very close to this: the feed's bottom inset comes from an async measurement of the absolutely-positioned composer overlay, and status chrome that animates in afterwards lands after the list has already finished positioning. It was closed in the 2026-09-07 backlog sweep with an invitation to rebase.
- #8800 (open, approved) — adds 12pt bottom padding to
ThreadFeed. That would not cover a full pill + composer height, so I do not think it closes this. - #5582 / #5585 (both merged) — the composer backdrop gradient and the first-open resting position on Android. Both appear to be working here: the text is faded, and a settled thread rests correctly.
I did not reproduce this against a source build, so the following is reading rather than a verified root cause: on Android contentInsetEndStaticAdjustment is 0 and the reserved space arrives through the animated contentInsetEndAdjustment shared value, which adds the constant FLOATING_WORKING_CONTROL_COVERAGE when the pill is shown. That constant is an estimate of the pill's overlap rather than a measurement of it, which would fit the symptom being specific to the running state.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Android ThreadFeed and inspect how contentInsetEndAdjustment and FLOATING_WORKING_CONTROL_COVERAGE reserve space when the working pill is visible; the issue notes contentInsetEndStaticAdjustment is 0. Reproduce with the keyboard closed and a long running reply, then verify the newest transcript lines can be scrolled fully above the pill and composer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, typescript
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100