19fc20173b
## Changes ### 1. Fixed streaming lag with throttle parameter **Problem:** The AI chat was experiencing lag during message streaming because the messages array was being updated too frequently, causing all messages to re-render too quickly. **Solution:** Added the `experimental_throttle: 100` parameter to the `useChat` hook configuration. This throttles message updates during streaming to prevent excessive re-renders and improve performance. ### 2. Cleaned up useAgentChat hook return values **Context:** The `useAgentChat` hook primarily returns values from the underlying `useChat` hook, so there wasn't significant room for improvement regarding the "umbrella hook" pattern. However, some unnecessary values were being returned that weren't needed. **Solution:** - Removed `input` and `handleInputChange` from the `useAgentChat` hook return. These weren't needed since input state is already managed directly via Recoil state (`agentChatInputState`) in components. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Throttle message streaming updates and switch AI chat input management from context to Recoil; minor scroll behavior tweak. > > - **AI Chat performance**: > - Add `experimental_throttle: 100` to `useChat` in `useAgentChat` to reduce re-render frequency during streaming. > - **State management**: > - Migrate input handling to Recoil via `agentChatInputState`; remove `input` and `handleInputChange` from `AgentChatContext` and `useAgentChat` returns. > - Update `AIChatTab` and `SendMessageButton` to read/write input from Recoil and adjust hotkeys/disabled state accordingly. > - **UX behavior**: > - Remove smooth scroll behavior in `useAgentChatScrollToBottom`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 911b341ea1f7c63a4e1e27667da119d9a2960b78. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com>