Nightly Build / build (push) Successful in 6m51s
Auto-scroll now yields when the reader scrolls away from the bottom, so a fast-streaming reply no longer fights someone reading the start. Stickiness is a flag driven by a passive scroll listener (not a per-flush distance check, which breaks when one flush adds more than the threshold of content); scrolling back within the band re-arms it. Centralised in chat-session.js (_scrollToBottom(force) + _forceScrollToBottom + _messagesContainer hook), removing the duplicated overrides in copilot.js / chat-page.js. Force-scroll is used where the latest must be shown: history load, chat reopen, approval/clarification prompts, and message send. A sticky 'jump to latest' affordance appears only while scrolled up.