unstale

npm / @preact/signals-core

@preact/signals-core

What changed in @preact/signals-core 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-27.

1 breaking2 new APIs and options1 performance7 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.8 on npm

@preact/signals-core 111 changes

Breaking changes 1

  • Effects created inside untracked() or action() callbacks within a createModel() factory are no longer disposed with the model; use the returned disposer to clean them up manually.

    1.14.4release notes

New APIs and options 2

  • Wraps a function to run batched and untracked, so updates are batched into a single notification.

    1.13.0release notes

  • Creates reactive model classes that encapsulate signals, computed values, and actions; methods are batched and untracked, and captured effects are disposed via Symbol.dispose.

    1.13.0release notes

Performance 1

  • Optimizes bundle size, reducing the size of applications that include the package.

    1.14.3release notes

Fixes and other changes 7

  • The batch ends when a self-disposing effect's cleanup throws.

    1.14.5release notes

  • Captured effects are disposed when a createModel factory throws, preventing them from being left undisposed.

    1.14.5release notes

  • Class prototype methods, including toString and toJSON, are wrapped as actions; those actions are not auto-bound.

    1.14.5release notes

  • Computed values no longer stay stale after a batch reverts a signal to its original value; subscriber versions are fast-forwarded instead of reused.

    1.14.4release notes

  • Nested object methods returned from createModel are wrapped so composed models keep action batching semantics without manual action wrappers.

    1.14.1release notes

  • Model and effect() types no longer hard-require ESNext.Disposable in consumer tsconfigs.

    1.14.1release notes

  • When a signal changes from A to B to A in a batch, dependent updates are not triggered if the batched dependencies end at an equal value.

    1.14.0release notes