b9f6a78fdcd98e76f7f73d15e8c5fcfec41a5b2f
Rotating mid-reel jumped the reel forward a few videos. Two reasons, both about the same arithmetic: every scroll position in the feed is index * scroller.clientHeight, with a spacer standing in for the slides above. A slide was 100dvh, which is not the scroller's height on a phone whose chrome comes and goes, so that mapping addressed the wrong slide by a growing margin; it is now the scroller's own height, which it cannot disagree with. And the realign window lasted two frames. A rotation is many frames and several resizes, with the container's re-anchor on pre-rotation pixels landing in the middle of them -- so the window now stays open until the slide height has held still for a stretch of frames (with a clock to close it in a tab that isn't drawing), and orientationchange and the visual viewport open it too. Moving the feed into a picture-in-picture window settles the same way. tests/smoke_rotate.py replays a rotation as the browser delivers it, on a fixture reel so nothing waits on a real source; against the old code the reel goes from step 7 to step 12. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MPZFnNdHbPGDTqQUNiE4ZN
Description
A webclient for hottub
Languages
JavaScript
60%
Python
29.7%
CSS
8.3%
HTML
1.7%
Shell
0.3%