From ffff64637c4b80187f98e54696ee79b6cb189f91 Mon Sep 17 00:00:00 2001 From: b Date: Wed, 7 Oct 2026 03:28:59 -0500 Subject: [PATCH 1/3] Patch glimmer-scoped-css to scope by package-relative path The scope prefix was the md5 of the absolute file path, so two builds of the same source at different paths gave different data-scopedcss attributes, and prerendered HTML from one build did not match the CSS of the other. A file inside a package is now identified by its package name and its path inside the package. A file that does not exist on disk keeps its filename, so the realm transpile's synthetic paths are unchanged. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RhwZUafCP38ur35n87R7BW --- patches/glimmer-scoped-css@0.8.1.patch | 77 ++++++++++++++++++++++++++ pnpm-lock.yaml | 15 ++--- pnpm-workspace.yaml | 1 + 3 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 patches/glimmer-scoped-css@0.8.1.patch diff --git a/patches/glimmer-scoped-css@0.8.1.patch b/patches/glimmer-scoped-css@0.8.1.patch new file mode 100644 index 00000000000..36dab75f654 --- /dev/null +++ b/patches/glimmer-scoped-css@0.8.1.patch @@ -0,0 +1,77 @@ +diff --git a/dist/ast-transform-8c8ef165.js b/dist/ast-transform-8c8ef165.js +index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..64dcf28b8499ec53c9284c509007ac5a11d8b200 100644 +--- a/dist/ast-transform-8c8ef165.js ++++ b/dist/ast-transform-8c8ef165.js +@@ -164,8 +164,71 @@ function decodeCSS(encodedCSSString) { + return new TextDecoder().decode(Uint8Array.from(binString, m => m.codePointAt(0))); + } + ++// The scope prefix must be the same for the same source on every machine: ++// prerendered HTML carries the prefixes of the build that rendered it, and a ++// build at another path must still style it. A file inside a package is ++// identified by `/`. Anything else ++// keeps its filename, including the synthetic paths a realm transpiles under ++// (`/spec.gts`), which do not exist on disk and are already stable. ++const packageRoots = new Map(); ++function packageRootOf(dir, fs) { ++ let visited = []; ++ let root; ++ for (let current = dir; ; current = path.dirname(current)) { ++ if (packageRoots.has(current)) { ++ root = packageRoots.get(current); ++ break; ++ } ++ visited.push(current); ++ let manifest = path.join(current, 'package.json'); ++ if (fs.existsSync(manifest)) { ++ let name; ++ try { ++ name = JSON.parse(fs.readFileSync(manifest, 'utf8')).name; ++ } catch { ++ name = undefined; ++ } ++ if (typeof name === 'string' && name.length > 0) { ++ root = { dir: current, name }; ++ break; ++ } ++ } ++ if (path.dirname(current) === current) { ++ root = null; ++ break; ++ } ++ } ++ for (let entry of visited) { ++ packageRoots.set(entry, root); ++ } ++ return root; ++} ++function packageRelativeId(filename) { ++ let fs; ++ try { ++ fs = require('fs'); ++ } catch { ++ return undefined; ++ } ++ if ( ++ !fs || ++ typeof fs.existsSync !== 'function' || ++ typeof fs.readFileSync !== 'function' || ++ typeof filename !== 'string' || ++ !path.isAbsolute(filename) || ++ !fs.existsSync(filename) ++ ) { ++ return undefined; ++ } ++ let root = packageRootOf(path.dirname(filename), fs); ++ if (!root) { ++ return undefined; ++ } ++ let inside = path.relative(root.dir, filename).split(path.sep).join('/'); ++ return `${root.name}/${inside}`; ++} + function uniqueIdentifier(filename) { +- return superFastMd5.md5(filename).slice(0, 10); ++ return superFastMd5.md5(packageRelativeId(filename) ?? filename).slice(0, 10); + } + function generateScopedCSSPlugin(options) { + return env => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c00c51657c3..37f51794d2b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -742,6 +742,7 @@ patchedDependencies: ember-css-url@1.0.0: 0e5253a008cc7bf02424d786e7a8fb2397bc48962f3cd1443f2c0fdd8200c96d ember-eslint-parser: 364c7e71472801c87618bf2b2cdabd256358166bbe107f29d321ab35d0a53425 ember-source: ea945024993105fb6cc4ae5cb5e9ea8e0eff6cd5fe0b0033c43dd0cf9453eb0d + glimmer-scoped-css@0.8.1: af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270 magic-string@0.25.9: 32dda55b40f0bc860d0a8e93bee54d8005c34ed7ac5faed23ce9f5e5f57eea39 matrix-js-sdk@38.3.0: 9916a9e914367042bf4e45522e7ccc4cfafb8893276852608baa57080b654f89 monaco-editor@0.52.2: bdefe071221b87c7c15e1add6739d24d486f543dbad0d714ae586085204626cd @@ -1701,7 +1702,7 @@ importers: version: 3.3.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) globals: specifier: ^15.14.0 version: 15.15.0 @@ -1942,7 +1943,7 @@ importers: version: 8.2.6(eslint@8.57.1(supports-color@8.1.1)) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) prettier: specifier: 'catalog:' version: 3.8.4 @@ -2385,7 +2386,7 @@ importers: version: 9.39.5(supports-color@8.1.1) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) globals: specifier: ^15.15.0 version: 15.15.0 @@ -3306,7 +3307,7 @@ importers: version: link:../glimmer-motion glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) ignore: specifier: 'catalog:' version: 5.3.2 @@ -3809,7 +3810,7 @@ importers: version: 11.3.5 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) glob: specifier: 'catalog:' version: 11.1.0 @@ -4094,7 +4095,7 @@ importers: version: 5.0.2 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(supports-color@8.1.1) + version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) http-status-codes: specifier: 'catalog:' version: 2.3.0 @@ -27256,7 +27257,7 @@ snapshots: github-slugger@2.0.0: {} - glimmer-scoped-css@0.8.1(supports-color@8.1.1): + glimmer-scoped-css@0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1): dependencies: '@embroider/addon-shim': 1.10.3(supports-color@8.1.1) js-string-escape: 1.0.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1fc996e4c47..e5952498942 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -329,6 +329,7 @@ patchedDependencies: matrix-js-sdk@38.3.0: patches/matrix-js-sdk@38.3.0.patch ember-source: patches/ember-source.patch object-inspect: patches/object-inspect.patch + glimmer-scoped-css@0.8.1: patches/glimmer-scoped-css@0.8.1.patch allowBuilds: "@percy/core": true "@vscode/vsce-sign": true From a179573e381c3e69641fddb15070b392f7ff3430 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 8 Oct 2026 11:47:22 -0500 Subject: [PATCH 2/3] Identify scoped-CSS files by their path relative to the build's cwd The patch hashes path.relative(process.cwd(), filename) instead of walking up to the nearest package.json and hashing the package name and the path inside the package. A file that does not exist on disk still keeps its filename. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RhwZUafCP38ur35n87R7BW --- patches/glimmer-scoped-css@0.8.1.patch | 57 +++++--------------------- pnpm-lock.yaml | 14 +++---- 2 files changed, 17 insertions(+), 54 deletions(-) diff --git a/patches/glimmer-scoped-css@0.8.1.patch b/patches/glimmer-scoped-css@0.8.1.patch index 36dab75f654..42fad5beb14 100644 --- a/patches/glimmer-scoped-css@0.8.1.patch +++ b/patches/glimmer-scoped-css@0.8.1.patch @@ -1,51 +1,18 @@ diff --git a/dist/ast-transform-8c8ef165.js b/dist/ast-transform-8c8ef165.js -index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..64dcf28b8499ec53c9284c509007ac5a11d8b200 100644 +index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..2bce4478d48dd05a54dee0919f3fd77acfe6d0a1 100644 --- a/dist/ast-transform-8c8ef165.js +++ b/dist/ast-transform-8c8ef165.js -@@ -164,8 +164,71 @@ function decodeCSS(encodedCSSString) { +@@ -164,8 +164,34 @@ function decodeCSS(encodedCSSString) { return new TextDecoder().decode(Uint8Array.from(binString, m => m.codePointAt(0))); } +// The scope prefix must be the same for the same source on every machine: +// prerendered HTML carries the prefixes of the build that rendered it, and a -+// build at another path must still style it. A file inside a package is -+// identified by `/`. Anything else -+// keeps its filename, including the synthetic paths a realm transpiles under ++// build at another path must still style it. A file on disk is identified by ++// its path relative to the working directory of the build. Anything else keeps ++// its filename, including the synthetic paths a realm transpiles under +// (`/spec.gts`), which do not exist on disk and are already stable. -+const packageRoots = new Map(); -+function packageRootOf(dir, fs) { -+ let visited = []; -+ let root; -+ for (let current = dir; ; current = path.dirname(current)) { -+ if (packageRoots.has(current)) { -+ root = packageRoots.get(current); -+ break; -+ } -+ visited.push(current); -+ let manifest = path.join(current, 'package.json'); -+ if (fs.existsSync(manifest)) { -+ let name; -+ try { -+ name = JSON.parse(fs.readFileSync(manifest, 'utf8')).name; -+ } catch { -+ name = undefined; -+ } -+ if (typeof name === 'string' && name.length > 0) { -+ root = { dir: current, name }; -+ break; -+ } -+ } -+ if (path.dirname(current) === current) { -+ root = null; -+ break; -+ } -+ } -+ for (let entry of visited) { -+ packageRoots.set(entry, root); -+ } -+ return root; -+} -+function packageRelativeId(filename) { ++function cwdRelativeId(filename) { + let fs; + try { + fs = require('fs'); @@ -55,23 +22,19 @@ index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..64dcf28b8499ec53c9284c509007ac5a + if ( + !fs || + typeof fs.existsSync !== 'function' || -+ typeof fs.readFileSync !== 'function' || ++ typeof process === 'undefined' || ++ typeof process.cwd !== 'function' || + typeof filename !== 'string' || + !path.isAbsolute(filename) || + !fs.existsSync(filename) + ) { + return undefined; + } -+ let root = packageRootOf(path.dirname(filename), fs); -+ if (!root) { -+ return undefined; -+ } -+ let inside = path.relative(root.dir, filename).split(path.sep).join('/'); -+ return `${root.name}/${inside}`; ++ return path.relative(process.cwd(), filename).split(path.sep).join('/'); +} function uniqueIdentifier(filename) { - return superFastMd5.md5(filename).slice(0, 10); -+ return superFastMd5.md5(packageRelativeId(filename) ?? filename).slice(0, 10); ++ return superFastMd5.md5(cwdRelativeId(filename) ?? filename).slice(0, 10); } function generateScopedCSSPlugin(options) { return env => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d03536ae41..3fa04339b86 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -742,7 +742,7 @@ patchedDependencies: ember-css-url@1.0.0: 0e5253a008cc7bf02424d786e7a8fb2397bc48962f3cd1443f2c0fdd8200c96d ember-eslint-parser: 364c7e71472801c87618bf2b2cdabd256358166bbe107f29d321ab35d0a53425 ember-source: ea945024993105fb6cc4ae5cb5e9ea8e0eff6cd5fe0b0033c43dd0cf9453eb0d - glimmer-scoped-css@0.8.1: af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270 + glimmer-scoped-css@0.8.1: afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00 magic-string@0.25.9: 32dda55b40f0bc860d0a8e93bee54d8005c34ed7ac5faed23ce9f5e5f57eea39 matrix-js-sdk@38.3.0: 9916a9e914367042bf4e45522e7ccc4cfafb8893276852608baa57080b654f89 monaco-editor@0.52.2: bdefe071221b87c7c15e1add6739d24d486f543dbad0d714ae586085204626cd @@ -1702,7 +1702,7 @@ importers: version: 3.3.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) + version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) globals: specifier: ^15.14.0 version: 15.15.0 @@ -1943,7 +1943,7 @@ importers: version: 8.2.6(eslint@8.57.1(supports-color@8.1.1)) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) + version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) prettier: specifier: 'catalog:' version: 3.8.4 @@ -3261,7 +3261,7 @@ importers: version: link:../glimmer-motion glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) + version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) ignore: specifier: 'catalog:' version: 5.3.2 @@ -3764,7 +3764,7 @@ importers: version: 11.3.5 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) + version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) glob: specifier: 'catalog:' version: 11.1.0 @@ -4049,7 +4049,7 @@ importers: version: 5.0.2 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1) + version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) http-status-codes: specifier: 'catalog:' version: 2.3.0 @@ -27171,7 +27171,7 @@ snapshots: github-slugger@2.0.0: {} - glimmer-scoped-css@0.8.1(patch_hash=af12f391884ab5650b5150f4e54b2c31a7cf12b1e09bdb30e8db9dce587d5270)(supports-color@8.1.1): + glimmer-scoped-css@0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1): dependencies: '@embroider/addon-shim': 1.10.3(supports-color@8.1.1) js-string-escape: 1.0.1 From 08a9258742eeaa1938c9a98ab55a4435bd9c6b55 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 8 Oct 2026 11:50:12 -0500 Subject: [PATCH 3/3] Resolve symlinks before taking the cwd-relative path process.cwd() is always a real path. A filename reached through a symlink otherwise gives a relative path up to the root and back down, which holds the absolute path again. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RhwZUafCP38ur35n87R7BW --- patches/glimmer-scoped-css@0.8.1.patch | 15 +++++++++++---- pnpm-lock.yaml | 14 +++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/patches/glimmer-scoped-css@0.8.1.patch b/patches/glimmer-scoped-css@0.8.1.patch index 42fad5beb14..230e5bda8f5 100644 --- a/patches/glimmer-scoped-css@0.8.1.patch +++ b/patches/glimmer-scoped-css@0.8.1.patch @@ -1,8 +1,8 @@ diff --git a/dist/ast-transform-8c8ef165.js b/dist/ast-transform-8c8ef165.js -index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..2bce4478d48dd05a54dee0919f3fd77acfe6d0a1 100644 +index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..3483e529a009cbe4b6019ada0c332411b660595a 100644 --- a/dist/ast-transform-8c8ef165.js +++ b/dist/ast-transform-8c8ef165.js -@@ -164,8 +164,34 @@ function decodeCSS(encodedCSSString) { +@@ -164,8 +164,41 @@ function decodeCSS(encodedCSSString) { return new TextDecoder().decode(Uint8Array.from(binString, m => m.codePointAt(0))); } @@ -11,7 +11,10 @@ index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..2bce4478d48dd05a54dee0919f3fd77a +// build at another path must still style it. A file on disk is identified by +// its path relative to the working directory of the build. Anything else keeps +// its filename, including the synthetic paths a realm transpiles under -+// (`/spec.gts`), which do not exist on disk and are already stable. ++// (`/spec.gts`), which do not exist on disk and are already stable. Both ++// paths are resolved through symlinks first: `process.cwd()` is always ++// resolved, and a filename reached through a symlink would otherwise give a ++// path up to the root and back down, which holds the absolute path again. +function cwdRelativeId(filename) { + let fs; + try { @@ -22,6 +25,7 @@ index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..2bce4478d48dd05a54dee0919f3fd77a + if ( + !fs || + typeof fs.existsSync !== 'function' || ++ typeof fs.realpathSync !== 'function' || + typeof process === 'undefined' || + typeof process.cwd !== 'function' || + typeof filename !== 'string' || @@ -30,7 +34,10 @@ index 066d5bc5f9e350d855d7d48ae56f47b4e33907bc..2bce4478d48dd05a54dee0919f3fd77a + ) { + return undefined; + } -+ return path.relative(process.cwd(), filename).split(path.sep).join('/'); ++ return path ++ .relative(fs.realpathSync(process.cwd()), fs.realpathSync(filename)) ++ .split(path.sep) ++ .join('/'); +} function uniqueIdentifier(filename) { - return superFastMd5.md5(filename).slice(0, 10); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fa04339b86..ba895997329 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -742,7 +742,7 @@ patchedDependencies: ember-css-url@1.0.0: 0e5253a008cc7bf02424d786e7a8fb2397bc48962f3cd1443f2c0fdd8200c96d ember-eslint-parser: 364c7e71472801c87618bf2b2cdabd256358166bbe107f29d321ab35d0a53425 ember-source: ea945024993105fb6cc4ae5cb5e9ea8e0eff6cd5fe0b0033c43dd0cf9453eb0d - glimmer-scoped-css@0.8.1: afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00 + glimmer-scoped-css@0.8.1: 986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b magic-string@0.25.9: 32dda55b40f0bc860d0a8e93bee54d8005c34ed7ac5faed23ce9f5e5f57eea39 matrix-js-sdk@38.3.0: 9916a9e914367042bf4e45522e7ccc4cfafb8893276852608baa57080b654f89 monaco-editor@0.52.2: bdefe071221b87c7c15e1add6739d24d486f543dbad0d714ae586085204626cd @@ -1702,7 +1702,7 @@ importers: version: 3.3.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.39.5(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) + version: 0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1) globals: specifier: ^15.14.0 version: 15.15.0 @@ -1943,7 +1943,7 @@ importers: version: 8.2.6(eslint@8.57.1(supports-color@8.1.1)) glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) + version: 0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1) prettier: specifier: 'catalog:' version: 3.8.4 @@ -3261,7 +3261,7 @@ importers: version: link:../glimmer-motion glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) + version: 0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1) ignore: specifier: 'catalog:' version: 5.3.2 @@ -3764,7 +3764,7 @@ importers: version: 11.3.5 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) + version: 0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1) glob: specifier: 'catalog:' version: 11.1.0 @@ -4049,7 +4049,7 @@ importers: version: 5.0.2 glimmer-scoped-css: specifier: 'catalog:' - version: 0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1) + version: 0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1) http-status-codes: specifier: 'catalog:' version: 2.3.0 @@ -27171,7 +27171,7 @@ snapshots: github-slugger@2.0.0: {} - glimmer-scoped-css@0.8.1(patch_hash=afa3a05a145e340423b8cbbe3c2c188ecdf204d5dad14f434736c44e7def7f00)(supports-color@8.1.1): + glimmer-scoped-css@0.8.1(patch_hash=986cd65c9ffc8b062a227f0d09dd76f021b1654c7d90185548f5647e9eca632b)(supports-color@8.1.1): dependencies: '@embroider/addon-shim': 1.10.3(supports-color@8.1.1) js-string-escape: 1.0.1