Skip to content

2.2.0

Latest

Choose a tag to compare

@NTDLS NTDLS released this 03 Nov 04:28
· 1 commit to main since this release

Be sure to check out the NuGet Packages 📦

New 🎉

  • Linux ARM64 build (KitKey.linux.arm64.zip) alongside x64.
  • Linux builds are now self-contained, so .NET no longer needs to be installed on the server.
  • Store names are validated up front, rejecting names that aren’t safe as directory names.

Changes 😎

  • Creating a store is now all-or-nothing. A failed create no longer leaves a half-built store behind.
  • Deleting or stopping a store waits for in-flight operations, and later operations get a clear “store has been stopped” error.
  • Statistics counters are thread-safe and only count operations that succeeded.
  • The web UI now returns enums as strings, with or without the web API enabled.
  • The web API returns 400 with the message for invalid requests, and now logs the full exception on failures.
  • ConnectAsync now reports connection failures through OnException instead of swallowing them.
  • KkClient and KkServer constructors were consolidated, so every constructor behaves the same.
  • Updated Linux installation instructions.

Fixed 🐛

  • Clients created with a configuration never raised connect or disconnect events and never auto-reconnected.
  • PushFirst and PushLast with list items had their directions swapped, so first pushed to the end and last to the front.
  • TryGetLast returned the first item instead of the last.
  • GetFirst, GetLast and GetList returned a broken empty item for a missing list, and the TryGet… methods always reported success. They - now return null and false.
  • Removing an item from a list that didn’t exist created an empty list.
  • Deleting an ephemeral store could try to delete a directory relative to the working directory.
  • Cache hits and misses were miscounted for lists, because database misses were counted as hits.
  • A missing store’s page showed zeros instead of returning 404.
  • The store page printed the literal text Model.Store.PersistenceScheme instead of the value.

Full Changelog: 2.1.6...2.2.0