Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 22:42
· 19 commits to main since this release

🚀 Release @addon-core/storage v0.8.0 (2026-09-23)

💥 Breaking Changes

  • useStorage now accepts an options object and returns named
    state and operations instead of a tuple. React 16/17 and TypeScript below 5.4
    are no longer supported.

⚡️ Performance Improvements

  • observer: avoid rereading storage after successful mutations (1e76a12)

    Use subscription events after successful writes and retain recovery reads for
    failed operations. Reconnect failed subscriptions before mutations and recover
    all retained keys without overwriting newer events or masking mutation errors.

    Cover delayed delivery, no-op writes, shared snapshots, and recovery failures;
    document when mutation promises can settle before the snapshot is updated.

✨ Features

  • providers: add subscription errors and batch patch types (f922b10)

    Report terminal decoding and formatting failures through per-subscription
    onError callbacks while preserving application callback error behavior.
    Forward failures through MonoStorage and test subscription disposal and errors.

    Add StorageBatchPatch so explicit undefined remains a supported deletion
    operation with exactOptionalPropertyTypes.

  • react: support observable single and batch storage state (4d2175e)

    Replace the positional tuple hook with mutually exclusive key/keys options and
    an object result exposing readiness, existence, mutation state and async actions.

    Share reads and subscriptions through a framework-independent StorageObserver
    with a static instance registry, stable snapshots and recovery from failures.
    Export StorageStatus and document defaults, update semantics and error handling.

    Require React 18/19 and TypeScript 5.4+, update the browser dependency, and test
    published declarations across minimum/current TypeScript and React 18/19 in CI.

🐛 Bug Fixed

  • deps: restore missing changelog parser in lockfile (bbd8843)

  • providers: preserve storage read errors (cc1b460)

🧪 Tests

  • migrate storage suites to browser testkit (cb8e072)

    Replace jest-webextension-mock with the browser 0.9 testkit and real WebCrypto.
    Organize runtime coverage into unit, provider integration, and React projects.
    Separate shared fixtures, type assertions, consumer checks, and tooling tests;
    configure source/test aliases and verify Chrome and Firefox provider profiles.

🧹 Chores

  • remove mailmap (22fc69f)

  • tooling: replace Biome with ESLint and standardize formatting (f5cf340)

🛠️ Refactoring

  • use source aliases for internal imports (66b881d)

    Replace parent-directory imports with ~/ paths across providers, helpers,
    locking, the observer, and the React adapter. Keep neighboring imports relative.

🙌 Contributors