Skip to content
Ultracite
Esc
↑↓navigate↵open⌘Jpreview
On this page

ultracite@7.12.1

Patch Changes

  • 00dd547: Agent hooks now fix only the file the agent edited. The generated hook command passes a new --hook flag, and ultracite fix --hook reads the agent’s payload from stdin: Claude Code and CodeBuddy (tool_input.file_path), Cursor (file_path) and Windsurf (tool_info.file_path). A file outside the project, one that no longer exists, or one the project’s linters do not handle is skipped. A payload with no readable file path keeps the previous whole-project run. Re-running ultracite init rewrites a hook from an earlier init to the new command, including one generated before this change or for a different package manager or linter.

  • 300a814: Update @biomejs/biome to 2.5.14. Releases 2.5.13 and 2.5.14 add only nursery rules (14 of them, including noReturnInFinally, noSvelteAtHtmlTags and useValidTestTitle), with no stable-group additions, removals or promotions. The Biome presets deliberately leave nursery rules off, so they are unchanged.

  • b8b183b: Update dependencies (@clack/prompts 1.8, empathic 2.1, magicast, nypm, string-width 8.3, yaml and zod 4.6).

  • b59b8aa: Update oxfmt to 0.70.0 and re-target the markdown ::: fence patch. Releases 0.68 through 0.70 change no options; they fix suppression-comment handling, comment placement around operators and as/satisfies, and several YAML and CSS edge cases. oxfmt 0.69 also ships a native markdown formatter, but .md files still go through the Prettier-based path, so the fence patch still applies.

  • 548c8b0: Update oxlint to 1.85.0. Releases 1.83 through 1.85 add and remove no rules and change no options, so the presets are unchanged. Note that jest/prefer-strict-equal, vitest/prefer-strict-equal, vitest/prefer-to-be-truthy and vitest/prefer-to-be-falsy now offer suggestions instead of fixes, so ultracite fix reports them rather than rewriting them. unicorn/consistent-function-scoping also now catches functions that only capture variables from an outer ancestor scope.

  • 0bc6cd6: Update the ESLint family: eslint 10.11, eslint-plugin-unicorn 76, @typescript-eslint/* 8.70.1, eslint-plugin-jsdoc 64.5, eslint-plugin-astro 3.2, eslint-plugin-n 18.4, eslint-plugin-vue 10.11.1, @tanstack/eslint-plugin-query 5.104, @next/eslint-plugin-next 16.3.6, @darraghor/eslint-plugin-nestjs-typed 7.5.6, eslint-plugin-qwik 1.20.1, eslint-plugin-html 8.2.1 and eslint-plugin-react-doctor / oxlint-plugin-react-doctor 0.9.14.

    The ESLint core preset picks up unicorn’s ten new JavaScript rules automatically: no-async-iterator-callback, no-unused-builtin-method-return (which replaces the now-deprecated no-unused-array-method-return), no-unused-iterator-helper, no-useless-set-construction, no-using-resource-escape, prefer-combined-guards, prefer-iterator-zip, prefer-json-import, prefer-temporal-conversion and prefer-uint8array-hex. The CSS-only unicorn rules added in v75 stay off for JavaScript files. unicorn 76 makes no-immediate-mutation skip conditional mutations and no-break-in-nested-loop skip continue by default; the preset keeps those defaults because oxlint’s no-immediate-mutation behaves the same way and checking continue would contradict prefer-continue.

  • 0bcb2c6: Update prettier-plugin-astro to 1.1.0 (the version ultracite init installs for Astro projects with Prettier) and refresh the transitive Prettier lock to 3.9.9. Prettier 3.9.7 through 3.9.9 are formatting fixes with no option changes, so the Prettier preset is unchanged. prettier-plugin-astro 1.1 makes astroAllowShorthand tri-state. When it is unset, which is how Ultracite’s generated config leaves it, attributes now stay as written instead of {value} being expanded to value={value}. Set astroAllowShorthand: false in your Prettier config to keep the 1.0 behaviour.

  • 8b39375: Update @shadcn/lint to 0.2.0 (the version ultracite init installs for the opt-in ultracite/oxlint/shadcn preset). The release adds Vue and Svelte support and fixes theme, barrel and class-site discovery; the rules and their options are unchanged, so the preset is too. Under Oxlint the plugin reads only the <script> blocks of .vue and .svelte files, not their templates.

  • 0bc6cd6: Update eslint-plugin-sonarjs to 4.2.1. The ESLint preset adopts its 16 new rules automatically (Vue, Cypress, Playwright, Testing Library, Vitest, Lodash, jQuery and Axios checks). The ultracite/oxlint/js-plugins preset now enables every sonarjs rule that does not need type information, adding 35 rules. These include the 15 new non-type-aware rules and nine test rules that older versions of oxlint’s JS plugin bridge could not load. sonarjs 4.2.1 also raised the no-nested-functions default threshold from 4 to 5; both presets pin threshold: 4 to keep the previous strictness.

Last updated on September 28, 2026

Was this page helpful?