• Will Chen's avatar
    Fix auto-scroll to only trigger during streaming (#1593) · 55d37b5a
    Will Chen 提交于
    Previously, the chat auto-scrolled whenever messages changed, even when
    not streaming. This caused unwanted scrolling when switching chats or
    loading messages from the database.
    
    Now auto-scroll only triggers when:
    - Messages are actively streaming (isStreaming is true)
    - User hasn't manually scrolled away
    - User is near the bottom of the chat
    
    Changes:
    - Added isStreamingByIdAtom to track streaming state
    - Modified auto-scroll useEffect to check isStreaming before scrolling
    - Preserved streamCount effect for initial scroll on stream start
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
        
    <!-- This is an auto-generated description by cubic. -->
    ---
    
    ## Summary by cubic
    Fixes chat auto-scroll so it only runs during active streaming,
    preventing jumps when switching chats or loading message history.
    
    - **Bug Fixes**
    - Added isStreamingByIdAtom and gated the auto-scroll effect by per-chat
    streaming state (updated effect deps).
      - Preserved the initial scroll on stream start via streamCount.
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > Limits chat auto-scroll to when a conversation is actively streaming
    and the user is near the bottom.
    > 
    > - **Frontend**
    > - **Chat auto-scroll behavior**: Only auto-scrolls during active
    streaming.
    > - Adds `isStreamingByIdAtom` and reads per-chat `isStreaming` state.
    > - Updates auto-scroll `useEffect` to require `isStreaming` and adds it
    to dependencies.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    6580601cd974c2c01ddffdef78ed0ddbb2b2fa8d. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    Co-authored-by: 's avatarClaude <noreply@anthropic.com>
    55d37b5a
名称
最后提交
最后更新
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...