Pull requests / #1106

#1106 web: follow streaming Thinking and preserve reading position

open · @medking82 · 0 comments · View on GitHub

Server & API

Description

Streaming reasoning can fill the capped Thinking pane while its scrollbar stays at the old position. A large answer delta can also move a chat that was following the bottom outside the follow threshold before the old check runs.

Capture scroll intent before updating either pane, follow Thinking independently, and preserve manual scroll-up and disclosure choices. Apply the same behavior to the final unpainted chunk; explicit tool-disclosure repaints keep the user's reading position.

Replacement for #1075 after the upstream history rewrite, based on new main `82f46a8c8f475f001ad76d92f58f4a4f8ffb0253`. Contains one fix commit and only `serve/web/app.js` plus its regression tests.

Validation:
- `node --test tools/test_chat_scroll.cjs`: 10/10 pass. Five of the original nine checks fail on unchanged new main; the additional tool-disclosure check was also reproduced failing before its correction.
- `node --check serve/web/app.js` and `git diff --check origin/main`: pass.
- Nine browser interaction checks pass using the actual renderer, scroll functions, click/toggle handlers and CSS with synthetic content in an isolated loopback fixture. No GPU or model inference was exercised.

Related on strata.com

Editorial links to help you install, pick models, or read release notes — not part of the upstream thread.