Skip to content

Fix boxel-ui build in checkouts under a dot-directory - #6845

Open
burieberry wants to merge 2 commits into
mainfrom
cs-14102-boxel-ui-rollup-dot-dir
Open

burieberry wants to merge 2 commits into
mainfrom
cs-14102-boxel-ui-rollup-dot-dir

Conversation

@burieberry

@burieberry burieberry commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Background and Goal

  • pnpm build in boxel-ui (and so pnpm lint, at lint:publish) fails with RollupError: src/components/<x>/<hash>.css: Expression expected in any checkout under a dot-directory, which includes every Superset workspace (~/.superset/worktrees/…) and .claude/worktrees/….
  • keepAssets matches absolute module ids with minimatch's default dot: 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 own src/ makes the dot-directory a literal part of the pattern.
  • The package path is glob-escaped before it goes into the pattern, so a checkout path containing characters like (, [ or { can't silently drop the component CSS the same way. The minimatch that keepAssets uses (3.x) has no escape(), so a small helper does it.
  • Verified from a Superset workspace: the build passes and dist/components still carries the component CSS.
  • Ticket: CS-14102

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T23:58:52.455942Z 0db0b2f Draft marked ready
ℹ️ 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" or "@codex security review".

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>
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployments

Host Test Results

594 tests   594 ✅  7m 47s ⏱️
  1 suites    0 💤
  1 files      0 ❌

Results for commit 0db0b2f.

Realm Server Test Results

    1 files    351 suites   2h 6m 33s ⏱️
5 915 tests 5 915 ✅ 0 💤 0 ❌
5 978 runs  5 978 ✅ 0 💤 0 ❌

Results for commit 0db0b2f.

@burieberry
burieberry marked this pull request as draft October 19, 2026 23:55
@burieberry
burieberry marked this pull request as ready for review October 19, 2026 23:56
@burieberry
burieberry requested a review from a team October 19, 2026 23:57

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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, '\\$&');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant