Skip to content

Replace Biome and ESLint with oxlint and oxfmt#50

Merged
devxoul merged 2 commits intomainfrom
oxlint-oxfmt
Mar 9, 2026
Merged

Replace Biome and ESLint with oxlint and oxfmt#50
devxoul merged 2 commits intomainfrom
oxlint-oxfmt

Conversation

@devxoul
Copy link
Owner

@devxoul devxoul commented Mar 9, 2026

Summary

Replace Biome (linter + formatter) and ESLint with oxlint and oxfmt from the oxc project. Biome served well but oxlint and oxfmt are faster, have better rule coverage for correctness/suspicious categories, and provide native Tailwind class sorting without plugins. This also consolidates the docs/ linting setup — instead of separate biome.json + eslint.config.mjs in docs/, a single root .oxlintrc.json with overrides handles both the main package and docs.

Changes

Tooling config

  • .oxlintrc.json — Add root config: correctness rules as errors, suspicious as warnings, with overrides for docs/ to enable react, jsx-a11y, and nextjs plugin rules.
  • .oxfmtrc.json — Add formatter config: 120 line width, no semicolons, single quotes, import sorting, Tailwind class sorting scoped to docs/.
  • biome.json, docs/biome.json, docs/eslint.config.mjs — Delete. Fully replaced by the oxc configs above.

Dependency changes

  • package.json — Remove @biomejs/biome, add oxlint + oxfmt. Update lint, lint:fix, and format scripts.
  • docs/package.json — Remove eslint, eslint-config-next, eslint-plugin-tailwindcss. Update lint script to use oxlint with docs override.

Lint fixes (non-mechanical)

  • src/platforms/discord/client.ts — Remove unused lastError variable that was declared but never assigned. Simplify post-retry error throw.
  • src/shared/utils/concurrency.ts — Replace new Array(n) with Array.from({ length: n }) to satisfy the no-new-array correctness rule.
  • src/platforms/teams/index.ts — Delete empty barrel file flagged as dead code.

Formatting (mechanical)

oxfmt applied across all source, test, doc, and skill files. Changes are whitespace/style only — no logic modifications. Roughly 180 files touched, mostly trailing newlines and quote normalization.

Testing

  • Typecheck, lint, and format all pass with the new tooling.

Summary by cubic

Replace Biome and ESLint with oxlint and oxfmt for faster linting/formatting, better rule coverage, and native Tailwind class sorting in docs. Unifies tooling with single root configs and updates scripts without changing runtime behavior.

  • Dependencies

    • Add oxlint and oxfmt.
    • Remove @biomejs/biome, and in docs/ remove eslint, eslint-config-next, eslint-plugin-tailwindcss.
    • Update scripts: lint/lint:fix/format now use oxlint/oxfmt (root and docs/).
  • Refactors

    • Add .oxlintrc.json (root ignores) and .oxfmtrc.json (120 width, single quotes, no semicolons, import sorting, Tailwind class sorting scoped to docs/).
    • Remove biome.json, docs/biome.json, docs/eslint.config.mjs.
    • Apply oxfmt across the repo (style-only). Minor lint fixes, e.g. simplify retry error in src/platforms/discord/client.ts.

Written for commit 4ff131a. Summary will update on new commits.

@vercel
Copy link

vercel bot commented Mar 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
agent-messenger Ignored Ignored Mar 9, 2026 6:42am

Request Review

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 183 files

Note: This PR contains a large number of files. cubic only reviews up to 75 files per PR, so some files may not have been reviewed.

@devxoul devxoul merged commit 3ed7b29 into main Mar 9, 2026
5 checks passed
@devxoul devxoul deleted the oxlint-oxfmt branch March 9, 2026 06:45
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