scroll handling must be smoother and user-scrolling should not conflict with updates #34

Closed
opened 2026-07-26 17:37:57 +00:00 by hugo · 1 comment
Owner

when the user scrolls away from the end, then new lines should append to chat without scrolling the view. only if the user is scrolled way down to the end of the chat should it update the position with new content. it should still be smoothly updating, right now it is a bit jittery when new content is added. probably it needs some debouncing of the scroll positioning?

when the user scrolls away from the end, then new lines should append to chat without scrolling the view. only if the user is scrolled way down to the end of the chat should it update the position with new content. it should still be smoothly updating, right now it is a bit jittery when new content is added. probably it needs some debouncing of the scroll positioning?
hugo added the bug label 2026-07-26 17:37:57 +00:00
Author
Owner

Implemented in 22a9397. Removed the 50 ms forced snap during streaming. The transcript now uses bottom anchoring while the user is at the tail, switches to normal top anchoring once they scroll more than 24 px away, and converts the stored offset on each transition so the visible viewport does not jump. New content follows smoothly at the tail and leaves a user-scrolled viewport untouched. This is DS4Server UI behavior with no terminal-scroll equivalent in DS4. Added a focused tail-threshold regression test. Verified with cargo fmt --all -- --check, cargo clippy --all-targets --all-features -- -D warnings, make bundle, and cargo test --all-features (125 passed, 12 hardware-dependent tests ignored).

Implemented in 22a9397. Removed the 50 ms forced snap during streaming. The transcript now uses bottom anchoring while the user is at the tail, switches to normal top anchoring once they scroll more than 24 px away, and converts the stored offset on each transition so the visible viewport does not jump. New content follows smoothly at the tail and leaves a user-scrolled viewport untouched. This is DS4Server UI behavior with no terminal-scroll equivalent in DS4. Added a focused tail-threshold regression test. Verified with cargo fmt --all -- --check, cargo clippy --all-targets --all-features -- -D warnings, make bundle, and cargo test --all-features (125 passed, 12 hardware-dependent tests ignored).
hugo closed this issue 2026-07-27 16:59:05 +00:00
Sign in to join this conversation.