mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-19 10:43:08 +00:00
Fixes critical React crash on the Kanban board view (#830)
* Changes from fix/board-react-crash * fix: Prevent cascading re-renders and crashes from high-frequency WS events
This commit is contained in:
@@ -1044,6 +1044,9 @@ export const useAppStore = create<AppState & AppActions>()((set, get) => ({
|
||||
set((state) => {
|
||||
const current = state.autoModeByWorktree[key];
|
||||
if (!current) return state;
|
||||
// Idempotent: skip if task is not in the list to avoid creating new
|
||||
// object references that trigger unnecessary re-renders.
|
||||
if (!current.runningTasks.includes(taskId)) return state;
|
||||
return {
|
||||
autoModeByWorktree: {
|
||||
...state.autoModeByWorktree,
|
||||
@@ -1097,13 +1100,20 @@ export const useAppStore = create<AppState & AppActions>()((set, get) => ({
|
||||
|
||||
addRecentlyCompletedFeature: (featureId: string) => {
|
||||
set((state) => {
|
||||
// Idempotent: skip if already tracked to avoid creating a new Set reference
|
||||
// that triggers unnecessary re-renders in useBoardColumnFeatures.
|
||||
if (state.recentlyCompletedFeatures.has(featureId)) return state;
|
||||
const newSet = new Set(state.recentlyCompletedFeatures);
|
||||
newSet.add(featureId);
|
||||
return { recentlyCompletedFeatures: newSet };
|
||||
});
|
||||
},
|
||||
|
||||
clearRecentlyCompletedFeatures: () => set({ recentlyCompletedFeatures: new Set() }),
|
||||
clearRecentlyCompletedFeatures: () => {
|
||||
// Idempotent: skip if already empty to avoid creating a new Set reference.
|
||||
if (get().recentlyCompletedFeatures.size === 0) return;
|
||||
set({ recentlyCompletedFeatures: new Set() });
|
||||
},
|
||||
|
||||
setMaxConcurrency: (max) => set({ maxConcurrency: max }),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user