React Changelog Feed

Release notes that a consumer can actually act on: filter to just the breaking changes, see security fixes called out, and find out immediately when a release has been withdrawn.

Kelvin SDK changelog

RSS

3.4.1

Patch release. Fixes a manifest signing regression introduced in 3.4.0.

  • FixedOTA manifest build no longer fails when a signing key is rotated mid-batch#1841
  • FixedAttestation cache correctly invalidates on firmware downgrade#1836
  • SecurityUpdated bundled OpenSSL to 3.2.2 (CVE-2026-1841)GHSA-x4vq

3.4.0

Adds Rust bindings and the ML-KEM hardware path.

  • AddedFirst-class Rust SDK with async support#1780
  • AddedHardware ML-KEM encapsulation on KLV-7000#1795
  • Changedklv_open() now returns an error rather than aborting on a missing device nodeBreaking#1802
  • Deprecatedklv_legacy_sign() — use klv_sign() with an explicit algorithm parameter#1799

3.3.2

Yanked — do not use

Withdrawn: introduced a key-store corruption issue under concurrent access.

  • RemovedRelease withdrawn — upgrade directly to 3.4.0#1774

3.3.0

  • AddedFleet attestation batch API#1702
  • ChangedDefault TLS profile now requires hybrid X25519+ML-KEM key exchangeBreaking#1711
  • FixedReduced driver memory footprint by 18% on constrained targets#1720

Installation

npx shadcn@latest add "https://kelvinui.com/registry/changelog-feed.json"

Props

PropTypeDescription
releasesChangelogRelease[]{ version, date, summary?, entries, yanked? }
titlestringHeading
subscribeHrefstringRSS or notification link

The categories everyone omits

Entry types follow Keep a Changelog: added, changed, fixed, deprecated, removed, and security. The last two are the ones most hand-written changelogs drop, and they are the two a consumer most needs.

security deserves its own type rather than living inside fixed, because a reader triaging an upgrade filters for it specifically — and burying a CVE fix among bug fixes is how patches go unapplied. deprecated is the early warning that lets someone migrate on their schedule instead of discovering a removal in a release that breaks their build.

The breaking filter is a separate axis from type. A change can be changed and breaking, or removed and routine; treating "breaking" as its own dimension is what makes "show me only what I have to act on" a single click.

yanked marks a withdrawn release. Deleting a bad release from the changelog is the wrong instinct — someone is running it, and they need to see that it was pulled and what to move to. The demo keeps 3.3.2 visible and labelled for exactly that reason.

New components every week

Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.