Skip to content

Conversation

arendjr
Copy link
Contributor

@arendjr arendjr commented Aug 19, 2025

Summary

Fixed #7268: Files that are explicitly passed as CLI arguments are now correctly ignored if they reside in an ignored folder.

Warning: This may have a slight but noticeable performance impact on traversal. We might be able to prevent this by pre-filtering the paths that are specified explicitly before traversal, but I wanted to fix the bug first.

Also fixes #7279.

Test Plan

Flawed test updated. Others should remain green.

@arendjr arendjr requested review from a team August 19, 2025 19:05
Copy link

changeset-bot bot commented Aug 19, 2025

🦋 Changeset detected

Latest commit: f333689

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

coderabbitai bot commented Aug 19, 2025

Walkthrough

The PR refactors ignore/include evaluation across CLI traversal and workspace services. It introduces filesystem-aware checks and differentiates file vs directory include matching. Ignore decisions now support ancestor-aware evaluation by passing IgnoreKind::Ancestors through traversal, projects, and server layers. Public APIs in biome_service::projects and workspace::server are extended to accept a filesystem handle. Includes logic is split into is_file_included and is_dir_included. Tests are updated to reflect directory-focused patterns and Windows symlink directories. IgnoreKind derives Eq/PartialEq. A changeset documents the fix for explicitly passed files inside ignored folders.

Assessment against linked issues

Objective Addressed Explanation
Treat negated directory entries (e.g. "!src/generated", "!**/node_modules") as ignoring their descendants, including when files are passed explicitly via CLI or discovered by traversal [#7268, #7279]
Apply per-type include logic so exact file negations (e.g. "!bun.lock", "!**/routeTree.gen.ts") are respected [#7279] Logic added (is_file_included), but no test coverage for these specific file-negation cases shown.
Ensure exact directory path patterns (without /**) correctly exclude contained files [#7268]

Assessment against linked issues: Out-of-scope changes

(no out-of-scope functional changes identified)

Possibly related PRs


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2872a49 and f333689.

📒 Files selected for processing (1)
  • crates/biome_cli/tests/commands/lint.rs (2 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format Rust and TOML files before committing (use just f/just format).

Files:

  • crates/biome_cli/tests/commands/lint.rs
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_cli/tests/commands/lint.rs
**/tests/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place test files under a tests/ directory in each crate

Files:

  • crates/biome_cli/tests/commands/lint.rs
🧠 Learnings (3)
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/../biome_lsp/src/server.tests.rs : Keep end-to-end LSP tests in biome_lsp’s server.tests.rs

Applied to files:

  • crates/biome_cli/tests/commands/lint.rs
📚 Learning: 2025-08-17T08:56:30.831Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-08-17T08:56:30.831Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/tests/quick_test.rs : Use `biome_js_analyze/tests/quick_test.rs` for quick, ad-hoc testing; un-ignore the test and adjust the rule filter as needed

Applied to files:

  • crates/biome_cli/tests/commands/lint.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace/watcher.tests.rs : Place watcher tests for workspace methods in src/workspace/watcher.tests.rs

Applied to files:

  • crates/biome_cli/tests/commands/lint.rs
🔇 Additional comments (2)
crates/biome_cli/tests/commands/lint.rs (2)

1218-1221: Correct Windows dir symlink API.

Target is a directory; using symlink_dir is the right call here. 🧭


1276-1279: Same fix here — spot on.

symlink_dir matches the directory target and aligns with the Unix branch.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added A-CLI Area: CLI A-Project Area: project labels Aug 19, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (8)
.changeset/ancient-ancestors-ascent.md (1)

1-5: Add a minimal example to the changeset for clarity.

The note is good and user-facing. A tiny example will help readers confirm the new behaviour at a glance.

Apply this diff to add an example section:

 Fixed [#7268](https://github.com/biomejs/biome/issues/7268): Files that are explicitly passed as CLI arguments are now correctly ignored if they reside in an ignored folder.
+
+#### Example.
+```json
+// biome.json
+{ "files": { "includes": ["**/*.ts", "!src/generated"] } }
+```
+
+```bash
+# The following file was processed before; it is ignored now.
+npx biome check src/generated/index.ts
+```
crates/biome_service/src/settings.rs (2)

314-316: Doc says “file only”, but implementation handles directories too.

The function branches on is_dir(path), so the comment is misleading. Recommend updating the doc to reflect that directories are supported.

-/// `path` is expected to point to a file and not a directory.
+/// `path` may refer to a file or a directory.
+/// Directories are evaluated with `is_dir_included`, files with `is_file_included`.

Also applies to: 326-330


951-958: Fix parameter name in doc comment (dir_path vs file_path).

Nit: the prose still says “file_path” for a directory function.

-/// `file_path` must point to a directory. If it is a file, you should use
+/// `dir_path` must point to a directory. If it is a file, you should use
 /// [Self::is_file_included()] instead.
crates/biome_cli/tests/cases/included_files.rs (1)

100-106: Consider adding a deeper-nesting case (optional).

An extra assertion with, say, "nested/folder/x.js" would guard against regressions in multi-level ancestry checks.

Happy to draft the additional test if you want it in this PR.

crates/biome_cli/src/execute/traverse.rs (1)

538-546: Optional perf win: pre-filter explicit CLI inputs.

Given the slight overhead of ancestor checks, you could pre-filter the explicit inputs before scheduling traversal by calling is_path_ignored(.. Ancestors) on each input (when it exists) and avoid enqueuing obviously ignored paths. Not required for this fix.

If you'd like, I can sketch a small helper to pre-check inputs against is_path_ignored before scope.evaluate.

crates/biome_service/src/workspace/server.rs (1)

577-582: Good: fs plumbed into top-level ignore checks.

Passing the filesystem handle through is_ignored_by_top_level_config(...) aligns server traversal with the new filesystem-aware settings logic. This should restore the expected ignore-on-ancestors behaviour for both dirs and files.

If you fancy shaving a few keystrokes and repeated vtable lookups, consider caching let fs = self.fs.as_ref(); once in the function and reusing it at these call sites. Not critical.

Also applies to: 611-616, 635-640, 644-649

crates/biome_service/src/projects.rs (2)

359-373: Ancestor inclusion check: works; consider a small readability tweak.

The loop short-circuits correctly and stops at the project root. If you prefer a more declarative take:

Apply this diff for a tidier iteration:

-    if ignore_kind == IgnoreKind::Ancestors {
-        for ancestor in path.ancestors().skip(1) {
-            if !is_included || ancestor == project_data.path {
-                break;
-            }
-
-            is_included = is_included && includes.is_dir_included(ancestor)
-        }
-    }
+    if ignore_kind == IgnoreKind::Ancestors && is_included {
+        is_included = path
+            .ancestors()
+            .skip(1)
+            .take_while(|ancestor| *ancestor != project_data.path)
+            .all(|ancestor| includes.is_dir_included(ancestor));
+    }

375-387: VCS root anchoring only for Ancestors—intentional?

For VCS ignores we pass root_path = Some(project_data.path) only when IgnoreKind::Ancestors. If path-only checks also want root anchoring (arguably consistent), consider applying it there too. If this split is deliberate, a brief comment would save future head-scratching.

Want me to add a note clarifying why Path doesn’t anchor to root for VCS?

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c1169a6 and 4fc08fa.

⛔ Files ignored due to path filters (1)
  • crates/biome_cli/tests/snapshots/main_cases_included_files/does_not_handle_files_in_ignored_folder.snap is excluded by !**/*.snap and included by **
📒 Files selected for processing (7)
  • .changeset/ancient-ancestors-ascent.md (1 hunks)
  • crates/biome_cli/src/execute/traverse.rs (1 hunks)
  • crates/biome_cli/tests/cases/included_files.rs (1 hunks)
  • crates/biome_service/src/projects.rs (7 hunks)
  • crates/biome_service/src/settings.rs (3 hunks)
  • crates/biome_service/src/workspace.rs (1 hunks)
  • crates/biome_service/src/workspace/server.rs (6 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{rs,toml}

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

Format Rust and TOML files before committing (use just f/just format).

Files:

  • crates/biome_cli/tests/cases/included_files.rs
  • crates/biome_cli/src/execute/traverse.rs
  • crates/biome_service/src/projects.rs
  • crates/biome_service/src/settings.rs
  • crates/biome_service/src/workspace.rs
  • crates/biome_service/src/workspace/server.rs
crates/biome_*/**

📄 CodeRabbit Inference Engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_cli/tests/cases/included_files.rs
  • crates/biome_cli/src/execute/traverse.rs
  • crates/biome_service/src/projects.rs
  • crates/biome_service/src/settings.rs
  • crates/biome_service/src/workspace.rs
  • crates/biome_service/src/workspace/server.rs
**/tests/**

📄 CodeRabbit Inference Engine (CLAUDE.md)

Place test files under a tests/ directory in each crate

Files:

  • crates/biome_cli/tests/cases/included_files.rs
.changeset/*.md

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

.changeset/*.md: Create changesets with just new-changeset; store them in .changeset/ with correct frontmatter (package keys and change type).
In changeset descriptions, follow content conventions: user-facing changes only; past tense for what you did; present tense for current behavior; link issues for fixes; link rules/assists; include representative code blocks; end every sentence with a period.
When adding headers in a changeset, only use #### or ##### levels.

Files:

  • .changeset/ancient-ancestors-ascent.md
crates/biome_service/src/workspace.rs

📄 CodeRabbit Inference Engine (crates/biome_service/CONTRIBUTING.md)

Implement the Workspace trait in src/workspace.rs

Files:

  • crates/biome_service/src/workspace.rs
crates/biome_service/src/workspace/server.rs

📄 CodeRabbit Inference Engine (crates/biome_service/CONTRIBUTING.md)

Use WorkspaceServer (src/workspace/server.rs) to maintain workspace state in daemon and CLI daemonless modes

Files:

  • crates/biome_service/src/workspace/server.rs
🧠 Learnings (10)
📚 Learning: 2025-08-17T08:56:30.822Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-08-17T08:56:30.822Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/tests/quick_test.rs : Use `biome_js_analyze/tests/quick_test.rs` for quick, ad-hoc testing; un-ignore the test and adjust the rule filter as needed

Applied to files:

  • crates/biome_cli/tests/cases/included_files.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/../biome_lsp/src/server.tests.rs : Keep end-to-end LSP tests in biome_lsp’s server.tests.rs

Applied to files:

  • crates/biome_cli/tests/cases/included_files.rs
📚 Learning: 2025-08-11T11:48:52.001Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_js_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:48:52.001Z
Learning: Applies to crates/biome_js_formatter/**/Cargo.toml : Add biome_js_formatter as a path dependency in Cargo.toml: biome_js_formatter = { version = "0.0.1", path = "../biome_js_formatter" }

Applied to files:

  • crates/biome_cli/tests/cases/included_files.rs
📚 Learning: 2025-08-11T11:48:27.774Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:48:27.774Z
Learning: Applies to crates/biome_formatter/biome_html_formatter/tests/spec_test.rs : Create tests/spec_test.rs implementing the run(spec_input_file, _expected_file, test_directory, _file_type) function as shown and include!("language.rs")

Applied to files:

  • crates/biome_cli/tests/cases/included_files.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace/watcher.tests.rs : Place watcher tests for workspace methods in src/workspace/watcher.tests.rs

Applied to files:

  • crates/biome_cli/tests/cases/included_files.rs
  • crates/biome_service/src/projects.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace.rs : Implement the Workspace trait in src/workspace.rs

Applied to files:

  • crates/biome_service/src/projects.rs
  • crates/biome_service/src/workspace/server.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace_watcher.rs : Keep workspace state in sync with the filesystem using WorkspaceWatcher; only active in daemon mode

Applied to files:

  • crates/biome_service/src/projects.rs
  • crates/biome_service/src/workspace/server.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace/client.rs : Use WorkspaceClient (src/workspace/client.rs) to connect to the daemon and communicate with WorkspaceServer

Applied to files:

  • crates/biome_service/src/projects.rs
📚 Learning: 2025-08-11T11:53:15.299Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:53:15.299Z
Learning: Applies to crates/biome_service/src/workspace/server.rs : Use WorkspaceServer (src/workspace/server.rs) to maintain workspace state in daemon and CLI daemonless modes

Applied to files:

  • crates/biome_service/src/projects.rs
📚 Learning: 2025-08-17T08:57:34.726Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_parser/CONTRIBUTING.md:0-0
Timestamp: 2025-08-17T08:57:34.726Z
Learning: Applies to crates/biome_parser/xtask/codegen/src/*_kinds_src.rs : Add src/<language>_kinds_src.rs under xtask/codegen that returns a static KindSrc

Applied to files:

  • crates/biome_service/src/workspace.rs
🧬 Code Graph Analysis (1)
crates/biome_service/src/settings.rs (1)
crates/biome_service/src/lib.rs (1)
  • is_dir (78-80)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: Documentation
  • GitHub Check: End-to-end tests
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Test Node.js API
  • GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Check Dependencies
  • GitHub Check: autofix
🔇 Additional comments (13)
crates/biome_service/src/settings.rs (2)

942-949: Split file/dir include checks look good.

The separation into is_file_included and matches_with_exceptions is clear and maintains previous “include-all when unset” semantics.


314-331: All clear: no lingering is_included calls

The grep search returned zero matches, so the new is_dir_included/is_file_included API is used everywhere.

crates/biome_service/src/workspace.rs (1)

1215-1226: Deriving Eq/PartialEq for IgnoreKind is spot on.

This unblocks straightforward comparisons at call sites and keeps Path as the default. No concerns.

crates/biome_cli/tests/cases/included_files.rs (1)

100-106: Test update matches intended folder-ignore semantics.

Switching to ["/*.js", "!/folder"] precisely exercises folder-level ignores while still including top-level files. Good coverage for the regression.

crates/biome_cli/src/execute/traverse.rs (1)

540-546: Using IgnoreKind::Ancestors for dirs/symlinks is the right call.

This aligns traversal with ancestor-aware ignore semantics and fixes the “explicit file under ignored folder” case via directory handling. Nicely contained change.

crates/biome_service/src/workspace/server.rs (3)

606-617: Double-check KnownFiles + Update with Ancestors: do unknown file types slip in?

When scan_kind is KnownFiles/TargetedKnownFiles and ignore_kind is Ancestors, we only consult the parent dir’s top-level ignore; we don’t also gate on path.is_required_during_scan(). For updates on files that aren’t already indexed, this might cause us to index a non-required file type if its parent isn’t ignored. If this is intentional, all good—otherwise, worth a test.

Would you like me to draft a test that sends an update for a non-required file under a non-ignored parent and asserts it’s still ignored?


975-981: Good: get_file_features now uses filesystem-aware Projects API.

Propagating fs into get_file_features ensures include/ignore decisions align with file/dir semantics and ancestor rules.


996-1003: Good: path-level ignore checks now filesystem-aware.

is_path_ignored forwarding fs into Projects::is_ignored(...) brings CLI/API queries in line with the traversal behaviour. The special-case for the top-level config file remains intact.

crates/biome_service/src/projects.rs (5)

7-7: Import looks right.

Bringing in FileSystem is needed for the new fs-parameterised APIs; ConfigName is used in get_file_features.


141-152: Nice API uplift: Projects methods now filesystem-aware.

Plumbing fs into:

  • is_ignored_by_top_level_config
  • is_ignored
  • get_file_features
  • and the helper

unblocks correct file vs dir inclusion and ancestor evaluation. This is the right level to centralise the logic.

Also applies to: 156-164, 185-194, 341-347


359-363: Edge case: symlinks.

We classify kind via fs.path_is_dir(path). If symlinks are in play, confirm path_is_dir follows them as intended for include checks. If not, we might need a symlink-aware branch (only if you’ve seen oddities).

Happy to add a focused test around a symlinked dir inside an ignored folder to confirm behaviour.


210-221: Top-level config file exemption: retained.

Keeping biome.json(c) at project root always included is spot on and mirrors server-side checks.


218-221: Good: unify feature gating with Ancestors semantics.

Using self.is_ignored(..., IgnoreKind::Ancestors) inside get_file_features ensures explicit file queries respect ancestor folder ignores—exactly what #7268 needed.

@ematipico
Copy link
Member

Is the regression expected?

@arendjr
Copy link
Contributor Author

arendjr commented Aug 20, 2025

No, I was looking into it, but I'm afraid I might need @siketyan 's help again :( The issue is due to symlink handling, but just by looking at the code I can't quite see why it would behave differently on Windows 🤷‍♂️

@flying-sheep

This comment has been minimized.

@ematipico

This comment has been minimized.

@flying-sheep

This comment was marked as off-topic.

@github-actions github-actions bot added the A-Core Area: core label Sep 4, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
crates/biome_fs/src/fs/os.rs (1)

361-392: Add targeted tests for Windows/relative symlink behaviour

Please add tests that assert:

  • path_kind on a symlink-to-dir returns Directory { is_symlink: false }.
  • path_kind on a symlink-to-file returns File { is_symlink: false }.
  • Relative symlink targets are resolved against the link’s parent.

Using TemporaryFs should make these straightforward. If you’d like, I can draft them.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4fc08fa and 5724a29.

📒 Files selected for processing (1)
  • crates/biome_fs/src/fs/os.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format Rust and TOML files before committing (use just f/just format).

Files:

  • crates/biome_fs/src/fs/os.rs
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_fs/src/fs/os.rs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: Test Node.js API
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: autofix
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Check Dependencies
  • GitHub Check: Documentation
  • GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Test (depot-windows-2022-16)

@siketyan siketyan force-pushed the fix-nested-ignored-files branch from 2872a49 to 4fc08fa Compare September 4, 2025 14:01
@github-actions github-actions bot removed the A-Core Area: core label Sep 4, 2025
Copy link
Member

@ematipico ematipico left a comment

Choose a reason for hiding this comment

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

Happy to merge once it's green

Copy link
Contributor Author

@arendjr arendjr left a comment

Choose a reason for hiding this comment

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

Thanks @siketyan !

@arendjr arendjr merged commit 560de1b into biomejs:main Sep 4, 2025
13 checks passed
@github-actions github-actions bot mentioned this pull request Sep 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CLI Area: CLI A-Project Area: project
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🐛 file.includes negations not working 🐛 v2.2.0 files.includes patterns to not work with exact file paths.
4 participants