From bee4cd8b06fa2edc8ae5d3c93d283b6372dd4d41 Mon Sep 17 00:00:00 2001 From: ghost <49853598+JSONbored@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:37:07 -0700 Subject: [PATCH] fix(signals): preserve optional globstar cap semantics --- src/signals/focus-manifest.ts | 6 ++++-- test/unit/focus-manifest.test.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/signals/focus-manifest.ts b/src/signals/focus-manifest.ts index 8d9b6da90e..cc67542e0b 100644 --- a/src/signals/focus-manifest.ts +++ b/src/signals/focus-manifest.ts @@ -933,8 +933,10 @@ function expandGlobstarSlash(pattern: string): string[] { const canKeepRootAlternatives = count * 2 <= MAX_GLOBSTAR_SLASH_ALTERNATIVES; for (let altIdx = count - 1; altIdx >= 0; altIdx -= 1) { const prefix = alternatives[altIdx]!; - alternatives[altIdx] = `${prefix}*/`; - if (canKeepRootAlternatives) alternatives.push(prefix); + if (canKeepRootAlternatives) { + alternatives[altIdx] = `${prefix}*/`; + alternatives.push(prefix); + } } idx += 3; continue; diff --git a/test/unit/focus-manifest.test.ts b/test/unit/focus-manifest.test.ts index b64ad7ce8d..c080bf6568 100644 --- a/test/unit/focus-manifest.test.ts +++ b/test/unit/focus-manifest.test.ts @@ -227,7 +227,7 @@ describe("matchesManifestPath", () => { const start = performance.now(); const result = matchesManifestPath("a/b/c/safe.ts", globstarRun); const elapsed = performance.now() - start; - expect(result).toBe(false); + expect(result).toBe(true); expect(elapsed).toBeLessThan(100); }); });