Skip to content

Commit 706d4dd

Browse files
nam-hleclaude
andauthored
fix: replace welcome banner emoji with stable unicode char (#547)
## Summary - Replace `🛠️` emoji (U+1F6E0 + U+FE0F variation selector) with `▶` (U+25B6) in the welcome banner - The variation selector caused inconsistent spacing across terminals, leading to flaky snapshot tests - Updated source, spec, snapshots, and create-nadle README ## Test plan - [ ] CI passes on all platforms (Ubuntu, macOS, Windows) - [ ] Welcome banner renders consistently without extra spacing 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 276116b commit 706d4dd

25 files changed

+77
-67
lines changed

packages/create-nadle/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Gradle-inspired task runner for Node.js.
2929

3030
- ⚡ Fast, parallel task execution for monorepos and multi-package workspaces
3131
- 🧩 Dependency-aware workflows with automatic task resolution
32-
- 🛠️ Flexible configuration via TypeScript, JSON, or CLI
32+
- Flexible configuration via TypeScript, JSON, or CLI
3333
- 🔄 Task aliasing and custom task mapping
3434
- 🗂️ Built-in caching for efficient incremental runs
3535
- 📝 Dry run, summary, and detailed logging support

packages/create-nadle/test/__snapshots__/__specs__/pnpm-workspaces.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`given a pnpm monorepo project > should should initialize nadle properly
55
Working Directory: /ROOT/test/__fixtures__/monorepo/__temp__/__{hash}__
66
Command: pnpm nadle build --no-footer --max-workers 1
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/test/__fixtures__/monorepo/__temp__/__{hash}__/node_modules/.pnpm/nadle{version}/node_modules/nadle/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/monorepo/__temp__/__{hash}__/nadle.config.ts
1111

packages/nadle/src/core/reporting/reporter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export class DefaultReporter implements Listener {
125125
const workspaceConfigFileCount = project.workspaces.flatMap((workspace) => workspace.configFilePath ?? []).length;
126126

127127
if (!this.context.options.showConfig) {
128-
this.context.logger.log(c.bold(c.cyan(`🛠️ Welcome to Nadle v${Nadle.version}!`)));
128+
this.context.logger.log(c.bold(c.cyan(` Welcome to Nadle v${Nadle.version}!`)));
129129
this.context.logger.log(`Using Nadle from ${Url.fileURLToPath(import.meta.resolve("nadle"))}`);
130130
this.context.logger.log(
131131
`Loaded configuration from ${project.rootWorkspace.configFilePath}${workspaceConfigFileCount > 0 ? ` and ${workspaceConfigFileCount} other(s) files` : ""}\n`

packages/nadle/test/__snapshots__/builtin-tasks/copy-task.test.ts.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`copyTask > given a file path > can copy it 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer copyFoo
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__/nadle.config.ts
1111
@@ -24,7 +24,7 @@ exports[`copyTask > given a folder path > can copy it 1`] = `
2424
Working Directory: /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__
2525
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer copyAssets
2626
---------- Stdout ------------
27-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
27+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
2828
[log] Using Nadle from /ROOT/lib/index.js
2929
[log] Loaded configuration from /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__/nadle.config.ts
3030
@@ -44,7 +44,7 @@ exports[`copyTask > given a nested destination > creates directories automatical
4444
Working Directory: /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__
4545
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer copyToNested
4646
---------- Stdout ------------
47-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
47+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
4848
[log] Using Nadle from /ROOT/lib/index.js
4949
[log] Loaded configuration from /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__/nadle.config.ts
5050
@@ -63,7 +63,7 @@ exports[`copyTask > with include and exclude options > copies only matching file
6363
Working Directory: /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__
6464
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer copyWithFilter
6565
---------- Stdout ------------
66-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
66+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
6767
[log] Using Nadle from /ROOT/lib/index.js
6868
[log] Loaded configuration from /ROOT/test/__fixtures__/copy-task/__temp__/__{hash}__/nadle.config.ts
6969

packages/nadle/test/__snapshots__/builtin-tasks/delete-task.test.ts.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`deleteTask > given a file path > can delete it 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteFileBaz
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
1111
@@ -23,7 +23,7 @@ exports[`deleteTask > given a folder name > can delete it 1`] = `
2323
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
2424
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteFolderA
2525
---------- Stdout ------------
26-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
26+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
2727
[log] Using Nadle from /ROOT/lib/index.js
2828
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
2929
@@ -41,7 +41,7 @@ exports[`deleteTask > given a folder path > can delete it 1`] = `
4141
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
4242
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteFolderB1
4343
---------- Stdout ------------
44-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
44+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
4545
[log] Using Nadle from /ROOT/lib/index.js
4646
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
4747
@@ -59,7 +59,7 @@ exports[`deleteTask > given a glob > can delete all files match the glob 1`] = `
5959
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
6060
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteJsonFiles
6161
---------- Stdout ------------
62-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
62+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
6363
[log] Using Nadle from /ROOT/lib/index.js
6464
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
6565
@@ -77,7 +77,7 @@ exports[`deleteTask > given a glob with enable info log > can print will-delete
7777
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
7878
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteJsonFiles --log-level info
7979
---------- Stdout ------------
80-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
80+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8181
[log] Using Nadle from /ROOT/lib/index.js
8282
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
8383
@@ -153,7 +153,7 @@ exports[`deleteTask > given multiple file paths > can delete them 1`] = `
153153
Working Directory: /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__
154154
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer deleteFilesFooBar
155155
---------- Stdout ------------
156-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
156+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
157157
[log] Using Nadle from /ROOT/lib/index.js
158158
[log] Loaded configuration from /ROOT/test/__fixtures__/delete-task/__temp__/__{hash}__/nadle.config.ts
159159

packages/nadle/test/__snapshots__/builtin-tasks/node-task.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`node Task > can print command when log level = info 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/node-task
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass --log-level info
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/node-task/nadle.config.ts
1111
@@ -83,7 +83,7 @@ exports[`node Task > can run node script with no error 1`] = `
8383
Working Directory: /ROOT/test/__fixtures__/node-task
8484
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass
8585
---------- Stdout ------------
86-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
86+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8787
[log] Using Nadle from /ROOT/lib/index.js
8888
[log] Loaded configuration from /ROOT/test/__fixtures__/node-task/nadle.config.ts
8989
@@ -103,7 +103,7 @@ exports[`node Task > throw error when running node script that exits with error
103103
Working Directory: /ROOT/test/__fixtures__/node-task
104104
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer fail
105105
---------- Stdout ------------
106-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
106+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
107107
[log] Using Nadle from /ROOT/lib/index.js
108108
[log] Loaded configuration from /ROOT/test/__fixtures__/node-task/nadle.config.ts
109109

packages/nadle/test/__snapshots__/builtin-tasks/npm-task.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`npm Task > can print command when log level = info 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/npm-task
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass --log-level info
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/npm-task/nadle.config.ts
1111
@@ -81,7 +81,7 @@ exports[`npm Task > can run tsc command with no error ts file 1`] = `
8181
Working Directory: /ROOT/test/__fixtures__/npm-task
8282
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass
8383
---------- Stdout ------------
84-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
84+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8585
[log] Using Nadle from /ROOT/lib/index.js
8686
[log] Loaded configuration from /ROOT/test/__fixtures__/npm-task/nadle.config.ts
8787
@@ -99,7 +99,7 @@ exports[`npm Task > throw error when running tsc command with error ts file 1`]
9999
Working Directory: /ROOT/test/__fixtures__/npm-task
100100
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer fail
101101
---------- Stdout ------------
102-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
102+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
103103
[log] Using Nadle from /ROOT/lib/index.js
104104
[log] Loaded configuration from /ROOT/test/__fixtures__/npm-task/nadle.config.ts
105105

packages/nadle/test/__snapshots__/builtin-tasks/npx-task.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`npx Task > can print command when log level = info 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/npx-task
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass --log-level info
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/npx-task/nadle.config.ts
1111
@@ -81,7 +81,7 @@ exports[`npx Task > can run tsc command with no error ts file 1`] = `
8181
Working Directory: /ROOT/test/__fixtures__/npx-task
8282
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass
8383
---------- Stdout ------------
84-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
84+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8585
[log] Using Nadle from /ROOT/lib/index.js
8686
[log] Loaded configuration from /ROOT/test/__fixtures__/npx-task/nadle.config.ts
8787
@@ -99,7 +99,7 @@ exports[`npx Task > throw error when running tsc command with error ts file 1`]
9999
Working Directory: /ROOT/test/__fixtures__/npx-task
100100
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer fail
101101
---------- Stdout ------------
102-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
102+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
103103
[log] Using Nadle from /ROOT/lib/index.js
104104
[log] Loaded configuration from /ROOT/test/__fixtures__/npx-task/nadle.config.ts
105105

packages/nadle/test/__snapshots__/builtin-tasks/pnpm-task.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`pnpm Task > can print command when log level = info 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/pnpm-task
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass --log-level info
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpm-task/nadle.config.ts
1111
@@ -81,7 +81,7 @@ exports[`pnpm Task > can run tsc command with no error ts file 1`] = `
8181
Working Directory: /ROOT/test/__fixtures__/pnpm-task
8282
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass
8383
---------- Stdout ------------
84-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
84+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8585
[log] Using Nadle from /ROOT/lib/index.js
8686
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpm-task/nadle.config.ts
8787
@@ -99,7 +99,7 @@ exports[`pnpm Task > throw error when running tsc command with error ts file 1`]
9999
Working Directory: /ROOT/test/__fixtures__/pnpm-task
100100
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer fail
101101
---------- Stdout ------------
102-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
102+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
103103
[log] Using Nadle from /ROOT/lib/index.js
104104
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpm-task/nadle.config.ts
105105

packages/nadle/test/__snapshots__/builtin-tasks/pnpx-task.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`pnpx Task > can print command when log level = info 1`] = `
55
Working Directory: /ROOT/test/__fixtures__/pnpx-task
66
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass --log-level info
77
---------- Stdout ------------
8-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
8+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
99
[log] Using Nadle from /ROOT/lib/index.js
1010
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpx-task/nadle.config.ts
1111
@@ -81,7 +81,7 @@ exports[`pnpx Task > can run tsc command with no error ts file 1`] = `
8181
Working Directory: /ROOT/test/__fixtures__/pnpx-task
8282
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer pass
8383
---------- Stdout ------------
84-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
84+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
8585
[log] Using Nadle from /ROOT/lib/index.js
8686
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpx-task/nadle.config.ts
8787
@@ -99,7 +99,7 @@ exports[`pnpx Task > throw error when running tsc command with error ts file 1`]
9999
Working Directory: /ROOT/test/__fixtures__/pnpx-task
100100
Command: /ROOT/nadle.mjs --max-workers 1 --no-footer fail
101101
---------- Stdout ------------
102-
[log] <Bold><Cyan>🛠️ Welcome to Nadle {version}!</Cyan></BoldDim>
102+
[log] <Bold><Cyan> Welcome to Nadle {version}!</Cyan></BoldDim>
103103
[log] Using Nadle from /ROOT/lib/index.js
104104
[log] Loaded configuration from /ROOT/test/__fixtures__/pnpx-task/nadle.config.ts
105105

0 commit comments

Comments
 (0)