Codex found that with Auto-follow OFF the #3920 ResizeObserver settle + 2s fallback + the non-preserve render path still force-scrolled to bottom (the setting was incomplete vs the scroll machinery shipped in #3920). Fixes: 1. RO settle guard (ui.js:3153): bail when !_autoScrollFollow. 2. 2s static fallback guard (ui.js:3186): bail when !_autoScrollFollow. 3. non-preserve render fall-through (ui.js:8653): when Auto-follow off AND the user has unpinned, restore the scroll snapshot instead of scrollToBottom() — also closes the send() race (renderMessages runs before S.activeStreamId is set). A fresh session load (not unpinned) still lands at the bottom. Explicit user-initiated scrollToBottom() (End button) is untouched. |
||
|---|---|---|
| .. | ||
| vendor | ||
| apple-touch-icon.png | ||
| assistant_turn_anchors.js | ||
| boot.js | ||
| commands.js | ||
| favicon-32.png | ||
| favicon-192.png | ||
| favicon-512.png | ||
| favicon-512.svg | ||
| favicon.ico | ||
| favicon.svg | ||
| i18n.js | ||
| icons.js | ||
| index.html | ||
| login.js | ||
| manifest.json | ||
| messages.js | ||
| onboarding.js | ||
| outline.js | ||
| panels.js | ||
| pwa-startup.js | ||
| sessions.js | ||
| style.css | ||
| sw.js | ||
| terminal.js | ||
| ui.js | ||
| workspace.js | ||