Switch completion roots to a new cwd.
Roots completion at cwd immediately and invalidates the file cache.
Project-root discovery (find_project_root) walks the filesystem, so it
is deferred to warm_cache (which runs in a worker thread) rather than
run here on the event loop. Until then cwd is used as a provisional
root, which is a safe narrower scope.