turbo
f992b93b - perf: Defer SCM task await to overlap with setup work (#12177)

Commit
188 days ago
perf: Defer SCM task await to overlap with setup work (#12177) ## Summary Defers the `scm_task_await` synchronization point in `RunBuilder::build()` to run after SCM-independent setup work, reducing Time to First Task by letting API client resolution, cache init, turbo.json loading, package graph validation, env var inference, and turbo.json preloading overlap with the background git index construction. A customer's `--profile` trace showed 46ms blocked at `scm_task_await` while eight downstream operations that don't need SCM waited unnecessarily. This change reorders those operations to run before the await. The `turbo_json_loader_setup` check was changed from `task_access.is_enabled()` (which requires constructing `TaskAccess` with `&scm`) to `TaskAccess::check_enabled(&self.repo_root)` — an existing static method that performs the same filesystem check without SCM. ## Changes - **`crates/turborepo-lib/src/run/builder.rs`** — Moved `scm_task_await` from immediately after `pkg_dep_graph_build` to just before `task_access_setup` (the first step that actually needs `&scm`). All SCM-independent work now runs while the background git index build continues.
Author
Parents
Loading