# Behavior traces — vercel/turborepo

> Canonical page: https://codevetter.com/unpack/turborepo/behavior-traces

# Behavior traces — vercel/turborepo

Scanned commit 2540ee1d740bb96bf249459a7957ef4b380c9e43 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Three concrete flows were followed: CLI startup, task execution with cache persistence, and standard login with credential persistence. The traces retain branches that change execution, including local-binary selection, graph-only runs, cache hits, cache failures, and existing-token reuse. These are source-derived execution sequences, not runtime observations.
- Startup: binary main → turborepo_cli::main → raise_open_file_limit → shim::run; internal LSP requests return before this ordinary path. — [crates/turborepo/src/main.rs#L85-104](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo/src/main.rs#L85-L104) [crates/turborepo-cli/src/lib.rs#L53-57](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/lib.rs#L53-L57)
- Startup continues: normalize_config_dir_env_vars → ShimArgs::parse → TurboSubscriber construction → ShimRuntime::new → run_with_args; TurboCliRunner then delegates to cli::run. — [crates/turborepo-cli/src/shim.rs#L54-59](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/shim.rs#L54-L59) [crates/turborepo-cli/src/shim.rs#L215-252](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/shim.rs#L215-L252)
- CLI startup: Args::new → init_rayon_pool → Tokio runtime → run_main → deferred telemetry initialization → get_command → inference flags and repository root → agent guidance maintenance. — [crates/turborepo-cli/src/cli/mod.rs#L333-353](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/cli/mod.rs#L333-L353) [crates/turborepo-cli/src/cli/mod.rs#L378-390](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/cli/mod.rs#L378-L390) [crates/turborepo-cli/src/cli/mod.rs#L416-441](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/cli/mod.rs#L416-L441)
- Run setup: commands::run creates signals and log sinks → RunBuilder::new → execute_run → run_with_ui → RunBuilder::build → start_ui → Run::run. — [crates/turborepo-cli/src/commands/run.rs#L59-78](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/commands/run.rs#L59-L78) [crates/turborepo-cli/src/commands/run.rs#L102-142](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/commands/run.rs#L102-L142) [crates/turborepo-cli/src/commands/run.rs#L171-200](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/commands/run.rs#L171-L200)
- Run execution: Run::run starts proxy/shutdown services; graph mode writes the graph and returns 0, otherwise execute_visitor constructs Visitor, enables dry-run when requested, visits the engine, and derives the exit code. — [crates/turborepo-run/src/lib.rs#L1320-1356](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-run/src/lib.rs#L1320-L1356) [crates/turborepo-run/src/lib.rs#L1242-1278](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-run/src/lib.rs#L1242-L1278)
- Task branch: execute_inner → restore_outputs; a hit updates the hash tracker and skips spawning, while a miss or logged fetch error proceeds through serial-group locking to ProcessManager::spawn. — [crates/turborepo-task-executor/src/exec.rs#L356-403](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/exec.rs#L356-L403)
- Persistence branch: execute flushes output and sends the completion callback before save_outputs; only a successful Run outcome is eligible, and FSCache writes archive entries, atomically finishes the archive, then writes sidecars. — [crates/turborepo-task-executor/src/exec.rs#L259-304](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/exec.rs#L259-L304) [crates/turborepo-task-executor/src/exec.rs#L612-614](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/exec.rs#L612-L614) [crates/turborepo-cache/src/fs.rs#L285-305](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cache/src/fs.rs#L285-L305)
- Standard login: login → login_no_sso → auth_login; reusable credentials return without writing, otherwise Vercel device login performs discover → authorization request → poll_for_token → get_user, then write_token persists the returned credentials. — [crates/turborepo-cli/src/commands/login/mod.rs#L85-111](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/commands/login/mod.rs#L85-L111) [crates/turborepo-auth/src/auth/login.rs#L282-307](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-auth/src/auth/login.rs#L282-L307) [crates/turborepo-auth/src/auth/login.rs#L333-353](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-auth/src/auth/login.rs#L333-L353) [crates/turborepo-cli/src/commands/login/mod.rs#L175-182](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/commands/login/mod.rs#L175-L182)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
