Repository navigation
fix(deps): update all dependencies - #20
renovate[bot] wants to merge 1 commit into
Conversation
61f06bc to
4c58bf8
Compare
52aba09 to
16d549f
Compare
f240877 to
3c2e51f
Compare
9456c54 to
0ff8d9f
Compare
6ff8486 to
4c77644
Compare
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 Walkthrough
🚥 Pre-merge checks | ✅ 5
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🐇 I nudged a YAML line, made pnpm climb to eleven, Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/actions/setup/action.yml:
- Line 13: The workflow currently uses a mutable tag "pnpm/action-setup@v6";
replace that with an immutable full commit SHA (40-hex) for pnpm/action-setup to
pin the action (e.g., "pnpm/action-setup@<full-commit-sha>"). Locate the "uses:
pnpm/action-setup@v6" entry in the action.yml and update it to the exact commit
SHA from the pnpm/action-setup repository, verify the SHA is full-length (40
characters) and that the workflow still runs correctly after the change.
In @.github/workflows/checking-dependencies.yml:
- Line 15: Replace the mutable tag reference "uses: pnpm/action-setup@v6" with
an immutable pin to the full commit SHA for the pnpm/action-setup action (e.g.,
"uses: pnpm/action-setup@<full-commit-sha>"); locate the occurrences of
"pnpm/action-setup@v6" in the workflow and update them to the corresponding
release commit SHA from the action's repository, then verify the workflow runs
successfully.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 4cd2e52a-a23f-4849-8bc7-20b25e799703
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (5)
.github/actions/setup/action.yml.github/workflows/checking-dependencies.yml.github/workflows/snapshot.ymlpackage.jsonpackages/app/package.json
| steps: | ||
| - name: Install pnpm | ||
| uses: pnpm/action-setup@v3 | ||
| uses: pnpm/action-setup@v6 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify mutable action refs under .github (tag-based refs like `@v1/`@v6).
# Expected: no matches after SHA pinning.
rg -n --iglob '*.yml' --iglob '*.yaml' 'uses:\s*[^@[:space:]]+@v[0-9]+(\.[0-9]+){0,2}\b' .githubRepository: ProverCoderAI/openapi-effect
Length of output: 1009
Pin pnpm/action-setup to an immutable commit SHA.
Line 13 uses a mutable tag (@v6). Please pin to a full-length commit SHA to reduce supply-chain risk and avoid policy breaks in hardened org settings.
🔒 Suggested change
- uses: pnpm/action-setup@v6
+ uses: pnpm/action-setup@<full-length-commit-sha> # v6.xReference: https://docs.github.com/actions/security-guides/security-hardening-for-github-actions
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/actions/setup/action.yml at line 13, The workflow currently uses a
mutable tag "pnpm/action-setup@v6"; replace that with an immutable full commit
SHA (40-hex) for pnpm/action-setup to pin the action (e.g.,
"pnpm/action-setup@<full-commit-sha>"). Locate the "uses: pnpm/action-setup@v6"
entry in the action.yml and update it to the exact commit SHA from the
pnpm/action-setup repository, verify the SHA is full-length (40 characters) and
that the workflow still runs correctly after the change.
| steps: | ||
| - uses: actions/checkout@v6 | ||
| - uses: pnpm/action-setup@v4 | ||
| - uses: pnpm/action-setup@v6 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify mutable action refs under .github (tag-based refs like `@v1/`@v6).
# Expected: no matches after SHA pinning.
rg -n --iglob '*.yml' --iglob '*.yaml' 'uses:\s*[^@[:space:]]+@v[0-9]+(\.[0-9]+){0,2}\b' .githubRepository: ProverCoderAI/openapi-effect
Length of output: 1009
Pin pnpm/action-setup to a commit SHA instead of a mutable tag.
Line 15 uses @v6, which is a mutable tag reference. Per GitHub's security hardening guidelines, action references should be pinned to full commit SHAs to ensure immutability and prevent unintended updates from tag rewrites.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/checking-dependencies.yml at line 15, Replace the mutable
tag reference "uses: pnpm/action-setup@v6" with an immutable pin to the full
commit SHA for the pnpm/action-setup action (e.g., "uses:
pnpm/action-setup@<full-commit-sha>"); locate the occurrences of
"pnpm/action-setup@v6" in the workflow and update them to the corresponding
release commit SHA from the action's repository, then verify the workflow runs
successfully.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 6: The package.json currently sets "packageManager": "pnpm@11.1.2" but
pnpm v11 requires config and environment changes; run the recommended codemod
(pnpx codemod run pnpm-v10-to-v11) and then: move any settings under the
package.json "pnpm" field into pnpm-workspace.yaml, strip .npmrc to only
auth/registry entries, update .nvmrc and CI to Node.js 22+ to match pnpm v11,
rename any environment variables from npm_config_* to pnpm_config_ and manually
review remaining envs, and rename or invoke scripts named
clean/setup/deploy/rebuild using pnpm pm to avoid shadowing built-ins.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 78ded05a-1811-4eac-8349-84f29cb8618e
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (5)
.github/actions/setup/action.yml.github/workflows/checking-dependencies.yml.github/workflows/snapshot.ymlpackage.jsonpackages/app/package.json
🚧 Files skipped from review as they are similar to previous changes (4)
- .github/actions/setup/action.yml
- .github/workflows/checking-dependencies.yml
- .github/workflows/snapshot.yml
- packages/app/package.json
| "private": true, | ||
| "description": "Monorepo workspace for effect-template", | ||
| "packageManager": "pnpm@10.30.1", | ||
| "packageManager": "pnpm@11.1.2", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
pnpm 11 breaking changes and migration guide
💡 Result:
pnpm 11 is a major release that introduces significant breaking changes, security-first defaults, and architectural improvements [1]. The official migration guide is available at https://pnpm.io/11.x/migration [2]. Key Breaking Changes and Migration Steps Configuration Changes pnpm 11 significantly changes how configuration is handled [3][1]: - Configuration is no longer read from the pnpm field in package.json; move these settings to pnpm-workspace.yaml [3][2]. -.npmrc files are now restricted to auth and registry settings only [3][1]. All other settings (e.g., hoist-pattern, node-linker) must be moved to pnpm-workspace.yaml using camelCase keys [3][2]. - npm_config_* environment variables are no longer supported; rename them to pnpm_config_* [3][1]. - pnpm no longer reads npm's global config at $PREFIX/etc/npmrc [1]. Dependency and Script Management - Build-dependency settings (onlyBuiltDependencies, neverBuiltDependencies, etc.) are consolidated into a single allowBuilds map in pnpm-workspace.yaml [3][1]. - Package manager strictness settings are collapsed into a single pmOnFail setting [3][2]. - Script names now shadow built-in commands [3]. If you have scripts named clean, setup, deploy, or rebuild, pnpm will execute your script instead of the built-in command; use pnpm pm to access the built-in version [3]. - pnpm install -g (with no arguments) is no longer supported; use pnpm add -g instead [3][1]. Environment and Infrastructure - Node.js 18, 19, 20, and 21 are no longer supported; Node.js 22+ is required [1]. - pnpm is now distributed as pure ESM [1]. - Global installs are now isolated using a global-virtual-store, preventing interference between global packages [1]. Security and New Features - Minimum Release Age: By default, pnpm 11 blocks the installation of package versions published within the last 24 hours to mitigate supply chain attacks [4][5][6]. - Exotic Subdependencies: pnpm 11 blocks dependencies resolved from non-standard sources (e.g., Git repositories or direct tarball URLs) by default [4][6]. - Native Publish: The npm CLI fallback for publishing has been removed in favor of a native implementation [1]. - Store Index: The store index has been migrated from a JSON-per-package format to a single SQLite database for improved performance [1][5]. Migration Tooling The pnpm team provides a codemod to automate many of these changes [2]. You can run it in your project directory: pnpx codemod run pnpm-v10-to-v11 [2] For changes that cannot be automated, such as environment variable updates, manual review is required [3][2].
Citations:
- 1: https://pnpm.io/blog/releases/11.0
- 2: https://pnpm.io/11.x/migration
- 3: https://pnpm.io/migration
- 4: https://gbhackers.com/pnpm-11-enables-default-release-age-guard/
- 5: https://cyberpress.org/pnpm-blocks-supply-attacks/
- 6: https://undercodenews.com/pnpm-11-reinvents-javascript-security-a-new-era-for-dependency-protection/
🌐 Web query:
pnpm 11.1.2 release notes and security advisories
💡 Result:
As of May 17, 2026, pnpm version 11.1.2 is the latest release [1]. Release Notes for pnpm 11.1.2 Specific release notes for version 11.1.2 were not explicitly detailed in the provided search results, as it is a very recent patch release [1]. However, it follows the major 11.1.0 and 11.1.1 releases, which introduced several significant features and fixes [2][3][4]: - New Commands: Added pnpm audit signatures (to verify ECDSA registry signatures), pnpm bugs (to open package bug trackers), and pnpm owner (to manage package owners) [3][4]. - Named Registries: Added support for installing packages from arbitrary named registries, including a built-in gh: prefix for the GitHub Packages npm registry [3][4]. - CI Improvements: Introduced the --no-runtime flag (config: runtime=false) to skip installing runtime entries (e.g., Node.js) in CI environments [3][4]. - Fixes: Version 11.1.1 included fixes for installability validation in workspace projects, resolved issues with pnpm add for named registries, and updated @zkochan/cmd-shim to improve compatibility with Git Bash on Windows [2]. Security Advisories There are no specific security advisories listed for version 11.1.2. Users should monitor the official pnpm GitHub Security Advisories page for any future disclosures [5]. Recent security-related updates in the pnpm 11 series include: - Minimum Release Age: pnpm 11 introduced a default Minimum Release Age of 24 hours (1440 minutes), which prevents the installation of newly published package versions to mitigate supply chain attacks [6][7][8]. - Enhanced Auditing: pnpm audit now queries the registry's bulk security advisories endpoint and filters by GitHub Advisory ID (GHSA) rather than CVE identifiers [9]. - Security Hardening: pnpm 11 requires Node.js 22+ and is distributed as pure ESM [10][11]. It also includes improved control over lifecycle scripts via the allowBuilds model [7][8]. For the most up-to-date information, always check the official pnpm releases page on GitHub and the security advisories section [12][5].
Citations:
- 1: https://www.npmjs.com/package/pnpm?activeTab=versions
- 2: https://github.com/pnpm/pnpm/releases/tag/v11.1.1
- 3: https://pnpm.io/blog/releases/11.1
- 4: https://newreleases.io/project/npm/pnpm/release/11.1.0
- 5: https://github.com/pnpm/pnpm/security/advisories
- 6: https://gbhackers.com/pnpm-11-enables-default-release-age-guard/
- 7: https://undercodenews.com/pnpm-11-reinvents-javascript-security-a-new-era-for-dependency-protection/
- 8: https://pnpm.io/supply-chain-security
- 9: https://pnpm.io/cli/audit
- 10: https://github.com/pnpm/pnpm/releases/tag/v11.0.0
- 11: https://pnpm.io/blog/releases/11.0
- 12: https://github.com/pnpm/pnpm/releases
Review pnpm 11 migration requirements before merging.
This major version upgrade introduces breaking changes that require configuration updates and environment adjustments:
- Configuration files: Settings in
package.json'spnpmfield must move topnpm-workspace.yaml. Update.npmrcto contain only auth and registry settings. - Node.js requirement: pnpm 11 requires Node.js 22+. Verify your project's
.nvmrcand CI configuration specify a compatible version. - Environment variables: Any
npm_config_*variables must be renamed topnpm_config_*. - Script behavior: Scripts named
clean,setup,deploy, orrebuildnow shadow built-in commands; usepnpm pmto access built-in versions.
Run the migration codemod to automate configuration changes:
pnpx codemod run pnpm-v10-to-v11
Refer to https://pnpm.io/11.x/migration for the complete migration guide. Manual review is needed for environment variable updates that the codemod cannot automate.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 6, The package.json currently sets "packageManager":
"pnpm@11.1.2" but pnpm v11 requires config and environment changes; run the
recommended codemod (pnpx codemod run pnpm-v10-to-v11) and then: move any
settings under the package.json "pnpm" field into pnpm-workspace.yaml, strip
.npmrc to only auth/registry entries, update .nvmrc and CI to Node.js 22+ to
match pnpm v11, rename any environment variables from npm_config_* to
pnpm_config_ and manually review remaining envs, and rename or invoke scripts
named clean/setup/deploy/rebuild using pnpm pm to avoid shadowing built-ins.
|
Надо смержить сюда main ветку и исправить все ошибки в CI/CD что бы код был с актуальными библиотеками |
|
🤖 AI Work Session Started Starting automated work session at 2026-06-19T19:17:51.406Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
|
Update: the CI/CD fix is implemented and verified, but I cannot push it directly to this PR head branch. Blocker:
Prepared fix:
What the fix covers:
Verification:
Needed human action: either grant/push access to |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (508.9K + 13.1M cached) input tokens, 68.4K output tokens, $21.304392 cost 🤖 Models used:
📎 Log file uploaded as Repository (75696KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 1)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
|
Rechecked the failing CI/CD status in this restart session. Findings:
Verification repeated locally with Node
Fork CI also has successful runs for Remaining blocker is repository permissions, not code: |
🔄 Auto-restart-until-mergeable Log (iteration 1)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
🤖 Models used:
📎 Log file uploaded as Repository (96784KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 2)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
|
Rechecked and updated the prepared fix in this restart session. Current prepared commit:
Root causes confirmed from upstream CI logs for old SHA
Verification on current SHA
Remaining blocker is repository permission, not code. Needed maintainer action: push/cherry-pick |
🔄 Auto-restart-until-mergeable Log (iteration 2)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
🤖 Models used:
📎 Log file uploaded as Repository (2 chunks) (116514KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 3)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
|
Restart iteration 3 rechecked the prepared CI fix. Current verified head:
Fresh upstream CI logs downloaded in this session confirm old-head root causes:
Verification repeated on
Push blocker remains external: Needed maintainer action: push or cherry-pick |
🔄 Auto-restart-until-mergeable Log (iteration 3)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
🤖 Models used:
📎 Log file uploaded as Repository (2 chunks) (139990KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 4)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
|
Restart iteration 4 rechecked the CI/CD fix. Current verified head:
Fresh upstream logs downloaded in this session confirm the old-head failures:
Verification repeated locally on
Push status:
Needed maintainer action: push or cherry-pick |
🔄 Auto-restart-until-mergeable Log (iteration 4)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
🤖 Models used:
📎 Log file uploaded as Repository (2 chunks) (154923KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 5)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
|
Restart iteration 5 rechecked the CI/CD failures and the prepared fix. Current verified fix:
Fresh upstream CI status:
Root causes confirmed from downloaded upstream logs:
Verification repeated locally on
Fork CI on
Push status:
Needed maintainer action: push or cherry-pick |
🔄 Auto-restart-until-mergeable Log (iteration 5)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
🤖 Models used:
📎 Log file uploaded as Repository (2 chunks) (177139KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
|
|
🤖 AI Work Session Completed Work session ended at 2026-06-19T20:58:19.771Z The PR will be converted back to ready for review. This comment marks the end of an AI work session. New comments after this time will be considered as feedback. |
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^2.4.4→^2.6.2^0.5.2→^1.0.1^2.29.8→^3.0.3^4.6.0→^4.8.12.0.2→2.1.13.3.3→3.3.7^24.10.13→^24.19.2^8.56.0→^8.72.0^8.56.0→^8.72.0^4.0.18→^5.0.5^1.6.9→^1.6.27v6→v7v6→v7v6→v7^3.19.18→^4.0.5^10.0.1→^10.13.0^4.4.4→^4.4.5^12.1.1→^14.0.0^4.0.0→^4.2.2^63.0.0→^78.0.0^17.3.0→^17.13.0^4.0.8→^5.4.224.13.1→24.22.110.30.1→12.14.0v4→v6v3→v6^5.9.3→^7.0.2^8.56.0→^8.72.0^7.3.1→^8.3.5^4.0.18→^5.0.5cc @skulidropek
Release Notes
biomejs/biome (@biomejs/biome)
v2.6.2Compare Source
Minor Changes
#11479
5c60ba8Thanks @nhedger! - Added a--gitflag tobiome init. The flag enables Git VCS integration and setsvcs.useIgnoreFiletotruein the generated configuration, even when the command runs outside a Git repository.#11742
3a1356dThanks @Netail! - Added thebiome migrate stylelintcommand. It imports a Stylelint configuration and its ignore settings into your Biome configuration, mapping Stylelint rules to their Biome equivalents. Pass--writeto apply the changes, and--include-inspiredor--include-nurseryto migrate additional rules.#12318
774b5b5Thanks @Netail! - Added the new assist actionuseGraphqlSortedDefinitions, which sorts the named definitions of a GraphQL document, such as types, type extensions, directives, fragments, and operations.Invalid:
#6886
3479d15Thanks @christymcgrory! -biome ragenow shows the resolvedfiles.includesandfiles.ignoreUnknownconfiguration.#11102
0874b7fThanks @gameroman! - Added support foruseTailwindSortedClassesrule in HTML-ish files.#10711
40de5a0Thanks @soconnor-seeq! - Adds a newresolutionKindoption for object-syntax plugin entries.This allows shared Biome configs in monorepos to load local Grit plugins from the package that declares them instead of resolving plugin paths from the consuming project.
{ "plugins": [ { "path": "./grit/no-debugger.grit", "resolutionKind": "config" }, { "path": "local-plugin.grit", "resolutionKind": "project" }, { "path": "local-plugin.grit" } ] }Use
resolutionKind: "config"to resolve the plugin from the configuration file that declares it. UseresolutionKind: "project"to resolve the plugin from the consuming project. When omitted,resolutionKinddefaults toproject. This only affects plugin resolution;includesstill apply to end-user project files as usual.#11432
4befd08Thanks @ematipico! - Addedbiome inspect configto show resolved configuration values and their origins as human-readable diagnostics, including matching overrides.Configuration files can also extend other configurations up to ten levels deep. Repeated references to the same resolved file are ignored with an information diagnostic, while resolving multiple versions of one extended package produces an error.
#11477
ab05554Thanks @nhedger! - Added automatic Git VCS integration when runningbiome initinside a Git repository, including from nested directories and Git worktrees. The generated configuration setsvcs.enabledandvcs.useIgnoreFiletotrue, withvcs.clientKindset to"git".#11451
1ac4b09Thanks @ematipico! - #### YAML is now supportedAdded support for formatting YAML files, both
.yamland.ymlextensions#11432
4befd08Thanks @ematipico! - Configuration files can now recursively extend local files and npm package configurations up to ten levels. Every repeated reference participates in the merge, while resolving multiple versions of one extended package produces an error.#11713
ac6a640Thanks @dyc3! - Added support for Gritrange()patterns, addressing #8454. Plugins can filter syntax nodes by optionalstart_line,start_column,end_line, andend_columnbounds.For example, this pattern matches function calls contained entirely on line 2.
#11244
0628b53Thanks @ematipico! - Added the new CLI option--profile-type-inferenceto the commandslintandcheck.The profiler is designed to track the execution time of internal queries and operations, group them by file, and sort them from the most expensive to the least expensive.
Use
--verboseto include detailed timings, attribution, breadth, and implementation references for the top source records in each file.#12108
4fcb880Thanks @ematipico! - Promoted 59 nursery rules to stable groups.Correctness
Promoted the following rules to the
correctnessgroup with error severity. All of them are recommended:noDuplicateFieldDefinitionNamesnoVueRefAsOperandnoVueImportCompilerMacrosnoVueVOnNumberValuesuseVueValidVFornoComponentHookFactoriesnoJsxNamespaceuseReactAsyncServerFunctionnoReactNativeRawTextuseReactNativePlatformComponentsuseQwikLoaderLocationnoPlaywrightMissingAwaitusePlaywrightValidDescribeCallbackSuspicious
Promoted the following rules to the
suspiciousgroup:noLoopFuncnoJsxLeakedDollarnoReactStringRefs(recommended)useScopedStyles(recommended)noReactNativeDeepImports(recommended, error severity)noDrizzleDeleteWithoutWhere(recommended, error severity)noDrizzleUpdateWithoutWhere(recommended, error severity)noConditionalExpectuseExpectnoIdenticalTestTitle(recommended)noPlaywrightForceOptionnoPlaywrightNetworkidlenoPlaywrightPagePausenoPlaywrightWaitForNavigationnoPlaywrightWaitForTimeoutnoDuplicateSelectorsnoEmptyObjectKeysuseBaselinenoUntrustedLicensesSecurity
Promoted
useIframeSandboxto thesecuritygroup with error severity.Performance
Promoted the recommended rule
useDomNodeTextContentto theperformancegroup with warning severity.Complexity
Promoted the following rules to the
complexitygroup:useArraySomeuseRegexpTestnoUnnecessaryTemplateExpressionnoPlaywrightUselessAwaitnoExcessiveSelectorClassesuseMathMinMax(recommended, warning severity)noExcessiveNestedCallbacksStyle
Promoted the following rules to the
stylegroup with information severity:useVueConsistentDefinePropsDeclarationuseVueNextTickPromise(recommended)noReactNativeLiteralColorsuseConsistentTestItuseTestHooksInOrderuseTestHooksOnTopnoPlaywrightEvalnoPlaywrightElementHandlenoPlaywrightWaitForSelectoruseReduceTypeParameteruseNamedCaptureGroupuseUnicodeRegexuseImportsFirstuseVarsOnTopuseThisInClassMethodsnoInlineStylesuseDomQuerySelectornoTopLevelLiterals#12206
0f984fbThanks @dyc3! - Added theignoreUsingDeclarationsoption tonoUnusedVariables. When enabled, the rule no longer reports unused variables declared withusingorawait using, because these declarations clean up their value automatically even when the code never reads it.{ "linter": { "rules": { "correctness": { "noUnusedVariables": { "options": { "ignoreUsingDeclarations": true } } } } } }#12424
6a41490Thanks @siketyan! - Removed thejavascript.parser.gritMetavariablesoption. It was intended for internal use only and had no effect on how Biome parses JavaScript and TypeScript files. Biome now reports it as an unknown key and exits with a configuration error, so remove it from your configuration file.#12055
54870c0Thanks @ff1451! - Added the new assist actionuseGraphqlSortedVariables, which sorts the variable definitions of GraphQL operations.Invalid:
#12149
83df808Thanks @dyc3! - Added thetailwind.stylesheetoption, which points Biome at the CSS file that holds your Tailwind CSS configuration.useTailwindSortedClassesreads the@theme,@utility, and@custom-variantrules in that file and in the local files it imports, so your own theme values, utilities, and variants sort correctly.#12206
0f984fbThanks @dyc3! - Added migration of theignoreRestSiblingsandignoreUsingDeclarationsoptions ofno-unused-vars,@typescript-eslint/no-unused-vars, andunused-imports/no-unused-varstonoUnusedVariablesinbiome migrate eslint. Options that the ESLint configuration omits are set to ESLint's defaults, so the migrated rule reports the same variables. For example,"no-unused-vars": "error"now migratesignoreRestSiblingsasfalse.#11709
32d12cbThanks @ematipico! - Added the new commandbiome inspect file, which returns developer information for the given file.By default, the command returns the CST of the file. The command accepts the following arguments:
--ast, which returns the AST of a file.--ir, which returns the formatting IR of a file.--semantic, which returns the semantic model information of a file, if available.#12221
cb571afThanks @dyc3! - The rulenoEmptySourcenow supports Markdown files. It reports files that contain only blank lines and HTML comments. For example, the following file is now reported:<!-- TODO -->#12214
8955b56Thanks @dyc3! - The rulenoEmptySourcenow supports YAML files. It reports files with no documents and each document that has no content. For example, the second document in the following code is now reported:#12033
8669e53Thanks @dyc3! - Added theignoreElementsoption tonoRedundantRoles. Elements listed in this option are not checked by the rule.{ "linter": { "rules": { "a11y": { "noRedundantRoles": { "options": { "ignoreElements": ["button"] } } } } } }#12084
04e3750Thanks @dyc3! - The rulenoRestrictedElementsnow supports HTML, Vue, Svelte, and Astro files. For example, with{ "elements": { "marquee": "Use CSS animations instead." } }, the following code is now reported:#11408
5a870f2Thanks @ematipico! - Added support for distributing named Grit rules, rule presets, and configurations through packages that have a manifest file.The field
pluginsis used to export named Grit plugins, andconfigsis used to export named configurations.Package entries must select a named export:
package/rule,package/presets/preset, orpackage/configs/config. Bare package entries aren't supported.Rules consumed from another package are exposed under the consuming package's name, while package authors continue to reference them by their source package inside the manifest.
Configurations consumed from another package are also exposed under the consuming package's name.
The package must publish the manifest and every referenced file, for example, through the
filesfield inpackage.json.Plugin authors can expose their manifest through the
biomecondition with./biome-manifest.jsonas its value.And then, you can load the rules in your
biome.json:For more information on how to create a plugin to distribute via npm, check the relative guide.
#12264
90f2eafThanks @dyc3! - Fixed #11082: glob patterns in theincludesoption of a plugin are now matched against file paths relative to the directory of the configuration file, the same asfiles.includesandoverrides[].includes.Previously, the patterns were matched against the absolute file path, so a pattern such as
packages/**/src/**matched no files and the plugin never ran.{ "plugins": [ { "path": "./my-plugin.grit", "includes": ["packages/**/src/**"] } ] }Patterns that start with
**/keep working. Patterns that contain the absolute path of the project no longer match, and must be rewritten as relative patterns.#11133
1df00deThanks @dlecan! - Added Android (Termux) support to the npm distribution (#1340).npm install @biomejs/biomenow works on Termux through the new@biomejs/cli-android-arm64and@biomejs/cli-android-x64packages, which reuse the static musl binaries.#12132
c5fadc4Thanks @ematipico! - Added SCSS support throughout the toolchain. Biome can now format and lint.scssfiles, and recognizes.module.scssfiles as CSS Modules.#10837
754432cThanks @JamBalaya56562! - Added support for Google Apps Script (.gs) files.They are parsed as JavaScript scripts, so ES module
import/exportstatements are reported as errors (Apps Script has no module system). Common Apps Script service globals (e.g.SpreadsheetApp,DriveApp,Logger) are recognized bynoUndeclaredVariablesandnoGlobalAssign, and the list can be extended through thejavascript.globalsoption.#11126
fa63050Thanks @Punisheroot! - Biome now recognizes files with the.htmextension as HTML.#12291
6c6619eThanks @dyc3! - Changed the dependency that enables thetailwinddomain automatically. The domain is now enabled whenpackage.jsondeclarestailwindcssv4 or later, instead of v3 or later, because we are currently targeting Tailwind v4 support. The domain can always be enabled manually.#11394
de1ad4cThanks @ematipico! - #### Markdown is now supportedAdded support for linting and formatting Markdown files. The first version of Biome Markdown parser has 100% compatibility
against CommonMark.
Other variants of Markdown, such as GitHub Flavored Markdown (GFM) aren't currently supported; however, we plan to support them soon.
Formatter and Linter are automatically enabled by default.
Markdown parser
The parser comes with an opt-in option to enable frontmatter parsing. When enabled, the first thematic break
---is considered the opening fence of the frontmatter:The parser also comes with an opt-in option called
cjkFriendlyEmphasis. When enabled, the parser follows the CommonMark CJK-friendly amendments and recognizes emphasis markers, such as**, placed directly next to Chinese, Japanese, or Korean text. Enable it only when the tool that renders your Markdown supports the same amendments, because the option changes which text Biome formats and lints as emphasis:With the option enabled, the following text is parsed as bold, instead of as literal
**:Markdown formatter
The formatter has great compatibility with Prettier formatting, more than 90% detected by our infrastructure. The formatter ships with
a new option called
proseWrap, that allows controlling how the Biome formatter should wrap paragraphs.For example, when
proseWrapis set toalways, the formatter will wrap the paragraph to match the configuredlineWidth:Markdown linter
The linter ships with a few rules inspired by markdownlint. We plan to ship more rules in the upcoming releases.
Some rules you can start using already:
useTopLevelHeadinguseConsistentHeadingLevelMarkdown snippets
Biome recognizes the code inside fenced code blocks, frontmatter, and HTML blocks as embedded languages, and formats it with
the formatter of its language and your configuration:
HTML blocks are formatted only when the HTML formatter is enabled. A block with a syntax error stays as written, and Biome
still formats the rest of the file.
The option
markdown.formatter.formatEmbedscontrols this behavior, and it's enabled by default. Set it tofalseto keepthe code of these blocks as written:
The command
biome migrate prettiermigrates the Prettier optionembeddedLanguageFormattingto
markdown.formatter.formatEmbeds.The option
markdown.analyzeEmbedsruns the linter and assist actions on the same blocks, with the rules and actions oftheir language, and reports their syntax errors. It's disabled by default, because fenced code blocks usually contain
examples or partial code:
#11634
04c3f5dThanks @ematipico! - Addedbiome inspect pluginsto list resolved rules by plugin and importing preset without loading or executing plugin code. Include globs show which files each import targets, and--pathselects a target file. Fixed Markdown linter overrides and their configuration inspection.#12282
a3fa0d6Thanks @ff1451! - Added the new assist actionuseGraphqlSortedArguments, which sorts the arguments of GraphQL fields and directives, and the arguments declared by field and directive definitions.Invalid:
#10631
1077238Thanks @thibaut-pro! - Added thesortFirstoption to the useSortedAttributes action (JSX and HTML). It takes a list of attribute names that are sorted before all other attributes, in the order given, while the remaining attributes keep their usual sort. This is useful to keep attributes such askeyfirst.With the following configuration:
{ "assist": { "actions": { "source": { "useSortedAttributes": { "level": "on", "options": { "sortFirst": ["key"] } } } } } }The attributes are reordered so that
keycomes first:#10424
189b7baThanks @LinusU! - Added thepartitionByNewLineoption to theuseSortedInterfaceMembersassist. When enabled, members separated by a blank line are kept in their own section and sorted only within that section, preserving the logical groupings the author intentionally introduced with empty lines.Patch Changes
#11953
354f74cThanks @Th3S4mur41! - Enhanced the nursery ruleuseLogicalPropertiesto check physical CSS values in addition to physical property names.The rule recognizes physical values in
frame-sizing,anchor-size(), andanchor(), with direction-aware replacements controlled by the existingdirectionoption.For
justify-content: leftandjustify-content: right, the rule reports a diagnostic without an automatic replacement because the correct logical alignment depends on the layout axis.This is a second part of the rule covering parts of #9034
#12175
3730b32Thanks @dyc3! - Added the nursery rulenoDoubleComparison, which reports two comparisons of the same values that can be combined into one. For example,x === y || x < ycan be written asx <= y.#12166
25eb10cThanks @dyc3! - Added the new nursery rulenoNestedSwitch, which disallowsswitchstatements inside otherswitchstatements.#12170
872ac9fThanks @dyc3! - Added the new nursery rulenoNestedTemplateLiterals, which disallows template literals written inside other template literals.#12111
f72375fThanks @dyc3! - Added the nursery rulenoObjectConstructor, which disallows calling theObjectconstructor without arguments, such asnew Object()orObject(). Biome can replace these calls with the object literal{}.#12254
cb88f07Thanks @dyc3! - Added the nursery rulenoSvelteClassDirective, which reports Svelte'sclass:directive. Since Svelte 5.16, theclassattribute accepts objects and arrays, and Svelte recommends them over the directive.#12186
30aa7d2Thanks @dyc3! - Added the new nursery rulenoUselessDateGetTime, which reports dates converted with.getTime()before being passed to theDateconstructor. Passing the date directly, as innew Date(date), already creates a copy.#12229
5f8ea6cThanks @dyc3! - Added the nursery rulenoVueLifecycleAfterAwait, which reports Vue lifecycle hooks, such asonMounted(), that are registered after anawaitin a component'ssetup()function. Vue doesn't run these hooks.#12077
3dd096fThanks @dyc3! - Added the nursery rulenoVueRootVIf, which disallowsv-ifon the only root element of a Vue component template.#12136
b92638bThanks @dyc3! - Added the nursery rulenoVueShadowNativeEvents, which reports Vue component events named after built-in browser events, such asclickorkeydown.#12135
31a29b6Thanks @dyc3! - Added the nursery rulenoVueVHtml, which disallows Vue'sv-htmldirective.v-htmlinserts its value into the page as HTML, so text from users can run code on your page (cross-site scripting, or XSS).#12134
60329afThanks @dyc3! - Added the new nursery rulenoVueVText, which disallows Vue'sv-textdirective in favor of text interpolation.For example, the following snippet triggers the rule:
#9817
241b861Thanks @dyc3! - Added the new nursery rulenoZeroFractions, which disallows numeric literals with redundant zero fractions or dangling dots such as1.0and1.. Biome can now simplify these literals to shorter equivalents.#12109
b45d426Thanks @dyc3! - Added the nursery ruleuseConsistentJsonFileRead, which enforces a consistent way of reading JSON files before passing them toJSON.parse(). By default, it reports files read as aBuffer; setreadAsto"buffer"to report files read as a UTF-8 string instead.#12129
b57f874Thanks @dyc3! - Added the new nursery ruleuseMatchingFunctionName, which requires a named function expression to have the same name as the variable or property it's assigned to.#12169
0f1ae53Thanks @dyc3! - Added the new nursery ruleuseSimplifiedBooleanReturn, which reportsifstatements that only returntrueorfalseand can be replaced by returning the condition directly.#11957
b2db9f2Thanks @dyc3! - Added the nursery ruleuseSvelteKitResolve, which requires internal links and calls togoto(),pushState(), andreplaceState()to use paths built with SvelteKit'sresolve().#12235
b7c1870Thanks @dyc3! - Added the nursery ruleuseSvelteReactiveClasses, which reportsDate,Map,Set,URL, andURLSearchParamsobjects that are modified in Svelte files or exported from Svelte modules. Svelte doesn't detect changes made inside these built-in objects, so the rule suggests the matching classes fromsvelte/reactivity.[#
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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.