Add debounce to ConversationList for improved rendering performance (Vibe Kanban)#1909
Merged
stunningpixels merged 1 commit intomainfrom Jan 10, 2026
Merged
Add debounce to ConversationList for improved rendering performance (Vibe Kanban)#1909stunningpixels merged 1 commit intomainfrom
stunningpixels merged 1 commit intomainfrom
Conversation
… `VirtualizedProcessLogs.tsx` has been successfully rolled out to `ConversationList.tsx`. ## Summary Added 100ms debounce to `ConversationList.tsx` matching the pattern in `VirtualizedProcessLogs.tsx`: 1. **Added refs** (lines 94-99): `pendingUpdateRef` to store pending updates and `debounceTimeoutRef` to track the timeout 2. **Modified `onEntriesUpdated`** (lines 115-149): Now stores updates in the ref and debounces state updates with a 100ms delay 3. **Added cleanup effect** (lines 107-113): Clears any pending timeout on unmount to prevent memory leaks
VirtualizedProcessLogs.tsx has a debounce, we should roll this out to ConversationList.tsx (vibe-kanban)
Review CompleteYour review story is ready! Comment !reviewfast on this PR to re-generate the story. |
hushhenry
pushed a commit
to hushhenry/vibe-kanban
that referenced
this pull request
Feb 17, 2026
… `VirtualizedProcessLogs.tsx` has been successfully rolled out to `ConversationList.tsx`. (BloopAI#1909) ## Summary Added 100ms debounce to `ConversationList.tsx` matching the pattern in `VirtualizedProcessLogs.tsx`: 1. **Added refs** (lines 94-99): `pendingUpdateRef` to store pending updates and `debounceTimeoutRef` to track the timeout 2. **Modified `onEntriesUpdated`** (lines 115-149): Now stores updates in the ref and debounces state updates with a 100ms delay 3. **Added cleanup effect** (lines 107-113): Clears any pending timeout on unmount to prevent memory leaks
brandonvalentino
pushed a commit
to brandonvalentino/kira-code2
that referenced
this pull request
Mar 16, 2026
… `VirtualizedProcessLogs.tsx` has been successfully rolled out to `ConversationList.tsx`. (BloopAI#1909) ## Summary Added 100ms debounce to `ConversationList.tsx` matching the pattern in `VirtualizedProcessLogs.tsx`: 1. **Added refs** (lines 94-99): `pendingUpdateRef` to store pending updates and `debounceTimeoutRef` to track the timeout 2. **Modified `onEntriesUpdated`** (lines 115-149): Now stores updates in the ref and debounces state updates with a 100ms delay 3. **Added cleanup effect** (lines 107-113): Clears any pending timeout on unmount to prevent memory leaks
brandonvalentino
added a commit
to brandonvalentino/kira-code2
that referenced
this pull request
Mar 16, 2026
… `VirtualizedProcessLogs.tsx` has been successfully rolled out to `ConversationList.tsx`. (BloopAI#1909) ## Summary Added 100ms debounce to `ConversationList.tsx` matching the pattern in `VirtualizedProcessLogs.tsx`: 1. **Added refs** (lines 94-99): `pendingUpdateRef` to store pending updates and `debounceTimeoutRef` to track the timeout 2. **Modified `onEntriesUpdated`** (lines 115-149): Now stores updates in the ref and debounces state updates with a 100ms delay 3. **Added cleanup effect** (lines 107-113): Clears any pending timeout on unmount to prevent memory leaks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a 100ms debounce to the
ConversationListcomponent's entry update handler, matching the existing pattern inVirtualizedProcessLogs.tsx.Changes
pendingUpdateRefto store the latest pending update data (entries, addType, loading state)debounceTimeoutRefto track the debounce timeout for cleanuponEntriesUpdatedcallback logic in a debouncedsetTimeoutwith 100ms delayWhy
The
ConversationListcomponent receives rapid updates during streaming conversations from theuseConversationHistoryhook. Without debouncing, each update triggers an immediate state change and re-render, which can cause performance issues with the virtualized list.By batching these updates with a 100ms debounce (the same delay used in
VirtualizedProcessLogs.tsx), we ensure only the latest update is applied, reducing unnecessary re-renders while maintaining a responsive UI.Implementation Details
The debounce pattern stores pending updates in a ref and only applies the most recent one after the delay expires. This ensures:
This PR was written using Vibe Kanban