Immutable
release. Only release title and notes can be modified.
Patch Changes
- dc6d760: Disable the
n/no-unpublished-importrule in the ESLint core config. This rule flags imports of packages that aren't listed as published dependencies, but it produces a lot of false positives in practice, so it's now turned off. - 15ecfba: Fix
ultracite init --linter eslintinstalling an unusable toolchain. The generated ESLint config importseslint-plugin-storybookunconditionally (which requires thestorybookpeer) and the generated Stylelint config extendsstylelint-config-standard/stylelint-config-idiomatic-order/stylelint-prettier, but none of those packages were installed — so a fresh ESLint setup failed to load with "Cannot find package 'storybook'" or "Could not find stylelint-config-standard". These four packages are now installed with the ESLint linter. - 2f73a41: Upgrade to oxlint 1.73.0 and oxfmt 0.58.0, and enable the new lint rules they introduce:
no-unreachable-loop,unicorn/explicit-timer-delay, andunicorn/no-confusing-array-with. - 83b2783: Add an
[astro]formatter mapping (astro-build.astro-vscode) to the oxlint VS Code editor settings generated byultracite init, since oxfmt doesn't format.astrofiles. - d186c53: Move every JS-plugin-based rule set out of the Oxlint core and framework presets and into a single opt-in
ultracite/oxlint/js-pluginspreset. This coverseslint-plugin-githubandeslint-plugin-sonarjs(previously in core) as well asoxlint-plugin-react-doctor(previously bundled into thereact,next, andtanstackpresets). The core,react,next, andtanstackpresets now run entirely on Oxlint's native Rust rules, so new setups no longer install those dependencies and no longer pay the slower JS-plugin lint pass. To keep the extra ESLint-parity and React Doctor rules, installeslint-plugin-github,eslint-plugin-sonarjs, andoxlint-plugin-react-doctorand extendultracite/oxlint/js-pluginsalongsidecore(and your framework preset). - 057753e: Add performance benchmarks for
ultracite check/ultracite fixacross all three providers (oxlint, biome, eslint). A new CI job builds the PR and its base branch on the same runner, benchmarks them interleaved, and fails on a statistically significant regression (median ratio > 1.25x with Mann-Whitney U p < 0.05) so config changes can't silently slow the linters down again.