Skip to content

fix(desktop): mask scrolled content behind channel and thread composers#2163

Merged
thomaspblock merged 1 commit into
mainfrom
tp/channel-composer-overflow
Jul 20, 2026
Merged

fix(desktop): mask scrolled content behind channel and thread composers#2163
thomaspblock merged 1 commit into
mainfrom
tp/channel-composer-overflow

Conversation

@thomaspblock

Copy link
Copy Markdown
Contributor

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 overlay
  • MessageThreadPanel.tsx — thread reply composer overlay

Each overlay gains before: (24-unit gradient fade to background) and after: (12-unit solid background strip) pseudo-elements at -z-10 under an isolate context, 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-existing messaging.spec.ts avatar failure that reproduces on the unmodified baseline.

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
thomaspblock requested a review from a team as a code owner July 20, 2026 11:21
thomaspblock added a commit that referenced this pull request Jul 20, 2026
@thomaspblock

Copy link
Copy Markdown
Contributor Author

🤖 Verification screenshots (Playwright, mock bridge, 1280x720):

Before — channel rows bleed below the composer

On the unmodified baseline, scrolled message rows overflow out the bottom of the composer box:

01-channel-before

After — channel rows fade out behind the composer

With the gradient fade + solid bottom strip (same treatment as the inbox in #2143):

03-channel-after

After — thread reply composer gets the same mask

04-thread-after

@thomaspblock
thomaspblock merged commit 6ecc894 into main Jul 20, 2026
25 checks passed
@thomaspblock
thomaspblock deleted the tp/channel-composer-overflow branch July 20, 2026 11:37
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)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant