-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit ebc2048
fix: Use -z option to git commands to handle unicode file paths (#10844)
### Description
## Summary
Added the `-z` option to git commands to separate file paths with null
bytes (`\0`) instead of newlines.
## Why?
When git diff outputs file paths containing Unicode characters (e.g.,
`apps/docs/app/테스트.ts`), it wraps them in quotes (e.g.,
`"apps/docs/app/\355\205\214\354\212\244\355\212\270.ts"`). This causes
issues in the `is_file_in_package` function, which fails to properly
recognize these file paths.
## Importance
If a filename contains non-ASCII characters (such as CJK), Turbo’s
filter logic fails.
This creates friction for developers in non-English locales, including
myself.
In particular, turbo-ignore does not trigger correctly, which can break
deployments on Vercel.
## Solution
Changes made:
1. Added `-z` option to `diff-tree`, `ls-files`, and `diff` commands
2. Modified `add_files_from_stdout` function to process null
byte-separated output
### Testing Instructions
## Reproducing Unicode Filename Diff Format
1. Clone https://github.com/hahnlee/repro-turbo-with-unicode
2. Compare outputs of:
```bash
git diff-tree -r --name-only --no-commit-id HEAD~1 HEAD
git diff-tree -r --name-only --no-commit-id HEAD~2 HEAD
```
<details>
<summary>git diff-tree -r --name-only --no-commit-id HEAD~1
HEAD</summary>
<pre><code>"apps/docs/app/\355\205\214\354\212\244\355\212\270.ts"</code></pre>
</details>
<details>
<summary>git diff-tree -r --name-only --no-commit-id HEAD~2
HEAD</summary>
<pre><code>apps/docs/app/test.ts
"apps/docs/app/\355\205\214\354\212\244\355\212\270.ts"</code></pre>
</details>
3. Contrast with the -z form:
```bash
git diff-tree -r --name-only --no-commit-id -z HEAD~1 HEAD
```
Here filenames are emitted as raw UTF-8 with NUL delimiters (no quotes).
```bash
apps/docs/app/테스트.ts
```
## Reproducing the Turbo Failure
1. Clone https://github.com/hahnlee/repro-turbo-with-unicode
2. Compare outputs of:
```bash
turbo run "build" --filter="docs...[HEAD~1]" --dry=json -vv
turbo run "build" --filter="docs...[HEAD~2]" --dry=json -vv
```
<details>
<summary>turbo run "build" --filter="docs...[HEAD~1]" --dry=json
-vv</summary>
```bash
2025-09-13T14:41:25.578+0900 [DEBUG] turborepo_lib::shim: Global turbo version: 2.5.6
2025-09-13T14:41:25.586+0900 [DEBUG] turborepo_lib::shim: Repository Root: /Users/hahnlee/Work/repro-turbo-with-unicode
2025-09-13T14:41:25.587+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:25.587+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:25.587+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/.pnpm/[email protected]/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:25.587+0900 [DEBUG] turborepo_lib::shim::local_turbo_config: downloading correct local version not enabled
2025-09-13T14:41:25.590+0900 [DEBUG] turborepo_lib::shim: Running command as global turbo
WARNING No locally installed `turbo` found in your repository. Using globally installed version (2.5.6), which can cause unexpected behavior.
Installing the version in your repository (^2.5.6) before calling `turbo` will result in more predictable behavior across environments.
turbo 2.5.6
2025-09-13T14:41:25.976+0900 [DEBUG] turborepo_process: spawning children with pty: true
2025-09-13T14:41:25.978+0900 [DEBUG] turborepo_lib::daemon::connector: looking for pid in lockfile: AbsoluteSystemPathBuf("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.pid")
2025-09-13T14:41:25.979+0900 [DEBUG] turborepo_lib::daemon::connector: found pid: 85135
2025-09-13T14:41:25.979+0900 [DEBUG] turborepo_lib::daemon::connector: got daemon with pid: 85135
2025-09-13T14:41:25.979+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:25.979+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:25.979+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:25.980+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:25.980+0900 [DEBUG] turborepo_lib::daemon::connector: connecting to socket: /var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.sock
2025-09-13T14:41:25.982+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:41:25.984+0900 [DEBUG] turborepo_lib::daemon::connector: connected in 5365µs
2025-09-13T14:41:25.984+0900 [DEBUG] turborepo_lib::run::builder: running in daemon mode
2025-09-13T14:41:25.985+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:25.985+0900 [DEBUG] turborepo_repository::discovery: discovering packages using primary strategy
2025-09-13T14:41:25.985+0900 [DEBUG] turborepo_repository::discovery: discovering packages using fallback strategy
2025-09-13T14:41:25.985+0900 [DEBUG] turborepo_repository::discovery: attempting primary strategy
2025-09-13T14:41:25.985+0900 [DEBUG] turborepo_lib::run::package_discovery: discovering packages using daemon
2025-09-13T14:41:25.985+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:41:25.996+0900 [DEBUG] turborepo_repository::discovery: primary strategy timed out, attempting fallback strategy
2025-09-13T14:41:25.996+0900 [DEBUG] turborepo_repository::discovery: discovering packages using local strategy
2025-09-13T14:41:25.997+0900 [DEBUG] globwalk: processing includes: ["apps/*/package.json", "packages/*/package.json"]
2025-09-13T14:41:25.997+0900 [DEBUG] globwalk: processing excludes: ["**/node_modules/**", "**/bower_components/**"]
2025-09-13T14:41:25.997+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/apps/*/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/*/package.json"]
2025-09-13T14:41:25.997+0900 [DEBUG] globwalk: processed excludes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/**/node_modules/**", "/Users/hahnlee/Work/repro-turbo-with-unicode/**/bower_components/**"]
2025-09-13T14:41:26.000+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:26.000+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:26.005+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:26.005+0900 [DEBUG] turborepo_lib::run::task_access: TASK ACCESS TRACE: unable to restore config from cache
2025-09-13T14:41:26.046+0900 [DEBUG] turborepo_lib::run::scope::change_detector: lockfile did not change
2025-09-13T14:41:26.046+0900 [DEBUG] turborepo_lib::run::scope::change_detector: changed files: ["\"apps/docs/app/\\355\\205\\214\\354\\212\\244\\355\\212\\270.ts\""]
2025-09-13T14:41:26.047+0900 [DEBUG] turborepo_repository::change_mapper: "apps/docs/app/\355\205\214\354\212\244\355\212\270.ts" changes "//"
2025-09-13T14:41:26.047+0900 [DEBUG] turborepo_repository::change_mapper: the lockfile did not change
2025-09-13T14:41:26.047+0900 [DEBUG] turborepo_lib::run::scope::change_detector: 1 packages changed: ["//"]
2025-09-13T14:41:26.048+0900 [DEBUG] turborepo_lib::run::global_hash: global hash env vars []
2025-09-13T14:41:26.048+0900 [DEBUG] turborepo_lib::run::global_hash: external deps hash: 357e0f85fc2e872a
2025-09-13T14:41:26.073+0900 [DEBUG] turborepo_lib::run: running visitor
{
"id": "32dEXDplJjKaIuDHOXPZJupOaA0",
"version": "1",
"turboVersion": "2.5.6",
"monorepo": true,
"globalCacheInputs": {
"rootKey": "I can’t see ya, but I know you’re here",
"files": {},
"hashOfExternalDependencies": "357e0f85fc2e872a",
"hashOfInternalDependencies": "",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
},
"engines": {
"node": ">=18"
}
},
"packages": [],
"envMode": "strict",
"frameworkInference": true,
"tasks": [],
"user": "",
"scm": {
"type": "git",
"sha": "7f951fdf95bf1ec5773427b2c04a4bc54ea0d32a",
"branch": "main"
}
}
2025-09-13T14:41:26.075+0900 [DEBUG] turborepo_process: waiting for 0 processes to exit
2025-09-13T14:41:26.598+0900 [DEBUG] turborepo_telemetry: telemetry handle closed
```
</details>
<details>
<summary>turbo run "build" --filter="docs...[HEAD~2]" --dry=json
-vv</summary>
```bash
2025-09-13T14:41:58.160+0900 [DEBUG] turborepo_lib::shim: Global turbo version: 2.5.6
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim: Repository Root: /Users/hahnlee/Work/repro-turbo-with-unicode
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/.pnpm/[email protected]/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim::local_turbo_config: downloading correct local version not enabled
2025-09-13T14:41:58.161+0900 [DEBUG] turborepo_lib::shim: Running command as global turbo
WARNING No locally installed `turbo` found in your repository. Using globally installed version (2.5.6), which can cause unexpected behavior.
Installing the version in your repository (^2.5.6) before calling `turbo` will result in more predictable behavior across environments.
turbo 2.5.6
2025-09-13T14:41:58.538+0900 [DEBUG] turborepo_process: spawning children with pty: true
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: looking for pid in lockfile: AbsoluteSystemPathBuf("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.pid")
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: found pid: 85135
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: got daemon with pid: 85135
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:41:58.539+0900 [DEBUG] turborepo_lib::daemon::connector: connecting to socket: /var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.sock
2025-09-13T14:41:58.539+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_lib::daemon::connector: connected in 2610µs
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_lib::run::builder: running in daemon mode
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_repository::discovery: discovering packages using primary strategy
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_repository::discovery: discovering packages using fallback strategy
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_repository::discovery: attempting primary strategy
2025-09-13T14:41:58.541+0900 [DEBUG] turborepo_lib::run::package_discovery: discovering packages using daemon
2025-09-13T14:41:58.541+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:41:58.552+0900 [DEBUG] turborepo_repository::discovery: primary strategy timed out, attempting fallback strategy
2025-09-13T14:41:58.552+0900 [DEBUG] turborepo_repository::discovery: discovering packages using local strategy
2025-09-13T14:41:58.553+0900 [DEBUG] globwalk: processing includes: ["apps/*/package.json", "packages/*/package.json"]
2025-09-13T14:41:58.553+0900 [DEBUG] globwalk: processing excludes: ["**/node_modules/**", "**/bower_components/**"]
2025-09-13T14:41:58.553+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/apps/*/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/*/package.json"]
2025-09-13T14:41:58.553+0900 [DEBUG] globwalk: processed excludes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/**/node_modules/**", "/Users/hahnlee/Work/repro-turbo-with-unicode/**/bower_components/**"]
2025-09-13T14:41:58.555+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:58.555+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:58.559+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:41:58.559+0900 [DEBUG] turborepo_lib::run::task_access: TASK ACCESS TRACE: unable to restore config from cache
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::run::scope::change_detector: lockfile did not change
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::run::scope::change_detector: changed files: ["apps/docs/app/test.ts", "\"apps/docs/app/\\355\\205\\214\\354\\212\\244\\355\\212\\270.ts\""]
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_repository::change_mapper: apps/docs/app/test.ts changes "docs"
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_repository::change_mapper: "apps/docs/app/\355\205\214\354\212\244\355\212\270.ts" changes "//"
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_repository::change_mapper: the lockfile did not change
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::run::scope::change_detector: 2 packages changed: ["docs", "//"]
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.601+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processing includes: ["packages/typescript-config/$TURBO_DEFAULT$", "packages/typescript-config/.env*", "packages/typescript-config/package.json", "packages/typescript-config/turbo.json", "packages/typescript-config/turbo.jsonc"]
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.json' doesn't have metadata
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.jsonc' doesn't have metadata
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.jsonc"]
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processing includes: ["packages/ui/$TURBO_DEFAULT$", "packages/ui/.env*", "packages/ui/package.json", "packages/ui/turbo.json", "packages/ui/turbo.jsonc"]
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.json' doesn't have metadata
2025-09-13T14:41:58.630+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.jsonc' doesn't have metadata
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.jsonc"]
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processing includes: ["packages/eslint-config/$TURBO_DEFAULT$", "packages/eslint-config/.env*", "packages/eslint-config/package.json", "packages/eslint-config/turbo.json", "packages/eslint-config/turbo.jsonc"]
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.json' doesn't have metadata
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.jsonc' doesn't have metadata
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.jsonc"]
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processing includes: ["apps/docs/$TURBO_DEFAULT$", "apps/docs/.env*", "apps/docs/package.json", "apps/docs/turbo.json", "apps/docs/turbo.jsonc"]
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.json' doesn't have metadata
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.jsonc' doesn't have metadata
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.jsonc"]
2025-09-13T14:41:58.631+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:41:58.632+0900 [DEBUG] turborepo_lib::run::global_hash: global hash env vars []
2025-09-13T14:41:58.632+0900 [DEBUG] turborepo_lib::run::global_hash: external deps hash: 357e0f85fc2e872a
2025-09-13T14:41:58.657+0900 [DEBUG] turborepo_lib::run: running visitor
2025-09-13T14:41:58.658+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/typescript-config#build hash is e2c5fe89ff31c9f0
2025-09-13T14:41:58.658+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/eslint-config#build hash is 90d1c675729e05b6
2025-09-13T14:41:58.658+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/ui#build hash is 1bd745cc8d4fc385
2025-09-13T14:41:58.659+0900 [DEBUG] turborepo_lib::task_hash: auto detected framework for docs
2025-09-13T14:41:58.659+0900 [DEBUG] turborepo_lib::task_hash: framework: nextjs, env_prefix: ["NEXT_PUBLIC_*"]
2025-09-13T14:41:58.659+0900 [DEBUG] turborepo_lib::task_graph::visitor: task docs#build hash is d422c82cfc568523
{
"id": "32dEbIgpqFdNJ8WJMhspSbFAKyL",
"version": "1",
"turboVersion": "2.5.6",
"monorepo": true,
"globalCacheInputs": {
"rootKey": "I can’t see ya, but I know you’re here",
"files": {},
"hashOfExternalDependencies": "357e0f85fc2e872a",
"hashOfInternalDependencies": "",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
},
"engines": {
"node": ">=18"
}
},
"packages": [
"docs"
],
"envMode": "strict",
"frameworkInference": true,
"tasks": [
{
"taskId": "@repo/eslint-config#build",
"task": "build",
"package": "@repo/eslint-config",
"hash": "90d1c675729e05b6",
"inputs": {
"README.md": "8b42d901b0e8dee2e21313ec0442c50e9fef038a",
"base.js": "09d316efdb6f6db4f6141815e87980a598f6ff54",
"next.js": "6bf01a74edb72f94da7957298427c89debdedc34",
"package.json": "c18143d61895bfef8c29778d7ee6b255d72b74d3",
"react-internal.js": "daeccba24d4f4b95ad293d175b570acd126628a9"
},
"hashOfExternalDependencies": "c87f501e87a7855f",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/eslint-config/.turbo/turbo-build.log",
"directory": "packages/eslint-config",
"dependencies": [],
"dependents": [
"@repo/ui#build",
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "@repo/typescript-config#build",
"task": "build",
"package": "@repo/typescript-config",
"hash": "e2c5fe89ff31c9f0",
"inputs": {
"base.json": "5117f2a3d1c5fe54a344a7152acbe366fe63cdda",
"nextjs.json": "e6defa48fce860cf5570f268d4880161a74789c8",
"package.json": "27c0e60436aac79bd14661e016c8c5721c5db6d6",
"react-library.json": "c3a1b26fbb3b6ad5d606836247a8ca3a1be051c6"
},
"hashOfExternalDependencies": "459c029558afe716",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/typescript-config/.turbo/turbo-build.log",
"directory": "packages/typescript-config",
"dependencies": [],
"dependents": [
"@repo/ui#build",
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "@repo/ui#build",
"task": "build",
"package": "@repo/ui",
"hash": "1bd745cc8d4fc385",
"inputs": {
"eslint.config.mjs": "19170f88edaf8893fdc80d2c616c081f2d838861",
"package.json": "c820347d203fac3d8a6f313e87e4f11888863821",
"src/button.tsx": "78e5420c3f606fcc5959ef45cf9c930148d1ec73",
"src/card.tsx": "7b988937b9a1d98eca18d2b87fdba837a4fe3dd0",
"src/code.tsx": "f7cbd22a8618fcb6dca4341cc15dccfb48c0e74d",
"tsconfig.json": "ca86687c4bb77d8aed541bc31f9e81156880764a"
},
"hashOfExternalDependencies": "4832a154da2aa18b",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/ui/.turbo/turbo-build.log",
"directory": "packages/ui",
"dependencies": [
"@repo/eslint-config#build",
"@repo/typescript-config#build"
],
"dependents": [
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "docs#build",
"task": "build",
"package": "docs",
"hash": "d422c82cfc568523",
"inputs": {
".gitignore": "f886745c5216623d70058427ddd40ecf6ebf84f7",
"README.md": "a98bfa8140e14c75a3675f1666a6f587d4d25fe5",
"app/favicon.ico": "718d6fea4835ec2d246af9800eddb7ffb276240c",
"app/fonts/GeistMonoVF.woff": "f2ae185cbfd16946a534d819e9eb03924abbcc49",
"app/fonts/GeistVF.woff": "1b62daacff96dad6584e71cd962051b82957c313",
"app/globals.css": "6af7ecbbb8656b1295acccd1b6cdd1da88d6c855",
"app/layout.tsx": "8469537555ad68b14377be257758ab1876d3ff5b",
"app/page.module.css": "3630662c6f3119c94bea5a7fdeb98d99df322f2f",
"app/page.tsx": "e726335a89cff289eab34248f5aacab1fa6e6523",
"app/test.ts": "533170cc85fd9263afcdb553dddc34bffe7afb44",
"app/테스트.ts": "533170cc85fd9263afcdb553dddc34bffe7afb44",
"eslint.config.js": "e8759ff50fbca5c63fbaac5154b7a7d5876f72be",
"next.config.js": "4678774e6d606704bce1897a5dab960cd798bf66",
"package.json": "a9c661cb7961bf71d710d101b9d96c551c1e3f3b",
"public/file-text.svg": "9cfb3c98674c3553ae58854c31f9302cc1f72a24",
"public/globe.svg": "4230a3d2071c406b7e4c7b297d247fc194be540c",
"public/next.svg": "5174b28c565c285e3e312ec5178be64fbeca8398",
"public/turborepo-dark.svg": "dae38fed549745d94f3380a9280864ae0f797c1f",
"public/turborepo-light.svg": "ddea915815874759a0cd6dd54dbd197b874c3c99",
"public/vercel.svg": "0164ddc5ad9db8a097651e72e9fe9c9caf6e394a",
"public/window.svg": "bbc780069c332dbf9b048a30e7d1f5358921c534",
"tsconfig.json": "7aef056980d5671f71555aa0fe6abd88f6be8305"
},
"hashOfExternalDependencies": "1814afc0d83c6c37",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "next build",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "apps/docs/.turbo/turbo-build.log",
"directory": "apps/docs",
"dependencies": [
"@repo/eslint-config#build",
"@repo/typescript-config#build",
"@repo/ui#build"
],
"dependents": [],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "nextjs",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
}
],
"user": "",
"scm": {
"type": "git",
"sha": "7f951fdf95bf1ec5773427b2c04a4bc54ea0d32a",
"branch": "main"
}
}
...Finishing writing to cache... 2025-09-13T14:41:58.660+0900 [DEBUG] turborepo_process: waiting for 0 processes to exit
2025-09-13T14:41:59.201+0900 [DEBUG] turborepo_telemetry: telemetry handle closed
```
</details>
In both cases, `apps/docs` was modified.
However, in the first case the `docs` build is **not** triggered due to
quoted path handling.
<details>
<summary>Reproduction after this change</summary>
```bash
2025-09-13T14:45:11.624+0900 [DEBUG] turborepo_lib::shim: Global turbo version: 2.5.7-canary.0
2025-09-13T14:45:11.628+0900 [DEBUG] turborepo_lib::shim: Repository Root: /Users/hahnlee/Work/repro-turbo-with-unicode
2025-09-13T14:45:11.629+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:45:11.629+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/turbo/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:45:11.629+0900 [DEBUG] turborepo_lib::shim::local_turbo_state: No local turbo binary found at: /Users/hahnlee/Work/repro-turbo-with-unicode/node_modules/.pnpm/[email protected]/node_modules/turbo-darwin-arm64/bin/turbo
2025-09-13T14:45:11.629+0900 [DEBUG] turborepo_lib::shim::local_turbo_config: downloading correct local version not enabled
2025-09-13T14:45:11.631+0900 [DEBUG] turborepo_lib::shim: Running command as global turbo
WARNING No locally installed `turbo` found in your repository. Using globally installed version (2.5.7-canary.0), which can cause unexpected behavior.
Installing the version in your repository (^2.5.6) before calling `turbo` will result in more predictable behavior across environments.
turbo 2.5.7-canary.0
2025-09-13T14:45:12.027+0900 [DEBUG] turborepo_process: spawning children with pty: true
2025-09-13T14:45:12.028+0900 [DEBUG] turborepo_lib::daemon::connector: looking for pid in lockfile: AbsoluteSystemPathBuf("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.pid")
2025-09-13T14:45:12.029+0900 [DEBUG] turborepo_lib::daemon::connector: found pid: 85135
2025-09-13T14:45:12.029+0900 [DEBUG] turborepo_lib::daemon::connector: got daemon with pid: 85135
2025-09-13T14:45:12.030+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:45:12.030+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:45:12.030+0900 [DEBUG] turborepo_lib::daemon::connector: creating AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:45:12.030+0900 [DEBUG] turborepo_lib::daemon::connector: watching AbsoluteSystemPath("/var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71")
2025-09-13T14:45:12.030+0900 [DEBUG] turborepo_lib::daemon::connector: connecting to socket: /var/folders/t4/qqflgy6n3rgd5dcnv2r4x0nh0000gn/T/turbod/a3408d9dd9f4ac71/turbod.sock
2025-09-13T14:45:12.031+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:45:12.032+0900 [DEBUG] turborepo_lib::daemon::connector: connected in 3976µs
2025-09-13T14:45:12.032+0900 [DEBUG] turborepo_lib::run::builder: running in daemon mode
2025-09-13T14:45:12.033+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:45:12.033+0900 [DEBUG] turborepo_repository::discovery: discovering packages using primary strategy
2025-09-13T14:45:12.033+0900 [DEBUG] turborepo_repository::discovery: discovering packages using fallback strategy
2025-09-13T14:45:12.033+0900 [DEBUG] turborepo_repository::discovery: attempting primary strategy
2025-09-13T14:45:12.033+0900 [DEBUG] turborepo_lib::run::package_discovery: discovering packages using daemon
2025-09-13T14:45:12.033+0900 [DEBUG] tower::buffer::worker: "processing request"
2025-09-13T14:45:12.044+0900 [DEBUG] turborepo_repository::discovery: primary strategy timed out, attempting fallback strategy
2025-09-13T14:45:12.044+0900 [DEBUG] turborepo_repository::discovery: discovering packages using local strategy
2025-09-13T14:45:12.045+0900 [DEBUG] globwalk: processing includes: ["apps/*/package.json", "packages/*/package.json"]
2025-09-13T14:45:12.045+0900 [DEBUG] globwalk: processing excludes: ["**/node_modules/**", "**/bower_components/**"]
2025-09-13T14:45:12.045+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/apps/*/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/*/package.json"]
2025-09-13T14:45:12.045+0900 [DEBUG] globwalk: processed excludes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/**/node_modules/**", "/Users/hahnlee/Work/repro-turbo-with-unicode/**/bower_components/**"]
2025-09-13T14:45:12.049+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:45:12.050+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:45:12.061+0900 [DEBUG] turborepo_repository::discovery: discovering packages using caching strategy
2025-09-13T14:45:12.061+0900 [DEBUG] turborepo_lib::run::task_access: TASK ACCESS TRACE: unable to restore config from cache
2025-09-13T14:45:12.106+0900 [DEBUG] turborepo_lib::run::scope::change_detector: lockfile did not change
2025-09-13T14:45:12.106+0900 [DEBUG] turborepo_lib::run::scope::change_detector: changed files: ["apps/docs/app/테스트.ts"]
2025-09-13T14:45:12.106+0900 [DEBUG] turborepo_repository::change_mapper: apps/docs/app/테스트.ts changes "docs"
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_repository::change_mapper: the lockfile did not change
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::run::scope::change_detector: 1 packages changed: ["docs"]
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.107+0900 [DEBUG] turborepo_lib::turbo_json::loader: path: /Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config, turbo_json: Ok(None), turbo_jsonc: Ok(None)
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing includes: ["packages/ui/$TURBO_DEFAULT$", "packages/ui/.env*", "packages/ui/package.json", "packages/ui/turbo.json", "packages/ui/turbo.jsonc"]
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing includes: ["packages/eslint-config/$TURBO_DEFAULT$", "packages/eslint-config/.env*", "packages/eslint-config/package.json", "packages/eslint-config/turbo.json", "packages/eslint-config/turbo.jsonc"]
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.json' doesn't have metadata
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.jsonc' doesn't have metadata
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/ui/turbo.jsonc"]
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.json' doesn't have metadata
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing includes: ["packages/typescript-config/$TURBO_DEFAULT$", "packages/typescript-config/.env*", "packages/typescript-config/package.json", "packages/typescript-config/turbo.json", "packages/typescript-config/turbo.jsonc"]
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.json' doesn't have metadata
2025-09-13T14:45:12.139+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.jsonc' doesn't have metadata
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/typescript-config/turbo.jsonc"]
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.jsonc' doesn't have metadata
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/packages/eslint-config/turbo.jsonc"]
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:45:12.140+0900 [DEBUG] globwalk: processing includes: ["apps/docs/$TURBO_DEFAULT$", "apps/docs/.env*", "apps/docs/package.json", "apps/docs/turbo.json", "apps/docs/turbo.jsonc"]
2025-09-13T14:45:12.141+0900 [DEBUG] globwalk: processing excludes: []
2025-09-13T14:45:12.141+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.json' doesn't have metadata
2025-09-13T14:45:12.141+0900 [DEBUG] globwalk: '/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.jsonc' doesn't have metadata
2025-09-13T14:45:12.141+0900 [DEBUG] globwalk: processed includes: ["/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/$TURBO_DEFAULT$", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/.env*", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/package.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.json", "/Users/hahnlee/Work/repro-turbo-with-unicode/apps/docs/turbo.jsonc"]
2025-09-13T14:45:12.141+0900 [DEBUG] globwalk: processed excludes: []
2025-09-13T14:45:12.143+0900 [DEBUG] turborepo_lib::run::global_hash: global hash env vars []
2025-09-13T14:45:12.143+0900 [DEBUG] turborepo_lib::run::global_hash: external deps hash: 357e0f85fc2e872a
2025-09-13T14:45:12.169+0900 [DEBUG] turborepo_lib::run: running visitor
2025-09-13T14:45:12.170+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/typescript-config#build hash is e2c5fe89ff31c9f0
2025-09-13T14:45:12.171+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/eslint-config#build hash is 90d1c675729e05b6
2025-09-13T14:45:12.172+0900 [DEBUG] turborepo_lib::task_graph::visitor: task @repo/ui#build hash is 1bd745cc8d4fc385
2025-09-13T14:45:12.172+0900 [DEBUG] turborepo_lib::task_hash: auto detected framework for docs
2025-09-13T14:45:12.172+0900 [DEBUG] turborepo_lib::task_hash: framework: nextjs, env_prefix: ["NEXT_PUBLIC_*"]
2025-09-13T14:45:12.172+0900 [DEBUG] turborepo_lib::task_graph::visitor: task docs#build hash is d422c82cfc568523
{
"id": "32dEzfzak5BlK0KgGRWneRXPWoe",
"version": "1",
"turboVersion": "2.5.7-canary.0",
"monorepo": true,
"globalCacheInputs": {
"rootKey": "I can’t see ya, but I know you’re here",
"files": {},
"hashOfExternalDependencies": "357e0f85fc2e872a",
"hashOfInternalDependencies": "",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
},
"engines": {
"node": ">=18"
}
},
"packages": [
"docs"
],
"envMode": "strict",
"frameworkInference": true,
"tasks": [
{
"taskId": "@repo/eslint-config#build",
"task": "build",
"package": "@repo/eslint-config",
"hash": "90d1c675729e05b6",
"inputs": {
"README.md": "8b42d901b0e8dee2e21313ec0442c50e9fef038a",
"base.js": "09d316efdb6f6db4f6141815e87980a598f6ff54",
"next.js": "6bf01a74edb72f94da7957298427c89debdedc34",
"package.json": "c18143d61895bfef8c29778d7ee6b255d72b74d3",
"react-internal.js": "daeccba24d4f4b95ad293d175b570acd126628a9"
},
"hashOfExternalDependencies": "c87f501e87a7855f",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/eslint-config/.turbo/turbo-build.log",
"directory": "packages/eslint-config",
"dependencies": [],
"dependents": [
"@repo/ui#build",
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "@repo/typescript-config#build",
"task": "build",
"package": "@repo/typescript-config",
"hash": "e2c5fe89ff31c9f0",
"inputs": {
"base.json": "5117f2a3d1c5fe54a344a7152acbe366fe63cdda",
"nextjs.json": "e6defa48fce860cf5570f268d4880161a74789c8",
"package.json": "27c0e60436aac79bd14661e016c8c5721c5db6d6",
"react-library.json": "c3a1b26fbb3b6ad5d606836247a8ca3a1be051c6"
},
"hashOfExternalDependencies": "459c029558afe716",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/typescript-config/.turbo/turbo-build.log",
"directory": "packages/typescript-config",
"dependencies": [],
"dependents": [
"@repo/ui#build",
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "@repo/ui#build",
"task": "build",
"package": "@repo/ui",
"hash": "1bd745cc8d4fc385",
"inputs": {
"eslint.config.mjs": "19170f88edaf8893fdc80d2c616c081f2d838861",
"package.json": "c820347d203fac3d8a6f313e87e4f11888863821",
"src/button.tsx": "78e5420c3f606fcc5959ef45cf9c930148d1ec73",
"src/card.tsx": "7b988937b9a1d98eca18d2b87fdba837a4fe3dd0",
"src/code.tsx": "f7cbd22a8618fcb6dca4341cc15dccfb48c0e74d",
"tsconfig.json": "ca86687c4bb77d8aed541bc31f9e81156880764a"
},
"hashOfExternalDependencies": "4832a154da2aa18b",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "<NONEXISTENT>",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "packages/ui/.turbo/turbo-build.log",
"directory": "packages/ui",
"dependencies": [
"@repo/eslint-config#build",
"@repo/typescript-config#build"
],
"dependents": [
"docs#build"
],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
},
{
"taskId": "docs#build",
"task": "build",
"package": "docs",
"hash": "d422c82cfc568523",
"inputs": {
".gitignore": "f886745c5216623d70058427ddd40ecf6ebf84f7",
"README.md": "a98bfa8140e14c75a3675f1666a6f587d4d25fe5",
"app/favicon.ico": "718d6fea4835ec2d246af9800eddb7ffb276240c",
"app/fonts/GeistMonoVF.woff": "f2ae185cbfd16946a534d819e9eb03924abbcc49",
"app/fonts/GeistVF.woff": "1b62daacff96dad6584e71cd962051b82957c313",
"app/globals.css": "6af7ecbbb8656b1295acccd1b6cdd1da88d6c855",
"app/layout.tsx": "8469537555ad68b14377be257758ab1876d3ff5b",
"app/page.module.css": "3630662c6f3119c94bea5a7fdeb98d99df322f2f",
"app/page.tsx": "e726335a89cff289eab34248f5aacab1fa6e6523",
"app/test.ts": "533170cc85fd9263afcdb553dddc34bffe7afb44",
"app/테스트.ts": "533170cc85fd9263afcdb553dddc34bffe7afb44",
"eslint.config.js": "e8759ff50fbca5c63fbaac5154b7a7d5876f72be",
"next.config.js": "4678774e6d606704bce1897a5dab960cd798bf66",
"package.json": "a9c661cb7961bf71d710d101b9d96c551c1e3f3b",
"public/file-text.svg": "9cfb3c98674c3553ae58854c31f9302cc1f72a24",
"public/globe.svg": "4230a3d2071c406b7e4c7b297d247fc194be540c",
"public/next.svg": "5174b28c565c285e3e312ec5178be64fbeca8398",
"public/turborepo-dark.svg": "dae38fed549745d94f3380a9280864ae0f797c1f",
"public/turborepo-light.svg": "ddea915815874759a0cd6dd54dbd197b874c3c99",
"public/vercel.svg": "0164ddc5ad9db8a097651e72e9fe9c9caf6e394a",
"public/window.svg": "bbc780069c332dbf9b048a30e7d1f5358921c534",
"tsconfig.json": "7aef056980d5671f71555aa0fe6abd88f6be8305"
},
"hashOfExternalDependencies": "1814afc0d83c6c37",
"cache": {
"local": false,
"remote": false,
"status": "MISS",
"timeSaved": 0
},
"command": "next build",
"cliArguments": [],
"outputs": [
".next/**"
],
"excludedOutputs": [
".next/cache/**"
],
"logFile": "apps/docs/.turbo/turbo-build.log",
"directory": "apps/docs",
"dependencies": [
"@repo/eslint-config#build",
"@repo/typescript-config#build",
"@repo/ui#build"
],
"dependents": [],
"with": [],
"resolvedTaskDefinition": {
"outputs": [
"!.next/cache/**",
".next/**"
],
"cache": true,
"dependsOn": [
"^build"
],
"inputs": [
"$TURBO_DEFAULT$",
".env*"
],
"outputLogs": "full",
"persistent": false,
"interruptible": false,
"env": [],
"passThroughEnv": null,
"interactive": false
},
"expandedOutputs": [],
"framework": "nextjs",
"envMode": "strict",
"environmentVariables": {
"specified": {
"env": [],
"passThroughEnv": null
},
"configured": [],
"inferred": [],
"passthrough": null
}
}
],
"user": "",
"scm": {
"type": "git",
"sha": "7f951fdf95bf1ec5773427b2c04a4bc54ea0d32a",
"branch": "main"
}
}
2025-09-13T14:45:12.175+0900 [DEBUG] turborepo_process: waiting for 0 processes to exit
2025-09-13T14:45:12.743+0900 [DEBUG] turborepo_telemetry: telemetry handle closed
```
</details>
---------
Co-authored-by: Anthony Shew <[email protected]>1 parent 445df7e commit ebc2048Copy full SHA for ebc2048
File tree
Expand file treeCollapse file tree
1 file changed
+14
-4
lines changedOpen diff view settings
Filter options
- crates/turborepo-scm/src
Expand file treeCollapse file tree
1 file changed
+14
-4
lines changedOpen diff view settings
Collapse file
crates/turborepo-scm/src/git.rs
Copy file name to clipboardExpand all lines: crates/turborepo-scm/src/git.rs+14-4Lines changed: 14 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
294 | 294 | | |
295 | 295 | | |
296 | 296 | | |
| 297 | + | |
297 | 298 | | |
298 | 299 | | |
299 | 300 | | |
| |||
311 | 312 | | |
312 | 313 | | |
313 | 314 | | |
314 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
315 | 322 | | |
316 | 323 | | |
317 | 324 | | |
318 | 325 | | |
319 | 326 | | |
320 | | - | |
| 327 | + | |
321 | 328 | | |
322 | 329 | | |
323 | 330 | | |
| |||
351 | 358 | | |
352 | 359 | | |
353 | 360 | | |
354 | | - | |
355 | | - | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
356 | 366 | | |
357 | 367 | | |
358 | 368 | | |
| |||
0 commit comments