Repository navigation
fix(web): dragging a sidebar thread no longer scrolls the list to the bottom - #27691
Conversation
…to the bottom Starting any drag scrolled the sidebar straight to the off-screen settled drop hint, because the #26736 reveal called scrollIntoView unconditionally. It now only nudges a hint its scroll viewport already partly shows, which keeps the clipped-border fix. Auto-scroll used dnd-kit's 20% edge zone at full acceleration, so resting the pointer near the bottom ran the list away. It now uses a 5% zone and acceleration 3. Fixes #27669 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The drag transform can push an on-screen hint fully below the viewport in one step, as when the only settled row is lifted into Active. Judge visibility from the slot the hint rests in, so that hint is still revealed while a far-off hint is still left alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A drag can also lift a hint resting just below the viewport across its edge, so follow the hint when either its current box or its resting slot is on screen. Default the test harness's collision detection so it typechecks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — This changes the default sidebar drag auto-scrolling to a narrower edge zone with lower acceleration, while keeping context-drag scrolling disabled. A human must confirm the new default interaction. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
Taking over this one |
#30346 already limits the settled hint's scrollIntoView to drags that target Settled, so the on-screen guard and its tests are redundant and the tests fail against current main. Keep the autoscroll tuning, which still fixes the bottom-edge runaway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
**v0.1.8-nightly.20261106.4275** · 12 changes from 6 contributors **8 bug fixes and performance improvements.** <details> <summary>Full changelog</summary> ## What's Changed * fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary by @joshuarossi in pingdotgg/t3code#31285 * fix(web): keep task updates static in the timeline by @Yash-Singh1 in pingdotgg/t3code#31888 * fix(devices): keep devices listed when simulator discovery fails by @shivamhwp in pingdotgg/t3code#25971 * fix(web): dragging a sidebar thread no longer scrolls the list to the bottom by @juliusmarminge in pingdotgg/t3code#27691 * fix(web): tagging a thread by drag no longer scrolls the sidebar by @t3dotgg in pingdotgg/t3code#31924 * ci: stacked PRs stop evicting the shared pnpm cache by @t3dotgg in pingdotgg/t3code#31937 * fix(web): remote subagents no longer split from the lineage list by @t3dotgg in pingdotgg/t3code#29285 * perf(ci): release uploads stop recompressing installers and CLI archives by @t3dotgg in pingdotgg/t3code#31942 * feat(antigravity): identify as T3 Code to agy acp 1.5.1+ by @patrick-toulme in pingdotgg/t3code#31158 * ci(release): JS bundle jobs stop building an unused Linux helper by @t3dotgg in pingdotgg/t3code#31941 * feat(marketing): help search engines tell t3.codes apart from copycat sites by @t3dotgg in pingdotgg/t3code#31142 * perf(server): background service launcher uses 75% less memory by @t3dotgg in pingdotgg/t3code#29284 ## New Contributors * @joshuarossi made their first contribution in pingdotgg/t3code#31285 * @patrick-toulme made their first contribution in pingdotgg/t3code#31158 **Full Changelog**: pingdotgg/t3code@v0.1.8-nightly.20261106.4262...v0.1.8-nightly.20261106.4275 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.8-nightly.20261106.4275
Picking up a sidebar thread near the bottom of the list ran the list away to the end, even with the pointer held still. Pinned threads left the screen before you could drop.
Fixes #27669
The cause is dnd-kit's default autoscroll: a 20% edge zone at full speed, and a scroll intent that stays on after one pixel of downward movement. The sidebar's
DndContextnow uses a 5% vertical edge zone and acceleration 3. Dragging to the edge still scrolls the list, at about 400 px/s. Context (tag) drags still turn autoscroll off.This PR first also fixed a second cause: the Settled drop hint called
scrollIntoViewon every drag start. #30346 has since fixed that onmain, so the takeover removed that part and its tests. Those tests failed against currentmain.Measured in the web dev app, 1280×800, sidebar viewport y 100–756, about 500 seeded threads with Settled expanded. Each row: press a row, move as listed, hold still, sample
scrollTopevery 250 ms.main)vp run check:changedpasses on the merged head.Not verified: touch input, trackpad feel by hand, the Electron app, and mobile (separate code).
Original work by @juliusmarminge. Takeover (merge with
main, removal of the part #30346 covers, verification) by Claude Opus 5.5 in T3 Code (Claude Code harness).🤖 Generated with Claude Code