ultracite@7.12.3
Patch Changes
-
f753c14: Add opt-in TSDoc syntax validation and public TypeScript API documentation checks to the Oxlint
js-pluginspreset. Selecting a plugin with--js-pluginson a config that extends the fulljs-pluginspreset now keeps the preset’s plugins. -
ade34d3: Update
@biomejs/biometo 2.5.15. The release adds 11 nursery rules and changes no stable rules, so the Biome presets, which exclude nursery rules, are unchanged. It speeds up HTML formatting and big-file analysis, fixes Astro expression indentation and Svelte comment placement, and reports configuration errors that Biome 2.5.14 silently ignored. -
631e0dd: Update oxfmt to 0.71.0. The release changes no options; it bundles Prettier 3.9.9 for embedded languages and fixes comment placement around assignments, JSDoc alignment and several Markdown edge cases.
-
08e83af: Update oxlint to 1.86.0 and enable its new type-aware rule,
typescript/no-generated-empty-object-type, in the core Oxlint preset. It reports type operations such asPick<Data, never>that resolve to the empty object type{}, matching the@typescript-eslintrule of the same name that the ESLint preset already enables. Like the other type-aware rules, it only runs withoxlint --type-awareandoxlint-tsgolintinstalled. Older oxlint releases fail to parse a config that names the rule, so theoxlintpeer range moves to^1.86.0.Requires oxlint >= 1.86.0
-
2a9348c: Update the ESLint presets’ plugins:
eslint10.12,eslint-plugin-unicorn77,eslint-plugin-jsdoc65,@typescript-eslint8.71,eslint-plugin-sonarjs4.2.2,eslint-plugin-react-doctorandoxlint-plugin-react-doctor0.9.16, plus patch releases of the Next.js, TanStack Query,n, Solid and Storybook plugins.The ESLint core preset enables every non-deprecated JavaScript rule from unicorn, so it now also runs unicorn 77’s 21 new JavaScript rules, including
no-unnecessary-parameters,no-unsafe-json-serialization,prefer-promise-static-methodsand a set ofno-invalid-*checks for DOM,Intl,Response, Temporal and property descriptor arguments. It also enables the new type-aware@typescript-eslint/no-unsafe-enum-assignment. Unicorn 77 moves its CSS-only rules toeslint-cssicorn; the preset never enabled them for JavaScript files, so nothing is lost. -
864cde1: Raise the
eslintpeer dependency to^10.9.0. The ESLint core preset configuresno-unmodified-loop-conditionwithcheckConditionalExpressions, an option ESLint 10.0 to 10.8 reject, so every preset except Vue failed withKey "rules": Key "no-unmodified-loop-condition"on those releases even though the old^10.0.0range allowed them (eslint-plugin-unicornalso needs ESLint 10.4 or later).ultracite initandultracite upgradenow install a release that loads the presets, andultracite doctorand your package manager flag older ones.@eslint/js, which is no longer versioned with ESLint, keeps its own^10.0.1range.Requires eslint >= 10.9.0
-
d7563b3:
ultracite initnow skips every prompt when you pass any of--pm,--editors,--agents,--hooks,--integrations,--frameworksor--workspace-framework, as documented. Before, the editor, agent, hook, skill and (with--frameworks) integration prompts still asked, which stalled scaffolding tools that call init without a TTY.--js-pluginswith a linter other than Oxlint now stops init with an error instead of being silently ignored, and without--linterit skips the linter prompt. -
6c7e149:
ultracite initno longer hangs on a.pre-commit-config.yamlor lefthook config with CRLF line endings and many consecutive comment lines. The check that keeps the file’s sequence indentation could backtrack exponentially on that input. -
3dc6431: On Windows, a linter or formatter that isn’t installed is now reported as missing instead of as “exited with code 1”.
ultracite checkandultracite fixwarn and skip CSS linting when the optional Stylelint is missing, as they already did on macOS and Linux, andultracite fix --agentnow skips a missing Stylelint on every platform instead of failing. -
7f085b2: Type
jsPluginsas a non-null array on the Oxlint presets that always ship plugins (js-plugins,shadcn,anti-slop,next/js-plugins,tanstack/js-plugins) and onselectJsPlugins()’s return value, so spreading several of them into a rootjsPluginsarray typechecks. -
45e7f86: The ESLint core preset enables
unicorn/prefer-combined-guards’s newcheckMultiStatementBodiesoption, so consecutive guards whose bodies repeat the same statements before the same exit (for example, twoifblocks that each log andcontinue) are reported and can be combined with||. In TypeScript, the rule only combines bodies when type information shows every reference has the same type in both. -
d5523c5:
ultracite inittakes--workspace-framework <path>=<framework>for monorepos whose workspaces use different frameworks. For each workspace, it writes an Oxlint, Biome or ESLint config in that directory that extends the root config and adds the workspace’s presets, so framework rules only run where they apply and editors see the same rules asultracite check.