⚡ Bolt: Memoize execution filtering and counts in WorkflowRunsView#28
⚡ Bolt: Memoize execution filtering and counts in WorkflowRunsView#28Psyborgs-git wants to merge 1 commit intomainfrom
Conversation
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
💡 What: Wrapped the
filteredexecution list and therunningCount,completedCount, andfailedCountvariable declarations inWorkflowRunsViewinsideuseMemohooks. Also consolidated the status counts into a single O(N)forloop iteration.🎯 Why: The
WorkflowRunsViewcomponent continuously auto-polls for execution updates (every 5 seconds) when there are active runs, triggering frequent state updates and re-renders. Previously, during every render, it calculated thefilteredlist and then iterated through theexecutionsarray three separate times to determine the status counts. This O(4N) array processing blocks the main thread on every render frame, scaling linearly with the size of the history and causing ui lag for dense executions lists.📊 Impact: Reduces O(4N) filtering operations to O(2N) and completely skips these array operations on extraneous re-renders where the
executionsarray hasn't functionally changed. Reduces overall main thread blocking during continuous polling and React reconciliations.🔬 Measurement: Profile the
WorkflowRunsViewwith React DevTools during an active workflow execution and observe the component's render duration to ensure the derived state filters are skipped whenexecutionsorfilterStatushave not changed.PR created automatically by Jules for task 8211553389188011161 started by @Psyborgs-git