Skip to content

Move to Alien-Signals Based Store#2035

Merged
crutchcorn merged 9 commits intomainfrom
new-store-alien-signals
Mar 4, 2026
Merged

Move to Alien-Signals Based Store#2035
crutchcorn merged 9 commits intomainfrom
new-store-alien-signals

Conversation

@crutchcorn
Copy link
Member

@crutchcorn crutchcorn commented Feb 13, 2026

This PR introduces the new changes made by TanStack Store to rebase our internals on top of a faster more stable store package. It should bring massive performance improvements and enable further improvements

@changeset-bot
Copy link

changeset-bot bot commented Feb 13, 2026

🦋 Changeset detected

Latest commit: 62b0f27

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@tanstack/angular-form Patch
@tanstack/svelte-form Patch
@tanstack/react-form Patch
@tanstack/solid-form Patch
@tanstack/form-core Patch
@tanstack/lit-form Patch
@tanstack/vue-form Patch
@tanstack/react-form-nextjs Patch
@tanstack/react-form-remix Patch
@tanstack/react-form-start Patch
@tanstack/form-devtools Patch
@tanstack/react-form-devtools Patch
@tanstack/solid-form-devtools Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@nx-cloud
Copy link

nx-cloud bot commented Feb 13, 2026

View your CI Pipeline Execution ↗ for commit 62b0f27

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 32s View ↗
nx run-many --target=build --exclude=examples/** ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-03-04 12:59:48 UTC

crutchcorn and others added 4 commits February 12, 2026 20:04
# Conflicts:
#	packages/form-core/src/FormApi.ts
# Conflicts:
#	packages/form-core/package.json
#	packages/react-form/package.json
#	pnpm-lock.yaml
@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 17, 2026

More templates

@tanstack/angular-form

npm i https://pkg.pr.new/@tanstack/angular-form@2035

@tanstack/form-core

npm i https://pkg.pr.new/@tanstack/form-core@2035

@tanstack/form-devtools

npm i https://pkg.pr.new/@tanstack/form-devtools@2035

@tanstack/lit-form

npm i https://pkg.pr.new/@tanstack/lit-form@2035

@tanstack/react-form

npm i https://pkg.pr.new/@tanstack/react-form@2035

@tanstack/react-form-devtools

npm i https://pkg.pr.new/@tanstack/react-form-devtools@2035

@tanstack/react-form-nextjs

npm i https://pkg.pr.new/@tanstack/react-form-nextjs@2035

@tanstack/react-form-remix

npm i https://pkg.pr.new/@tanstack/react-form-remix@2035

@tanstack/react-form-start

npm i https://pkg.pr.new/@tanstack/react-form-start@2035

@tanstack/solid-form

npm i https://pkg.pr.new/@tanstack/solid-form@2035

@tanstack/solid-form-devtools

npm i https://pkg.pr.new/@tanstack/solid-form-devtools@2035

@tanstack/svelte-form

npm i https://pkg.pr.new/@tanstack/svelte-form@2035

@tanstack/vue-form

npm i https://pkg.pr.new/@tanstack/vue-form@2035

commit: 7ac3ab0

@sentry
Copy link

sentry bot commented Feb 17, 2026

Codecov Report

❌ Patch coverage is 98.83721% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 90.00%. Comparing base (6892ed0) to head (62b0f27).
⚠️ Report is 143 commits behind head on main.

Files with missing lines Patch % Lines
packages/form-core/src/FormApi.ts 98.59% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2035      +/-   ##
==========================================
- Coverage   90.35%   90.00%   -0.35%     
==========================================
  Files          38       49      +11     
  Lines        1752     2001     +249     
  Branches      444      509      +65     
==========================================
+ Hits         1583     1801     +218     
- Misses        149      179      +30     
- Partials       20       21       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@crutchcorn crutchcorn changed the title [WIP] Test with new Store refactor Move to Alien-Signals Based Store Feb 17, 2026
@crutchcorn crutchcorn marked this pull request as ready for review February 17, 2026 12:01
Copy link
Contributor

@LeCarbonator LeCarbonator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I'd ideally like to try it locally, but that may take a day.

@crutchcorn crutchcorn merged commit f88faaf into main Mar 4, 2026
4 checks passed
@crutchcorn crutchcorn deleted the new-store-alien-signals branch March 4, 2026 13:00
@github-actions github-actions bot mentioned this pull request Mar 4, 2026
@Lukas-Kullmann
Copy link

Lukas-Kullmann commented Mar 5, 2026

For what it's worth, this was a breaking change since it changed the API for form.store.subscribe. 😕

Previously:

const unsubscribe = form.store.subscribe(({ currentVal, prevVal }) => { ... });

Now:

// unsubscribe has to be destructured, `prevVal` is missing entirely and `currentVal` does not need to be destructured any more
const { unsubscribe } = form.store.subscribe(currentVal => { ... });

MrNaif2018 added a commit to bitcart/bitcart-frontend that referenced this pull request Mar 16, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@effect/language-service](https://github.com/Effect-TS/language-service) | [`0.77.0` → `0.79.0`](https://renovatebot.com/diffs/npm/@effect%2flanguage-service/0.77.0/0.79.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2flanguage-service/0.79.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2flanguage-service/0.77.0/0.79.0?slim=true) |
| [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic) ([source](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin)) | [`5.9.0` → `5.10.0`](https://renovatebot.com/diffs/npm/@stylistic%2feslint-plugin/5.9.0/5.10.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@stylistic%2feslint-plugin/5.10.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@stylistic%2feslint-plugin/5.9.0/5.10.0?slim=true) |
| [@tanstack/react-form](https://tanstack.com/form) ([source](https://github.com/TanStack/form/tree/HEAD/packages/react-form)) | [`1.28.3` → `1.28.4`](https://renovatebot.com/diffs/npm/@tanstack%2freact-form/1.28.3/1.28.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@tanstack%2freact-form/1.28.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tanstack%2freact-form/1.28.3/1.28.4?slim=true) |
| [@unocss/cli](https://unocss.dev) ([source](https://github.com/unocss/unocss/tree/HEAD/packages-engine/cli)) | [`66.6.2` → `66.6.6`](https://renovatebot.com/diffs/npm/@unocss%2fcli/66.6.2/66.6.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@unocss%2fcli/66.6.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@unocss%2fcli/66.6.2/66.6.6?slim=true) |
| [@unocss/preset-web-fonts](https://unocss.dev) ([source](https://github.com/unocss/unocss/tree/HEAD/packages-presets/preset-web-fonts)) | [`66.6.2` → `66.6.6`](https://renovatebot.com/diffs/npm/@unocss%2fpreset-web-fonts/66.6.2/66.6.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@unocss%2fpreset-web-fonts/66.6.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@unocss%2fpreset-web-fonts/66.6.2/66.6.6?slim=true) |
| [@unocss/preset-wind4](https://unocss.dev) ([source](https://github.com/unocss/unocss/tree/HEAD/packages-presets/preset-wind4)) | [`66.6.2` → `66.6.6`](https://renovatebot.com/diffs/npm/@unocss%2fpreset-wind4/66.6.2/66.6.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@unocss%2fpreset-wind4/66.6.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@unocss%2fpreset-wind4/66.6.2/66.6.6?slim=true) |
| [eslint-plugin-better-tailwindcss](https://github.com/schoero/eslint-plugin-better-tailwindcss) | [`4.3.1` → `4.3.2`](https://renovatebot.com/diffs/npm/eslint-plugin-better-tailwindcss/4.3.1/4.3.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-better-tailwindcss/4.3.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-better-tailwindcss/4.3.1/4.3.2?slim=true) |
| [lucide-react](https://lucide.dev) ([source](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`0.575.0` → `0.577.0`](https://renovatebot.com/diffs/npm/lucide-react/0.575.0/0.577.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.577.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.575.0/0.577.0?slim=true) |
| [nx](https://nx.dev) ([source](https://github.com/nrwl/nx/tree/HEAD/packages/nx)) | [`22.5.3` → `22.5.4`](https://renovatebot.com/diffs/npm/nx/22.5.3/22.5.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/nx/22.5.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nx/22.5.3/22.5.4?slim=true) |
| [pnpm](https://pnpm.io) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017` → `10.31.0`](https://renovatebot.com/diffs/npm/pnpm/10.30.3/10.31.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.31.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.30.3/10.31.0?slim=true) |
| [unocss](https://unocss.dev) ([source](https://github.com/unocss/unocss/tree/HEAD/packages-presets/unocss)) | [`66.6.2` → `66.6.6`](https://renovatebot.com/diffs/npm/unocss/66.6.2/66.6.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/unocss/66.6.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/unocss/66.6.2/66.6.6?slim=true) |
| [vike-react](https://github.com/vikejs/vike-react) | [`0.6.20` → `0.6.21`](https://renovatebot.com/diffs/npm/vike-react/0.6.20/0.6.21) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vike-react/0.6.21?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vike-react/0.6.20/0.6.21?slim=true) |

---

### Release Notes

<details>
<summary>Effect-TS/language-service (@&#8203;effect/language-service)</summary>

### [`v0.79.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.79.0)

[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.78.0...@effect/language-service@0.79.0)

##### Minor Changes

- [#&#8203;671](Effect-TS/language-service#671) [`6b9c378`](Effect-TS/language-service@6b9c378) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add the `extendsNativeError` diagnostic to warn when classes directly extend the native `Error` constructor, including common local aliases such as `const E = Error`.

  This helps steer users toward tagged errors that preserve stronger typing in the Effect failure channel.

- [#&#8203;678](Effect-TS/language-service#678) [`0e9c11b`](Effect-TS/language-service@0e9c11b) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Generate the README diagnostics table from the diagnostic registry.

  Each diagnostic now declares:

  - whether it is fixable
  - which Effect versions it supports

  The generated table is checked in CI, and diagnostics tests verify that `fixable` matches the presence of non-suppression quick fixes.

- [#&#8203;676](Effect-TS/language-service#676) [`2f982d6`](Effect-TS/language-service@2f982d6) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add the `nodeBuiltinImport` diagnostic to warn when importing Node.js built-in modules (`fs`, `path`, `child_process`) that have Effect-native counterparts in `@effect/platform`.

  This diagnostic covers ES module imports and top-level `require()` calls, matching both bare and `node:`-prefixed specifiers as well as subpath variants like `fs/promises`, `path/posix`, and `path/win32`. It defaults to severity `off` and provides no code fixes.

- [#&#8203;673](Effect-TS/language-service#673) [`f9e24df`](Effect-TS/language-service@f9e24df) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add plugin options to better control patched `tsc` behavior.

  `ignoreEffectErrorsInTscExitCode` allows Effect diagnostics reported as errors to be ignored for exit-code purposes, and `skipDisabledOptimiziation` keeps disabled diagnostics eligible for comment-based overrides when patch mode is active.

- [#&#8203;674](Effect-TS/language-service#674) [`54e8c16`](Effect-TS/language-service@54e8c16) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add the `serviceNotAsClass` diagnostic to warn when `ServiceMap.Service` is used as a variable assignment instead of in a class declaration.

  Includes an auto-fix that converts `const Config = ServiceMap.Service<Shape>("Config")` to `class Config extends ServiceMap.Service<Config, Shape>()("Config") {}`.

##### Patch Changes

- [#&#8203;675](Effect-TS/language-service#675) [`d1f09c3`](Effect-TS/language-service@d1f09c3) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Rename the `skipDisabledOptimiziation` plugin option to `skipDisabledOptimization`.

  Example:

  ```json
  {
    "compilerOptions": {
      "plugins": [
        {
          "name": "@&#8203;effect/language-service",
          "skipDisabledOptimization": true
        }
      ]
    }
  }
  ```

### [`v0.78.0`](https://github.com/Effect-TS/language-service/releases/tag/%40effect/language-service%400.78.0)

[Compare Source](https://github.com/Effect-TS/language-service/compare/@effect/language-service@0.77.0...@effect/language-service@0.78.0)

##### Minor Changes

- [#&#8203;663](Effect-TS/language-service#663) [`0e82d43`](Effect-TS/language-service@0e82d43) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Improve `effectFnOpportunity` inferred span naming for service-layer methods and align examples for Effect v4.

  The inferred span can now include service + method names (for example `MyService.log`) when the convertible function is a method inside a layer service object for strict supported patterns like:

  - `Layer.succeed(Service)(...)`
  - `Layer.sync(Service)(...)`
  - `Layer.effect(Service)(Effect.gen(...))`
  - `Layer.effect(Service, Effect.gen(...))`

  Also add Effect v4 diagnostics fixtures for:

  - `effectFnOpportunity_inferred.ts`
  - `effectFnOpportunity_inferredLayer.ts`

- [#&#8203;669](Effect-TS/language-service#669) [`a010a29`](Effect-TS/language-service@a010a29) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add a new `effectInFailure` diagnostic that warns when an `Effect` computation appears in the failure channel (`E`) of another `Effect`.

  The rule traverses Effect-typed expressions, unrolls union members of `E`, and reports when any member is itself a strict Effect type.

  It prefers innermost matches for nested cases (for example nested `Effect.try` in `catch`) to avoid noisy parent reports.

##### Patch Changes

- [#&#8203;666](Effect-TS/language-service#666) [`06b3a6c`](Effect-TS/language-service@06b3a6c) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix `effectFnOpportunity` inferred span naming for `Layer.*(this, ...)` patterns in class static members.

  When the inferred layer target is `this`, the diagnostic now uses the nearest enclosing class name (for example `MyService`) instead of the literal `this` token.

- [#&#8203;665](Effect-TS/language-service#665) [`a95a679`](Effect-TS/language-service@a95a679) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Improve yield-based diagnostics and hover behavior by introducing `effectYieldableType` in `TypeParser` and using it in `missingReturnYieldStar`.

  - In Effect v4, yieldable values are recognized through `asEffect()` and mapped to Effect `A/E/R`.
  - In Effect v3, `effectYieldableType` falls back to standard `effectType` behavior.
  - `missingReturnYieldStar` now correctly handles yieldable values such as `Option.none()`.
  - Hover support for `yield*` was updated to use yieldable parsing paths.

- [#&#8203;664](Effect-TS/language-service#664) [`934ef7e`](Effect-TS/language-service@934ef7e) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Improve `missingReturnYieldStar` safety by targeting only expression statements with top-level `yield*` expressions and validating the enclosing `Effect.gen` scope via `findEnclosingScopes`.

  This avoids edge cases where nested or wrapped `yield*` expressions could be matched incorrectly.

- [#&#8203;661](Effect-TS/language-service#661) [`0f92686`](Effect-TS/language-service@0f92686) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Update effect dependency to v4.0.0-beta.19 and fix compatibility issues:

  - Fix `layerMagic` refactor producing `any` types in Layer channels by replacing `Array.partition` (which now uses the v4 `Filter.Filter` API) with a native loop for boolean partition logic
  - Add v4 Layer type detection shortcut using `"~effect/Layer"` TypeId property, matching the pattern already used for Effect type detection
  - Mark `Effect.filterMap` as unchanged in the outdated API migration database since it was re-added in v4

</details>

<details>
<summary>eslint-stylistic/eslint-stylistic (@&#8203;stylistic/eslint-plugin)</summary>

### [`v5.10.0`](https://github.com/eslint-stylistic/eslint-stylistic/releases/tag/v5.10.0)

[Compare Source](eslint-stylistic/eslint-stylistic@v5.9.0...v5.10.0)

##### Features

- **list-style:** allow 'off' in overrides ([#&#8203;1144](eslint-stylistic/eslint-stylistic#1144)) ([c43bd4b](eslint-stylistic/eslint-stylistic@c43bd4b))
- **padding-line-between-statements:** introduce `lineMode` for selector matcher ([#&#8203;1143](eslint-stylistic/eslint-stylistic#1143)) ([1ebd6d8](eslint-stylistic/eslint-stylistic@1ebd6d8))

##### Build Related

- **deps:** bump actions/download-artifact from 7 to 8 ([#&#8203;1153](eslint-stylistic/eslint-stylistic#1153)) ([78ca032](eslint-stylistic/eslint-stylistic@78ca032))
- **deps:** bump actions/upload-artifact from 6 to 7 ([#&#8203;1154](eslint-stylistic/eslint-stylistic#1154)) ([01f7b17](eslint-stylistic/eslint-stylistic@01f7b17))

##### Performance

- no export all for [@&#8203;typescript-eslint/utils](https://github.com/typescript-eslint/utils) ([#&#8203;1150](eslint-stylistic/eslint-stylistic#1150)) ([258f9d8](eslint-stylistic/eslint-stylistic@258f9d8))

</details>

<details>
<summary>TanStack/form (@&#8203;tanstack/react-form)</summary>

### [`v1.28.4`](https://github.com/TanStack/form/blob/HEAD/packages/react-form/CHANGELOG.md#1284)

[Compare Source](https://github.com/TanStack/form/compare/@tanstack/react-form@1.28.3...@tanstack/react-form@1.28.4)

##### Patch Changes

- Refactor internals for substancially faster performance ([#&#8203;2035](TanStack/form#2035))

- Updated dependencies \[[`f88faaf`](TanStack/form@f88faaf)]:
  - [@&#8203;tanstack/form-core](https://github.com/tanstack/form-core)@&#8203;1.28.4

</details>

<details>
<summary>unocss/unocss (@&#8203;unocss/cli)</summary>

### [`v66.6.6`](https://github.com/unocss/unocss/releases/tag/v66.6.6)

[Compare Source](unocss/unocss@v66.6.5...v66.6.6)

#####    🐞 Bug Fixes

- **svelte-scoped**: Generate in buildEnd() to make presetWind4 on-dem…  -  by [@&#8203;henrikvilhelmberglund](https://github.com/henrikvilhelmberglund) in [#&#8203;5133](unocss/unocss#5133) [<samp>(06d7c)</samp>](unocss/unocss@06d7c1a25)

#####     [View changes on GitHub](unocss/unocss@v66.6.5...v66.6.6)

### [`v66.6.5`](https://github.com/unocss/unocss/releases/tag/v66.6.5)

[Compare Source](unocss/unocss@v66.6.4...v66.6.5)

#####    🐞 Bug Fixes

- **config**: Enhance loadConfig to track user custom config presence  -  by [@&#8203;zyyv](https://github.com/zyyv) in [#&#8203;5132](unocss/unocss#5132) [<samp>(76f65)</samp>](unocss/unocss@76f650e4f)

#####     [View changes on GitHub](unocss/unocss@v66.6.4...v66.6.5)

### [`v66.6.4`](https://github.com/unocss/unocss/releases/tag/v66.6.4)

[Compare Source](unocss/unocss@v66.6.3...v66.6.4)

#####    🚀 Features

- **core**: Add `noScope` key determines whether to wrap the selector  -  by [@&#8203;zyyv](https://github.com/zyyv) and **Copilot** in [#&#8203;5130](unocss/unocss#5130) [<samp>(5b67c)</samp>](unocss/unocss@5b67c048a)

#####     [View changes on GitHub](unocss/unocss@v66.6.3...v66.6.4)

### [`v66.6.3`](https://github.com/unocss/unocss/releases/tag/v66.6.3)

[Compare Source](unocss/unocss@v66.6.2...v66.6.3)

#####    🚀 Features

- **core**: Support `*` parse in variant group  -  by [@&#8203;zyyv](https://github.com/zyyv) and **Copilot** in [#&#8203;5124](unocss/unocss#5124) [<samp>(037ba)</samp>](unocss/unocss@037ba011b)
- **language-server**: Add `@unocss/language-server`  -  by [@&#8203;Jungzl](https://github.com/Jungzl) in [#&#8203;5102](unocss/unocss#5102) [<samp>(90f75)</samp>](unocss/unocss@90f75ef72)
- **transformer-attributify-jsx**: Migrate from babel to oxc for JSX parsing  -  by [@&#8203;9romise](https://github.com/9romise) in [#&#8203;5068](unocss/unocss#5068) [<samp>(6fbf7)</samp>](unocss/unocss@6fbf7041e)
- **vscode**: Use `LogOutputChannel` to log info  -  by [@&#8203;Jungzl](https://github.com/Jungzl) in [#&#8203;5125](unocss/unocss#5125) [<samp>(4fe3a)</samp>](unocss/unocss@4fe3ae577)

#####    🐞 Bug Fixes

- **language-server**: Improve context reloading and error handling  -  by [@&#8203;Jungzl](https://github.com/Jungzl) in [#&#8203;5126](unocss/unocss#5126) [<samp>(3f4de)</samp>](unocss/unocss@3f4de7927)
- **preset-wind4**: Update negative variant for spacing value  -  by [@&#8203;zyyv](https://github.com/zyyv) in [#&#8203;5123](unocss/unocss#5123) [<samp>(fa851)</samp>](unocss/unocss@fa85154cd)

#####     [View changes on GitHub](unocss/unocss@v66.6.2...v66.6.3)

</details>

<details>
<summary>schoero/eslint-plugin-better-tailwindcss (eslint-plugin-better-tailwindcss)</summary>

### [`v4.3.2`](https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/HEAD/CHANGELOG.md#v432)

[Compare Source](schoero/eslint-plugin-better-tailwindcss@v4.3.1...v4.3.2)

[compare changes](schoero/eslint-plugin-better-tailwindcss@v4.3.1...v4.3.2)

##### Fixes

- **no-unnecessary-whitespace:** Preserve whitespaces in concatenated strings ([#&#8203;339](schoero/eslint-plugin-better-tailwindcss#339))
- **enforce-consistent-class-order:** Non localized alphabetical sorting order ([#&#8203;340](schoero/eslint-plugin-better-tailwindcss#340))

##### Refactors

- Lint concatenated strings ([#&#8203;338](schoero/eslint-plugin-better-tailwindcss#338))

</details>

<details>
<summary>lucide-icons/lucide (lucide-react)</summary>

### [`v0.577.0`](https://github.com/lucide-icons/lucide/releases/tag/0.577.0): Version 0.577.0

[Compare Source](lucide-icons/lucide@0.576.0...0.577.0)

#### What's Changed

- chore(deps): bump rollup from 4.53.3 to 4.59.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4106](lucide-icons/lucide#4106)
- fix(repo): correctly ignore docs/releaseMetadata via .gitignore by [@&#8203;bhavberi](https://github.com/bhavberi) in [#&#8203;4100](lucide-icons/lucide#4100)
- feat(icons): added `ellipse` icon by [@&#8203;KISHORE-KUMAR-S](https://github.com/KISHORE-KUMAR-S) in [#&#8203;3749](lucide-icons/lucide#3749)

#### New Contributors

- [@&#8203;bhavberi](https://github.com/bhavberi) made their first contribution in [#&#8203;4100](lucide-icons/lucide#4100)
- [@&#8203;KISHORE-KUMAR-S](https://github.com/KISHORE-KUMAR-S) made their first contribution in [#&#8203;3749](lucide-icons/lucide#3749)

**Full Changelog**: <lucide-icons/lucide@0.576.0...0.577.0>

### [`v0.576.0`](https://github.com/lucide-icons/lucide/releases/tag/0.576.0): Version 0.576.0

[Compare Source](lucide-icons/lucide@0.575.0...0.576.0)

#### What's Changed

- Added zodiac signs by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;712](lucide-icons/lucide#712)
- fix(icons): fixes guideline violations in `package-*` icons. by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4074](lucide-icons/lucide#4074)
- fix(icons): changed `receipt` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4075](lucide-icons/lucide#4075)
- fix(icons): updated `cuboid` icon tags and categories by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4095](lucide-icons/lucide#4095)
- fix(icons): changed `cuboid` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;4098](lucide-icons/lucide#4098)
- fix(lucide-font, lucide-static): Fixing stable code points by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3894](lucide-icons/lucide#3894)
- feat(icons): added `fishing-rod` icon by [@&#8203;7ender](https://github.com/7ender) in [#&#8203;3839](lucide-icons/lucide#3839)

**Full Changelog**: <lucide-icons/lucide@0.575.0...0.576.0>

</details>

<details>
<summary>nrwl/nx (nx)</summary>

### [`v22.5.4`](https://github.com/nrwl/nx/releases/tag/22.5.4)

[Compare Source](nrwl/nx@22.5.3...22.5.4)

#### 22.5.4 (2026-03-04)

##### 🚀 Features

- **core:** add .nx/polygraph to gitignore in migration and caia ([#&#8203;34659](nrwl/nx#34659))

##### 🩹 Fixes

- **angular-rspack:** use relative path for postcss-cli-resources output ([#&#8203;34681](nrwl/nx#34681), [#&#8203;34092](nrwl/nx#34092))
- **core:** support canonical SSH URLs when extracting GitHub user/repo slug during `nx release` ([#&#8203;31684](nrwl/nx#31684), [#&#8203;31682](nrwl/nx#31682))
- **core:** update sourceRespository description of nx import ([#&#8203;34606](nrwl/nx#34606))
- **core:** update minimatch to 10.2.4 ([#&#8203;34660](nrwl/nx#34660))
- **core:** skip writing deps cache if already up-to-date ([#&#8203;34582](nrwl/nx#34582))
- **core:** resolve false positive loop detection when running with Bun ([#&#8203;34640](nrwl/nx#34640), [#&#8203;0](https://github.com/nrwl/nx/issues/0), [#&#8203;1](nrwl/nx#1), [#&#8203;2](nrwl/nx#2), [#&#8203;3](nrwl/nx#3), [#&#8203;4](nrwl/nx#4), [#&#8203;5](nrwl/nx#5), [#&#8203;6](nrwl/nx#6), [#&#8203;33997](nrwl/nx#33997))
- **core:** fall back to invoking PM in detection ([#&#8203;34691](nrwl/nx#34691))
- **core:** restore CNW user flow to match v22.1.3 ([#&#8203;34671](nrwl/nx#34671))
- **gradle:** tee batch runner output to stderr for terminal display ([#&#8203;34630](nrwl/nx#34630))
- **maven:** synchronize batch runner invoke() to prevent concurrent access ([#&#8203;34600](nrwl/nx#34600))
- **misc:** boost CLI command reference search ranking ([#&#8203;34625](nrwl/nx#34625))
- **misc:** fix broken nx.dev redirects and remove legacy redirect-rules files ([#&#8203;34673](nrwl/nx#34673))
- **misc:** use pathToFileURL for cross-platform path handling in postcss-cli-resources ([#&#8203;34676](nrwl/nx#34676), [#&#8203;33052](nrwl/nx#33052))
- **misc:** exclude .netlify paths from Framer proxy edge function ([1ce5e91f5e](nrwl/nx@1ce5e91f5e))
- **repo:** reset package.json files after local release ([#&#8203;34648](nrwl/nx#34648))
- **repo:** remove redundant inputs override for build-base target ([#&#8203;34649](nrwl/nx#34649))
- **vitest:** respect reporters from target options in vitest executor ([#&#8203;34663](nrwl/nx#34663), [#&#8203;34495](nrwl/nx#34495))

##### ❤️ Thank You

- AgentEnder [@&#8203;AgentEnder](https://github.com/AgentEnder)
- Caleb Ukle
- Claude Opus 4.6
- Copilot [@&#8203;Copilot](https://github.com/Copilot)
- Craigory Coppola [@&#8203;AgentEnder](https://github.com/AgentEnder)
- FrozenPandaz [@&#8203;FrozenPandaz](https://github.com/FrozenPandaz)
- Jack Hsu [@&#8203;jaysoo](https://github.com/jaysoo)
- James Henry [@&#8203;JamesHenry](https://github.com/JamesHenry)
- Jason Jean [@&#8203;FrozenPandaz](https://github.com/FrozenPandaz)
- Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://github.com/leosvelperez)
- MaxKless [@&#8203;MaxKless](https://github.com/MaxKless)
- Nelson Dominguez [@&#8203;ekkolon](https://github.com/ekkolon)

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

### [`v10.31.0`](https://github.com/pnpm/pnpm/releases/tag/v10.31.0): pnpm 10.31

[Compare Source](pnpm/pnpm@v10.30.3...v10.31.0)

#### Minor Changes

- When pnpm updates the `pnpm-workspace.yaml`, comments, string formatting, and whitespace will be preserved.

#### Patch Changes

- Added `-F` as a short alias for the `--filter` option in the help output.

- Handle undefined pkgSnapshot in `pnpm why -r` [#&#8203;10700](pnpm/pnpm#10700).

- Fix headless install not being used when a project has an injected self-referencing `file:` dependency that resolves to `link:` in the lockfile.

- Fixed a race condition when multiple worker threads import the same package to the global virtual store concurrently. The rename operation now tolerates `ENOTEMPTY`/`EEXIST` errors if another thread already completed the import.

- When `lockfile-include-tarball-url` is set to `false`, tarball URLs are now always excluded from the lockfile. Previously, tarball URLs could still appear for packages hosted under non-standard URLs, making the behavior flaky and inconsistent [#&#8203;6667](pnpm/pnpm#6667).

- Fixed `optimisticRepeatInstall` skipping install when `overrides`, `packageExtensions`, `ignoredOptionalDependencies`, `patchedDependencies`, or `peersSuffixMaxLength` changed.

- Fixed `pnpm patch-commit` failing with "unable to access '/.config/git/attributes': Permission denied" error in environments where HOME is unset or non-standard (Docker containers, CI systems).

  The issue occurred because pnpm was setting `HOME` and the Windows user profile env var to empty strings to suppress user git configuration when running `git diff`. This caused git to resolve the home directory (`~`) as root (`/`), leading to permission errors when attempting to access `/.config/git/attributes`.

  Now uses `GIT_CONFIG_GLOBAL: os.devNull` instead, which is git's proper mechanism for bypassing user-level configuration without corrupting the home directory path resolution.

  Fixes [#&#8203;6537](pnpm/pnpm#6537)

- Fix `pnpm why -r --parseable` missing dependents when multiple workspace packages share the same dependency [#&#8203;8100](pnpm/pnpm#8100).

- Fix `link-workspace-packages=true` incorrectly linking workspace packages when the requested version doesn't match the workspace package's version. Previously, on fresh installs the version constraint is overridden to `*` in the fallback resolution paths, causing any workspace package with a matching name to be linked regardless of version [#&#8203;10173](pnpm/pnpm#10173).

- Fixed `pnpm update --interactive` table breaking with long version strings (e.g., prerelease versions like `7.0.0-dev.20251209.1`) by dynamically calculating column widths instead of using hardcoded values [#&#8203;10316](pnpm/pnpm#10316).

- Explicitly tell `npm` the path to the global `rc` config file.

- The parameter set by the `--allow-build` flag is written to `allowBuilds`.

- Fix a bug in which specifying `filter` on `pnpm-workspace.yaml` would cause pnpm to not detect any projects.

- Print help message on running pnpm dlx without arguments and exit.

<!-- sponsors -->

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
        <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
        <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
            <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
            <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
            <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
            <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
            <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
            <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
            <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

<!-- sponsors end -->

</details>

<details>
<summary>vikejs/vike-react (vike-react)</summary>

### [`v0.6.21`](https://github.com/vikejs/vike-react/compare/vike-react@0.6.20...vike-react@0.6.21)

[Compare Source](https://github.com/vikejs/vike-react/compare/vike-react@0.6.20...vike-react@0.6.21)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) in timezone UTC, 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 these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuNjQuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->

Co-authored-by: MrNaif2018 <chuff184@gmail.com>
Reviewed-on: https://git.bitcart.ai/bitcart/bitcart-frontend/pulls/151
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants