query Changed
Reacts to the user typing: waits out a short debounce, then searches.
A new keystroke cancels only the pending wait, never a request already in flight. Results therefore arrive while the user is still typing rather than after they stop, and a response is applied only when it is for the most recent query — so an earlier lookup that resolves late is discarded instead of replacing newer results.