fix(desktop): mask scrolled content behind channel and thread composers#2163
Merged
Conversation
The channel composer overlay and the thread-panel reply composer overlay were fully transparent, so when the conversation was scrolled up, message rows bled sharply below the composer box. Apply the same treatment the inbox received in #2143: a gradient fade plus a solid bottom strip behind the composer, so rows fade out instead of overflowing. Adds a Playwright spec covering both the channel timeline and the thread panel. Co-authored-by: Thomas Petersen <thomasp@squareup.com> Signed-off-by: Thomas Petersen <thomasp@squareup.com>
thomaspblock
added a commit
that referenced
this pull request
Jul 20, 2026
Contributor
Author
|
🤖 Verification screenshots (Playwright, mock bridge, 1280x720): Before — channel rows bleed below the composerOn the unmodified baseline, scrolled message rows overflow out the bottom of the composer box: After — channel rows fade out behind the composerWith the gradient fade + solid bottom strip (same treatment as the inbox in #2143): After — thread reply composer gets the same mask |
wpfleger96
added a commit
that referenced
this pull request
Jul 20, 2026
…vider * origin/main: (111 commits) fix: skip membership lookup for open relays (#2107) fix(desktop): make invite QR downloadable (#2168) Archive managed agents when deleted (#2135) perf(relay): cache Git pack hydration (#2169) chore(deps): update rust crate rustls to v0.23.42 (#2151) chore(deps): update dependency @tanstack/react-virtual to v3.14.6 (#2153) Add Agent Config Core: harness capability model behind agent config surfaces (#2158) chore(deps): update all non-major dependencies (#2152) chore(deps): update rust crate getrandom to v0.4.3 (#2150) fix(relay): bound and observe Git read operations (#2167) fix(desktop): derive default clone URL for relay-hosted repos (#2166) fix(desktop): mask composer rounded corners (#2165) feat(desktop): add PR merge conflict recovery (#2164) fix(desktop): mask scrolled content behind channel and thread composers (#2163) feat(desktop): add inline PR diff comments (#2162) feat(desktop): add commit-scoped PR review decisions (#2161) fix(desktop): batch project work item queries (#2160) feat(desktop): make missing project checkouts actionable (#2159) Fix harness default model states in onboarding (#2156) relay: gate push enqueue on live leases; batch matcher pipeline (T1b/T1a-repair/T2b) (#2145) ...
wpfleger96
added a commit
that referenced
this pull request
Jul 20, 2026
…rics * origin/main: (96 commits) fix(desktop): prefer live agent mentions (#2149) fix(desktop): close focused threads on Escape (#2154) fix: skip membership lookup for open relays (#2107) fix(desktop): make invite QR downloadable (#2168) Archive managed agents when deleted (#2135) perf(relay): cache Git pack hydration (#2169) chore(deps): update rust crate rustls to v0.23.42 (#2151) chore(deps): update dependency @tanstack/react-virtual to v3.14.6 (#2153) Add Agent Config Core: harness capability model behind agent config surfaces (#2158) chore(deps): update all non-major dependencies (#2152) chore(deps): update rust crate getrandom to v0.4.3 (#2150) fix(relay): bound and observe Git read operations (#2167) fix(desktop): derive default clone URL for relay-hosted repos (#2166) fix(desktop): mask composer rounded corners (#2165) feat(desktop): add PR merge conflict recovery (#2164) fix(desktop): mask scrolled content behind channel and thread composers (#2163) feat(desktop): add inline PR diff comments (#2162) feat(desktop): add commit-scoped PR review decisions (#2161) fix(desktop): batch project work item queries (#2160) feat(desktop): make missing project checkouts actionable (#2159) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Problem
In the channel view (and the thread reply panel), when the conversation is scrolled up, message rows bleed sharply below the floating composer box — the composer overlay footer was fully transparent.
The inbox had the same bug, fixed in #2143 with a gradient fade + solid bottom strip behind the composer.
Fix
Apply the identical treatment to the two remaining composer overlays:
ChannelPane.tsx— channel composer overlayMessageThreadPanel.tsx— thread reply composer overlayEach overlay gains
before:(24-unit gradient fade to background) andafter:(12-unit solid background strip) pseudo-elements at-z-10under anisolatecontext, so scrolled rows fade out behind the composer instead of overflowing below it.Verification
New Playwright spec
channel-composer-overflow.spec.ts(registered in the smoke project) seeds 20+ messages, scrolls the conversation up so rows sit behind the overlay, screenshots the region, and asserts both mask pseudo-elements are present. Both tests fail on the unmodified baseline and pass with the fix.Also ran
pnpm check,pnpm test,pnpm typecheck, and neighboring smoke specs (channels,messaging,channel-shared-header-backdrop) — all green except one pre-existingmessaging.spec.tsavatar failure that reproduces on the unmodified baseline.