You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
c863d09: Fix automatic editor extension installation during ultracite init.
The whole command line (e.g. code --install-extension) was passed to spawnSync as the executable name, which always failed with ENOENT and
silently fell back to the "install manually" message. The command is now split
into the binary and its arguments, so the linter extension actually installs
for VS Code-based editors.
6888129: Enable the eslint/no-await-in-loop rule as an error in the core Oxlint
preset.
Awaiting inside a loop forces each iteration to run sequentially, which can
lead to serious performance issues when the asynchronous operations could
otherwise run concurrently. Promoting this rule to an error encourages
collecting promises and resolving them together (e.g. with Promise.all)
instead of blocking on each one in turn.
62a9b5c: Fix the generated Husky pre-commit hook's error handling and section
replacement.
The standalone hook script set set -e and then tried to capture the
formatter's exit code, re-stage files, and print a failure message — but a
non-zero formatter exit terminated the script immediately, so none of that
ever ran. The script now captures the exit code with || FORMAT_EXIT_CODE=$?
so files are re-staged and failures are reported with the right exit code.
Re-running ultracite init also deleted everything from the # ultracite
marker to the end of the hook, including commands the user added after the
ultracite section. The section is now terminated with an explicit # ultracite end marker and updates replace only the section between the
markers (legacy sections without an end marker are detected by their closing
echo line).
6608ceb: Make the lint-staged integration idempotent and respect dedicated config
files.
package.json was always treated as the lint-staged config because the file
exists in every project, so ultracite init wrote the lint-staged config into package.json even when a dedicated .lintstagedrc.* or lint-staged.config.* file was present — leaving two conflicting configs. package.json now only counts when it actually has a lint-staged key;
otherwise the dedicated config file is updated (or .lintstagedrc.json is
created).
Re-running ultracite init also appended another npx ultracite fix entry on
every run because the merge concatenates arrays. Updates are now skipped when
the existing config already references ultracite.
4e847f7: Insert -- before script arguments in npm hook commands.
The post-edit hook command generated for npm projects was npm run fix --skip=correctness/noUnusedImports, where npm consumes the --skip flag itself instead of forwarding it to the script — so agent hooks
ran a plain ultracite fix, including the unused-import removal the flag
exists to prevent mid-edit. The generated command is now npm run fix -- --skip=correctness/noUnusedImports, matching the documented
form.
ecb0d5b: Scope the Stylelint step of ultracite check and ultracite fix (ESLint mode)
to style files.
Stylelint was previously given the same targets as ESLint and Prettier (or .
when no files were passed), so it tried to parse .ts/.json files as CSS and
failed with CssSyntaxError. Style files now pass through unchanged, directory
targets become **/*.{css,scss,sass,less} globs, other files are dropped, and
the step is skipped entirely when no style targets remain. --allow-empty-input is passed so projects without CSS still succeed.
61ea0a1: Fix the project-path write guard's error message and ordering.
The "Refusing to write through directory outside project" error interpolated
the node:path module instead of the offending file path, printing [object Object]. It now reports the actual path.
writeProjectFile also created directories (mkdir -p) before running the
path-escape check, so directories could be created outside the project before
the guard threw. Validation now happens first; the parent-directory check
resolves the nearest existing ancestor so writes into not-yet-created nested
directories still work.
Configuration
📅 Schedule: (UTC)
Branch creation
"before 4am"
Automerge
At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
renovateBot
changed the title
chore(deps): update dependency ultracite to v7.8.2
chore(deps): update dependency ultracite to v7.8.2 - autoclosed
Jun 9, 2026
renovateBot
changed the title
chore(deps): update dependency ultracite to v7.8.2 - autoclosed
chore(deps): update dependency ultracite to v7.8.3
Jun 11, 2026
Maintainer check 2026-06-14: holding this PR. It updates ultracite to 7.8.3, published 2026-06-10T04:45:55Z, so it does not satisfy the 7-day npm age rule yet (current cutoff: 2026-06-07T00:30Z). Netlify deploy-preview checks are also failing. Will revisit after the age window and green checks.
Maintainer cleanup: closing this Renovate dependency PR instead of merging now. The target package version is still younger than the repo's 7-day dependency-age policy and/or its preview checks are not clean. Main currently passes local install/check/build, so keeping the repo green and PR queue empty. Renovate can propose a fresh update after the version has aged or a newer qualifying version exists.
Closing during maintainer cleanup to keep PR queue at 0 while preserving build stability. Target update is not eligible for merge under the 7-day dependency-age policy and/or has failing preview checks.
Because you closed this PR without merging, Renovate will ignore this update (^7.8.2). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.8.2→7.8.3Release Notes
haydenbleasel/ultracite (ultracite)
v7.8.3Compare Source
Patch Changes
c863d09: Fix automatic editor extension installation duringultracite init.The whole command line (e.g.
code --install-extension) was passed tospawnSyncas the executable name, which always failed withENOENTandsilently fell back to the "install manually" message. The command is now split
into the binary and its arguments, so the linter extension actually installs
for VS Code-based editors.
6888129: Enable theeslint/no-await-in-looprule as an error in the core Oxlintpreset.
Awaiting inside a loop forces each iteration to run sequentially, which can
lead to serious performance issues when the asynchronous operations could
otherwise run concurrently. Promoting this rule to an error encourages
collecting promises and resolving them together (e.g. with
Promise.all)instead of blocking on each one in turn.
62a9b5c: Fix the generated Husky pre-commit hook's error handling and sectionreplacement.
The standalone hook script set
set -eand then tried to capture theformatter's exit code, re-stage files, and print a failure message — but a
non-zero formatter exit terminated the script immediately, so none of that
ever ran. The script now captures the exit code with
|| FORMAT_EXIT_CODE=$?so files are re-staged and failures are reported with the right exit code.
Re-running
ultracite initalso deleted everything from the# ultracitemarker to the end of the hook, including commands the user added after the
ultracite section. The section is now terminated with an explicit
# ultracite endmarker and updates replace only the section between themarkers (legacy sections without an end marker are detected by their closing
echo line).
6608ceb: Make the lint-staged integration idempotent and respect dedicated configfiles.
package.jsonwas always treated as the lint-staged config because the fileexists in every project, so
ultracite initwrote the lint-staged config intopackage.jsoneven when a dedicated.lintstagedrc.*orlint-staged.config.*file was present — leaving two conflicting configs.package.jsonnow only counts when it actually has alint-stagedkey;otherwise the dedicated config file is updated (or
.lintstagedrc.jsoniscreated).
Re-running
ultracite initalso appended anothernpx ultracite fixentry onevery run because the merge concatenates arrays. Updates are now skipped when
the existing config already references ultracite.
4e847f7: Insert--before script arguments in npm hook commands.The post-edit hook command generated for npm projects was
npm run fix --skip=correctness/noUnusedImports, where npm consumes the--skipflag itself instead of forwarding it to the script — so agent hooksran a plain
ultracite fix, including the unused-import removal the flagexists to prevent mid-edit. The generated command is now
npm run fix -- --skip=correctness/noUnusedImports, matching the documentedform.
ecb0d5b: Scope the Stylelint step ofultracite checkandultracite fix(ESLint mode)to style files.
Stylelint was previously given the same targets as ESLint and Prettier (or
.when no files were passed), so it tried to parse
.ts/.jsonfiles as CSS andfailed with
CssSyntaxError. Style files now pass through unchanged, directorytargets become
**/*.{css,scss,sass,less}globs, other files are dropped, andthe step is skipped entirely when no style targets remain.
--allow-empty-inputis passed so projects without CSS still succeed.61ea0a1: Fix the project-path write guard's error message and ordering.The "Refusing to write through directory outside project" error interpolated
the
node:pathmodule instead of the offending file path, printing[object Object]. It now reports the actual path.writeProjectFilealso created directories (mkdir -p) before running thepath-escape check, so directories could be created outside the project before
the guard threw. Validation now happens first; the parent-directory check
resolves the nearest existing ancestor so writes into not-yet-created nested
directories still work.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.