mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-11 14:13:38 +00:00
find_referencing_symbols/request_references could return incomplete results on large TypeScript projects. _wait_for_indexing_start_or_completion waits only _INDEXING_START_GRACE_S (hardcoded 2.0s) for tsserver to *start* emitting $/progress after opening files; if nothing has appeared by then, it assumes no indexing is needed and proceeds immediately. On a large project, tsserver can take longer than that just to resolve the project graph before it even creates the first progress token, so the first cross-file reference query can race a project that is still loading. Every caller of _wait_for_indexing_start_or_completion (the base TypeScript path and the Svelte companion) always calls expect_indexing() first, so the "no progress observed" branch is reached specifically when indexing is already expected; it cannot distinguish "nothing to do" from "not started yet", because the two look identical from the client for as long as tsserver stays quiet. That ambiguity cannot be resolved from client-observable signals alone, so this makes the grace an ls_specific_settings knob (`indexing_start_grace`), the same way indexing_timeout and server_ready_timeout already are, and raises the default from 2.0s to 5.0s. Fixes #1586