Skip to content

fix(mobile): keep composer within folded screen after resume - #13310

Merged
Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
PixPMusic:pixpmusic/fix-android-resume-layout
Sep 26, 2026
Merged

Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
PixPMusic:pixpmusic/fix-android-resume-layout

Conversation

@PixPMusic

@PixPMusic PixPMusic commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Leaving a thread unfolded, backgrounding the Android app, then returning on the cover display can leave the composer at its old split-pane width. The header and transcript resize correctly, but the input extends beyond the screen and Send disappears.

Give the compact composer an explicit 100% parent-relative width instead of clearing its animated width. Split layouts keep their existing live pane width, with the dock anchored from the left. The editor stays mounted, preserving its draft and focus.

Before / After

Android 17 Pixel 9 Pro Fold emulator, identical native client, dark theme, 100% system text, and disposable showcase data. Both captures follow unfolded thread → Home → fold → resume.

Before: composer overflows, Send missing After: composer and Send fit
Before: composer extends beyond the cover display and Send is missing After: composer fits the cover display and Send remains visible

Before resume recording · After resume recording

Screenshots are 1080 × 2424. Recordings show the cover display returning to the app after folding in the background. Evidence is hosted on the fork; no proof assets are committed.

Verification

  • Reproduced the missing Send control on base f5ef0ddb90; the same sequence passes with the fix.
  • Verified both resize directions, sidebar hide/show, and file-inspector open/close. Send remains inside the available pane.
  • Backgrounded with the keyboard open, folded, and resumed: draft text and Send survive; keyboard dismissal keeps both correct.
  • ./node_modules/.bin/vp run --filter @t3tools/mobile typecheck passes. Scoped lint passes with existing warnings; scoped formatting and git diff --check pass.
  • Shared mobile dock only. Android verified; iOS runtime behavior was not exercised. No web, desktop, provider, contract, or connection-protocol changes.

Model: GPT-6 (variant not exposed) | Harness: Codex in T3 Code

Summary by CodeRabbit

  • Bug Fixes
    • Corrected the composer dock’s width and alignment in split and full-width layouts, including when workspace sizing is unavailable.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Sep 23, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 5bf358a

Macroscope's review found this PR approvable — This is a narrowly scoped mobile layout bug fix that explicitly keeps the existing composer within its current parent width across compact and split layouts. It changes no APIs, defaults, infrastructure, security-sensitive code, or static-analysis configuration.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 466651f2-9488-4504-8844-c6f2f66cddae

📥 Commits

Reviewing files that changed from the base of the PR and between 5bf358a and adb7ccb.

📒 Files selected for processing (1)
  • apps/mobile/src/features/threads/ThreadDetailScreen.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

ThreadDetailScreen now sets an explicit composer width in both layout branches. The sticky host no longer sets right: 0.

Changes

Thread composer layout

Layer / File(s) Summary
Composer width and positioning
apps/mobile/src/features/threads/ThreadDetailScreen.tsx
The split-layout style sets the width to workspaceContentWidth.value; the other branch sets it to "100%". The sticky-host Animated.View no longer sets right: 0.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to adb7c

The explicit composer sizing follows the visible workspace through pane and inspector changes. No actionable merge risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the mobile composer fix for folded-screen resume behavior. It is concise and directly matches the main change.
Description check ✅ Passed The description explains the problem, implementation, UI impact, evidence, and verification results. It omits the template's explicit Checklist section, but the required checklist information is subst…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@PixPMusic
PixPMusic force-pushed the pixpmusic/fix-android-resume-layout branch from 5bf358a to adb7ccb Compare September 25, 2026 18:22
@Yash-Singh1
Yash-Singh1 merged commit dab9561 into pingdotgg:main Sep 26, 2026
21 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 26, 2026
## What's Changed
* feat(observability): write a server heap snapshot on SIGUSR2 by @t3dotgg in pingdotgg/t3code#13694
* perf(server): shutdown no longer rewrites every stopped session row by @t3dotgg in pingdotgg/t3code#13688
* perf(server): build the thread list snapshot without decoding it twice by @t3dotgg in pingdotgg/t3code#13693
* fix(client): slow servers finish loading the thread list instead of loading it twice by @t3dotgg in pingdotgg/t3code#13683
* perf(web): hidden terminal drawers no longer keep full thread history in memory by @t3dotgg in pingdotgg/t3code#13686
* perf(server): per-thread settlement and PR checks no longer rebuild the whole thread list by @t3dotgg in pingdotgg/t3code#13691
* fix(mobile): running threads open at the latest message by @AKolenda in pingdotgg/t3code#13530
* feat(observability): record event loop stalls in the server trace by @t3dotgg in pingdotgg/t3code#13697
* perf(server): stop re-running git for every project each minute by @t3dotgg in pingdotgg/t3code#13689
* fix(usage): hide the Cursor keychain prompt when Cursor isn't set up by @Gigioxx in pingdotgg/t3code#13714
* feat(web): add chat width setting for wide screens by @otavio in pingdotgg/t3code#11594
* fix(opencode): accept v2 serve ready line when spawning server by @shirishpothi in pingdotgg/t3code#13651
* fix(editors): stop treating the agy CLI as the Antigravity IDE by @ishaanko in pingdotgg/t3code#7079
* fix(web): make the empty workspace draggable on desktop by @otavio in pingdotgg/t3code#13713
* fix(server): installed editors no longer vanish when discovery is slow by @bfowler in pingdotgg/t3code#13669
* fix(git): exclude SSH ports from provider URLs by @GaMeRaM in pingdotgg/t3code#12537
* fix(web): Mod+B bolds on non-Latin layouts by @ValeraZSD in pingdotgg/t3code#13409
* fix(server): prune expired replay-protection files from the secrets directory by @t3dotgg in pingdotgg/t3code#13695
* fix(web): terminal links drop a trailing colon by @ValeraZSD in pingdotgg/t3code#13408
* fix(server): bump node-pty to 1.2.0-beta.15 for linux-arm64 prebuild by @Ephraim-9 in pingdotgg/t3code#13748
* Show a focus ring on sidebar thread and draft rows by @ryanilano in pingdotgg/t3code#13344
* fix(mobile): keep composer within folded screen after resume by @PixPMusic in pingdotgg/t3code#13310
* fix(server): let OpenCode generate session titles by @macodev00 in pingdotgg/t3code#13368
* fix(server): let Antigravity inspect unsupported files by path by @Bil0000 in pingdotgg/t3code#13339
* fix(mobile): link URLs with ports and single-label hosts by @Yash-Singh1 in pingdotgg/t3code#13795
* feat(web): add keyboard navigation for usage by @tris203 in pingdotgg/t3code#10158
* perf(observability): stop writing empty spans on spawns, projected events, and idle polls by @t3dotgg in pingdotgg/t3code#13756
* perf(server): opening Diagnostics no longer loads the whole trace ring into memory by @t3dotgg in pingdotgg/t3code#13763
* perf(clients): sort projects and settled threads without re-parsing dates per comparison by @t3dotgg in pingdotgg/t3code#13759
* fix(observability): the renderer trace proxy stops tracing itself by @t3dotgg in pingdotgg/t3code#13761
* perf(server): background sweeps only read threads that can still settle by @t3dotgg in pingdotgg/t3code#13765
* perf(clients): saving the thread list cache no longer freezes the UI by @t3dotgg in pingdotgg/t3code#13767
* perf(server): cut idle wakeups from the Connect relay and session reaper by @t3dotgg in pingdotgg/t3code#13774
* fix(mobile): keep trailing underscores and tildes in autolinked URLs by @Yash-Singh1 in pingdotgg/t3code#13807
* fix(web): queued messages send while their thread is not open by @t3dotgg in pingdotgg/t3code#13764
* fix(server): background git status fetches no longer fill the disk with failed repacks by @t3dotgg in pingdotgg/t3code#13812
* fix(mobile): thread list shows the pull request icon instead of # by @flamboh in pingdotgg/t3code#13742
* fix(accessibility): correct control announcements and sidebar traversal by @blinding-pixels in pingdotgg/t3code#13491
* fix(usage): tolerate newer provider variants by @tris203 in pingdotgg/t3code#10076
* fix(usage): omit Cursor warning when no login is saved by @tris203 in pingdotgg/t3code#13820
* fix(usage): identify client version mismatches by @tris203 in pingdotgg/t3code#8208
* fix(web): stop mistaking offline servers for updates by @tris203 in pingdotgg/t3code#13083
* test(usage): assert contract mismatch details by @Yash-Singh1 in pingdotgg/t3code#13861
* fix(build): validate Linux node-pty prebuilds in Windows artifacts by @Yash-Singh1 in pingdotgg/t3code#13867

## New Contributors
* @otavio made their first contribution in pingdotgg/t3code#11594
* @shirishpothi made their first contribution in pingdotgg/t3code#13651
* @bfowler made their first contribution in pingdotgg/t3code#13669
* @GaMeRaM made their first contribution in pingdotgg/t3code#12537
* @ValeraZSD made their first contribution in pingdotgg/t3code#13409
* @Ephraim-9 made their first contribution in pingdotgg/t3code#13748
* @ryanilano made their first contribution in pingdotgg/t3code#13344
* @macodev00 made their first contribution in pingdotgg/t3code#13368
* @blinding-pixels made their first contribution in pingdotgg/t3code#13491

**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260926.2282...v0.0.43-nightly.20260926.2318

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260926.2318
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants