From c9fcf1c40bec34ebb41a6fb693ba5fecb7281780 Mon Sep 17 00:00:00 2001 From: Spencer Tang Date: Wed, 8 Apr 2026 17:07:04 -0400 Subject: [PATCH] fix(cli): stabilize resetFileSearchState closure in useAtCompletion --- packages/cli/src/ui/hooks/useAtCompletion.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/ui/hooks/useAtCompletion.ts b/packages/cli/src/ui/hooks/useAtCompletion.ts index 4a7b9ebc13..67a2e2f984 100644 --- a/packages/cli/src/ui/hooks/useAtCompletion.ts +++ b/packages/cli/src/ui/hooks/useAtCompletion.ts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { useEffect, useReducer, useRef } from 'react'; +import { useEffect, useReducer, useRef, useCallback } from 'react'; import { setTimeout as setTimeoutPromise } from 'node:timers/promises'; import * as path from 'node:path'; import { @@ -224,15 +224,15 @@ export function useAtCompletion(props: UseAtCompletionProps): void { setIsLoadingSuggestions(state.isLoading); }, [state.isLoading, setIsLoadingSuggestions]); - const resetFileSearchState = () => { + const resetFileSearchState = useCallback(() => { fileSearchMap.current.clear(); initEpoch.current += 1; dispatch({ type: 'RESET' }); - }; + }, []); useEffect(() => { resetFileSearchState(); - }, [cwd, config]); + }, [cwd, config, resetFileSearchState]); useEffect(() => { const workspaceContext = config?.getWorkspaceContext?.(); @@ -242,7 +242,7 @@ export function useAtCompletion(props: UseAtCompletionProps): void { workspaceContext.onDirectoriesChanged(resetFileSearchState); return unsubscribe; - }, [config]); + }, [config, resetFileSearchState]); // Reacts to user input (`pattern`) ONLY. useEffect(() => {