fix(web): keep scroll-to-end button close to composer - #10543
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a contained web UI bug fix that adjusts existing scroll-to-end clearance and composer banner layout, with focused resolver tests and no schema, infrastructure, security, billing, or default-setting changes. The runtime impact is limited to positioning and transition/layout behavior within the existing chat composer. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe change adds ChangesScroll-to-end clearance
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The banner stack now maintains stable rendering identity and reserved collapsed spacing, with no identified impact on chat functionality or merge readiness. Sequence Diagram(s)sequenceDiagram
participant ChatView
participant ComposerGeometry
participant ClearanceHelper
participant ScrollButton
ChatView->>ComposerGeometry: measure overlay and composer surfaces
ComposerGeometry->>ClearanceHelper: pass surface, button, and attachment bounds
ClearanceHelper->>ScrollButton: calculate reserved end clearance
ScrollButton-->>ChatView: apply clearance to layout
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Dismissing prior approval to re-evaluate 1784151
There was a problem hiding this comment.
All clear
Posted via Macroscope — Effect Service Conventions
## What's Changed * fix(web): open proactive panels when entering threads by @maria-rcks in pingdotgg/t3code#10610 * fix(native): wait for the KDE feedback test listener by @juliusmarminge in pingdotgg/t3code#10645 * fix(desktop): resolve local media linked from remote threads by @maria-rcks in pingdotgg/t3code#10619 * fix(web): add bottom padding to project actions header by @flamboh in pingdotgg/t3code#10634 * fix(web): update machines together in auto balance by @maria-rcks in pingdotgg/t3code#10596 * fix(preview): transfer recordings to the agent environment by @maria-rcks in pingdotgg/t3code#10572 * fix(web): navigate markdown images as galleries by @maria-rcks in pingdotgg/t3code#10625 * chore: upgrade to TypeScript 7.0.2 by @juliusmarminge in pingdotgg/t3code#10663 * fix: hide email-bearing account labels in usage limits by @juliusmarminge in pingdotgg/t3code#10668 * fix(web): keep scroll-to-end button close to composer by @Bil0000 in pingdotgg/t3code#10543 * chore(deps): upgrade Effect to rc.112 and Alchemy to beta.76 by @juliusmarminge in pingdotgg/t3code#10652 * chore(refs): sync Effect reference to rc.112 by @juliusmarminge in pingdotgg/t3code#10653 * chore(refs): sync Alchemy reference to beta.76 by @juliusmarminge in pingdotgg/t3code#10654 * fix: generate thread titles with the selected model across connections by @Bil0000 in pingdotgg/t3code#10526 * fix(desktop): enable context menus in the browser by @juliusmarminge in pingdotgg/t3code#10670 * fix(desktop): stop generating declarations during bundling by @juliusmarminge in pingdotgg/t3code#10679 * fix(desktop): restore layout control hit targets by @juliusmarminge in pingdotgg/t3code#10673 **Full Changelog**: pingdotgg/t3code@v0.0.41-nightly.20260908.1377...v0.0.41-nightly.20260908.1387 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.41-nightly.20260908.1387
The Stash tab added 34 px of empty space between the composer and “Scroll to end” in both the collapsed and expanded states. The button now clears only attached content that overlaps its width. In the real app, the gap falls from 52 px to 18 px in both states.
The existing height measurement still drives composer transitions and timeline spacing. Full-width attachments and Stash at narrow widths keep their clearance. This changes the shared web/desktop chat view; the native mobile client is unchanged.
Verified with 35 composer layout tests, the web type check, targeted lint and formatting, and real-app checks at 1280, 600, and 375 px. Focus/scroll transitions, opening Stash, and scrolling to the end worked. Lint reports existing warnings in ChatView. Browser checks used an isolated local server with sample messages; the Electron shell was not launched.
Model: GPT-6. Harness: Codex.
Note
Fix
ChatViewscroll-to-end button clearance to account for attached bannersresolveScrollToEndClearancein composerFooterLayout.ts to compute clearance from overlay height, main-surface position, button bounds, and attached-banner rectangles. Clearance is reduced only when a banner sits above the button without horizontally overlapping it.ChatViewnow measures the composer, scroll-to-end button, and banner surfaces, stores the resolver's clearance, and reruns the measurement effect when scroll-to-bottom visibility changes.ComposerBannerStackkeeps the notices container at minimum height in both collapsed and expanded states, and remounts the front banner wrapper when the front item changes.Macroscope summarized 1784151.
Summary by CodeRabbit
Bug Fixes
Tests