Diff
1diff --git a/src/core/deterministic.ts b/src/core/deterministic.ts
2index 48b0b8897c011585c818eb99a2142fef06b9dfbb..bff7b0762bf024a44db9115d9859a8e093305e85 100644
3--- a/src/core/deterministic.ts
4+++ b/src/core/deterministic.ts
5@@ -210,10 +210,8 @@ function hasUnsafeWordSyntax(command: string, allowStaticGlobs = false, program?
6 !(program === "grep" && isSafeGrepIncludeGlob(command, wordStart))
7 )
8 return true;
9- if (character === "~") {
10- if (wordStarted || (nextCharacter !== undefined && nextCharacter !== "/" && !/\s/.test(nextCharacter))) {
11- return true;
12- }
13+ if (character === "~" && !wordStarted) {
14+ if (nextCharacter !== undefined && nextCharacter !== "/" && !/\s/.test(nextCharacter)) return true;
15 }
16 if (!wordStarted) wordStart = index;
17 wordStarted = true;
18diff --git a/test/core/deterministic.test.ts b/test/core/deterministic.test.ts
19index ec323aa0d550afd30b2f94cbbdac8f088aa04a2c..22f8c9687d5015ea68ffc629543179baa5f8c106 100644
20--- a/test/core/deterministic.test.ts
21+++ b/test/core/deterministic.test.ts
22@@ -26,6 +26,7 @@ test("allows recognized deterministic command grammars", () => {
23 "echo 'a|b'",
24 "git add src/core/rules.ts",
25 "git checkout main",
26+ "git diff main~1 --stat",
27 "git commit -m 'Allow deterministic Git changes'",
28 "git commit -m 'sudo rm -rf /'",
29 "cp README.md README.copy",