You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Wheel scroll stays stuck on a tall inline HTML render instead of chaining to the thread #16977
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
apps/web
Steps to reproduce
Have an agent publish an inline html_render page taller than HTML_RENDER_MAX_HEIGHT (2000px). Mine was a logo board around 10,142px tall at a 1000–1144px width, published with height: 2000.
Hover the render and scroll down inside it, then scroll the thread so part of the render is still under the cursor.
With the cursor over the render, scroll up continuously until the render reaches its top, and keep moving the wheel.
Expected behavior
When the render reaches its top, the rest of the gesture scrolls the thread (scroll chaining), as it would for a nested scroller in the page itself.
Actual behavior
The render reaches its top and then nothing moves. The wheel keeps spinning up for several seconds and the thread stays still. After I stop the wheel for about 0.5s, the next gesture scrolls the thread normally.
Impact
Minor bug or occasional failure
Version or commit
0.0.46-nightly.20261006.2752 (d8d037e). This build includes #16283, and the render was published on it (its bootstrap sends ui/notifications/size-changed).
Environment
Arch Linux, T3 Code desktop nightly (t3code-nightly-bin), mouse wheel
Workaround
Stop the wheel for about 0.5s once the render reaches its edge, then scroll again. Or use "Open in panel".
Notes
This is probably a design question more than a code defect, but it is the same symptom #16283 set out to fix, for a case that fix does not reach:
Pages taller than 2000px are capped by htmlRenderFrameHeight (packages/shared/src/htmlRender.ts), so the sandboxed iframe scrolls its own document on purpose. Agents can also ask for this by passing a height below contentHeight.
Chromium latches a wheel gesture to the scroller it started in. When the iframe hits its edge mid-gesture, the scroll does not chain to the thread until a new gesture starts. Nothing in HtmlRenderFrame, BrowserDocumentFrame, or the bootstrap handles wheel events or sets overscroll-behavior.
Possible directions, for whoever owns this:
In the injected bootstrap, notice wheel events that the framed page can't use in that direction (already at top or bottom) and post the delta to the host, which scrolls the thread.
Lower or rethink the inline cap for very tall pages, for example by showing a fixed preview with "Open in panel" instead of a scrolling frame.
Activity