Problem
Opening a project or using the folder-picker autocomplete silently fails on large home directories / large repos. The client drops the request before the daemon's filesystem scan finishes.
The client uses a 10s request timeout for openProject and getDirectorySuggestions. On a machine with a large home directory, the daemon's directory scan routinely exceeds that, so the client times out and the picker appears broken (no suggestions, or "open" never completes) even though the daemon is still working and eventually responds.
Repro
- Run the daemon on a host with a large home directory (many top-level dirs / a big
~/github).
- Open the project picker and type a path to trigger directory suggestions, or open a large project.
- Observe the picker hang / return nothing after ~10s.
Evidence
Daemon ws_slow_request logs for directory_suggestions_request on such a host (durations in ms):
durationMs: 6532
durationMs: 8443
durationMs: 10670
durationMs: 11211
durationMs: 17313 <- 17s, well past the 10s client timeout
These complete on the daemon side, but the client has already given up.
Proposed fix
Raise the client-side timeouts to match real scan times and debounce the suggestion query so a scan isn't fired on every keystroke. (PR follows.)
Environment
- Daemon on a Linux host with a large
~ (ARM64), client over LAN/Tailscale.
Problem
Opening a project or using the folder-picker autocomplete silently fails on large home directories / large repos. The client drops the request before the daemon's filesystem scan finishes.
The client uses a 10s request timeout for
openProjectandgetDirectorySuggestions. On a machine with a large home directory, the daemon's directory scan routinely exceeds that, so the client times out and the picker appears broken (no suggestions, or "open" never completes) even though the daemon is still working and eventually responds.Repro
~/github).Evidence
Daemon
ws_slow_requestlogs fordirectory_suggestions_requeston such a host (durations in ms):These complete on the daemon side, but the client has already given up.
Proposed fix
Raise the client-side timeouts to match real scan times and debounce the suggestion query so a scan isn't fired on every keystroke. (PR follows.)
Environment
~(ARM64), client over LAN/Tailscale.