Repository navigation
Fix boxel-ui build in checkouts under a dot-directory - #6845
burieberry wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0db0b2fe80
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // The minimatch keepAssets uses (3.x) has no escape(). Escaping `(` alone | ||
| // disarms extglobs; also escaping an `@` prefix breaks the match in 3.x. | ||
| function escapeGlob(path) { | ||
| return path.replace(/[*?[\]{}()\\]/g, '\\$&'); |
There was a problem hiding this comment.
Normalize Windows separators before glob escaping
On Windows, a checkout path containing a glob metacharacter—such as C:\work\boxel(foo)—still fails to match. The escape inserted before ( is a backslash, but minimatch 3 normalizes every backslash in a Windows pattern into /, turning that segment into boxel/(foo/) rather than a literal boxel(foo). Consequently keepAssets misses the generated CSS and Rollup attempts to parse it as JavaScript. Convert the native root path to forward slashes before escaping its glob metacharacters.
Useful? React with 👍 / 👎.
Background and Goal
pnpm buildin boxel-ui (and sopnpm lint, atlint:publish) fails withRollupError: src/components/<x>/<hash>.css: Expression expectedin any checkout under a dot-directory, which includes every Superset workspace (~/.superset/worktrees/…) and.claude/worktrees/….keepAssetsmatches absolute module ids with minimatch's defaultdot: false, so'**/*.css'never crosses the dot-directory segment, and rollup parses the scoped-CSS modules as JavaScript. Anchoring the pattern to the package's ownsrc/makes the dot-directory a literal part of the pattern.(,[or{can't silently drop the component CSS the same way. The minimatch thatkeepAssetsuses (3.x) has noescape(), so a small helper does it.dist/componentsstill carries the component CSS.🤖 Generated with Claude Code