feat: recognize bunx oxlint and versioned bunx tsc in single-file verification - #533
feat: recognize bunx oxlint and versioned bunx tsc in single-file verification#533YuniorGlez wants to merge 1 commit into
Conversation
…ification Bun-based TypeScript projects document single-file checks as `bunx oxlint <file>` and `bunx tsc@7 --noEmit <file>` (TS7 ships as `tsc@7` via bunx). Neither matched the existing patterns: - `oxlint` was missing from the lint patterns entirely. - `tsc --noEmit <file>` required the literal `tsc` binary; the versioned `tsc@7` form (standard with TS7/Go ports) was missed. - Add `(?:bunx\s+)?oxlint <file>` lint pattern. - Add `(?:bunx\s+)?tsc@<version> --noEmit <file>` typecheck pattern. - Unit tests: bunx oxlint, versioned bunx tsc, and full-score combo.
|
Warning Review limit reached
Next review available in: 58 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
jwm4
left a comment
There was a problem hiding this comment.
Thanks for the PR! The two new patterns work correctly. I verified that the unit tests really do test them: if you remove either pattern, its test fails, which is exactly what we want. I also checked the patterns against real CLAUDE.md files from GitHub that mention oxlint, and none of them match incorrectly.
A few things need to happen before I can merge:
-
Rebase onto the latest main. Another PR recently added more tools to the same pattern lists you edited, so your branch now has a merge conflict. The conflict is easy to resolve: keep both your new patterns and the recently added ones.
-
Run
black .and commit the result. That is why CI is failing. The formatter wants to rewrap both of the files you changed. -
Add your new tools to the documentation. The file
docs/attributes.mdhas a "Single-File Verification" section that lists every command the assessor recognizes. Please addoxlintand the versionedtscform to that list. In this repo, docs and assessor changes are expected to land in the same PR. -
Cover
tsc@latesttoo. Your version pattern only matches numeric versions liketsc@7ortsc@5.6. People also writebunx tsc@latest --noEmit file.tsortsc@next, and those won't match. Changing\d+(?:\.\d+)*to something like[\w.-]+after the@covers all of them. -
Optional: drop the
(?:bunx\s+)?prefix. It has no effect. The regex search is not anchored to the start of the line, so the pattern already matchesoxlint file.tswherever it appears, including right afterbunx. None of the other patterns in the list mention runners like npx or bunx for the same reason. Removing it keeps things consistent, but it does no harm if you prefer to keep it.
This comment is from Bill Murdock, written with assistance from Claude Code.
Description
The Single-File Verification assessor missed the two commands Bun-based TypeScript projects actually document:
bunx oxlint <file>—oxlint(oxc.rs, Rust-based linter) was not in the lint patterns at all.bunx tsc@7 --noEmit <file>— the existingtsc --noEmit <file>pattern requires the literal binary name; TypeScript 7 (the Go port) is invoked versioned astsc@7through bunx, so it never matched.Type of Change
Related Issues
No related issues (no existing Bun-support issue found; see sibling PRs #531, #532, #534).
Changes Made
(?:bunx\s+)?oxlint\s+<file>(?:bunx\s+)?tsc@<version>\s+--noEmit\s+<file>Testing
pytest) — 21 passed (verification suite), 178 totalChecklist
Additional Notes
TypeScript 7 (native Go port) is distributed as
tsc@7via bunx/npx, so versioned invocations are the standard form in current TS7 projects.