Repository navigation
chore: release main - #164
Closed
cachekit-release-bot[bot] wants to merge 1 commit into
Closed
cachekit-release-bot[bot] wants to merge 1 commit into
cachekit-release-bot[bot] wants to merge 1 commit into
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
cachekit-release-bot
Bot
force-pushed
the
release-please--branches--main
branch
from
October 21, 2026 19:49
bcafaf3 to
168f665
Compare
Contributor
|
Superseded: 0.11.0 is now released. The next releasable commit opens a fresh release PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 I have created a release beep boop
cachekit-macros: 0.12.0
0.12.0 (2026-10-21)
Miscellaneous
cachekit-rs: 0.12.0
0.12.0 (2026-10-21)
⚠ BREAKING CHANGES
.namespace()configured, entries written before this release no longer authenticate: reading one returnsCachekitError::Encryption, never a miss, on every read until it is overwritten, deleted or expires. Delete those entries, or move to a fresh namespace, when upgrading rather than waiting out the TTL. There is no fallback to the old AAD. Clients without a namespace are unaffected..encryption(),.encryption_from_bytes(),.encryption_from_bytes_with_previous(), thesecure/secure_from_envpresets, orCacheKit::from_env()withCACHEKIT_MASTER_KEYset) now encrypts every value read and write, not only those made throughsecure_cache(): plainget,set,set_with_ttl,interop_get,interop_get_swrand non-secure#[cachekit]functions store and read AES-256-GCM ciphertext, and L1 holds ciphertext. Entries those calls wrote in plaintext before this release are not migrated: reading one now returnsCachekitError::Encryption, never a silent miss, until it is overwritten, deleted or expires, so delete or let expire what they wrote before upgrading. Builds without theencryptionfeature now getCachekitError::Configfrom all three builder encryption methods, and fromCacheKit::from_env()whenCACHEKIT_MASTER_KEYis set, instead of a plaintext client. On every build, aCACHEKIT_MASTER_KEYthat is set but not valid UTF-8 is now aConfigerror fromCachekitConfig::from_env()andCacheKit::from_env(), where it was read as unset and gave a plaintext client.EncryptionLayer::new,EncryptionLayer::with_previous_keys,CacheKitBuilder::encryption_from_bytesandCacheKitBuilder::encryption_from_bytes_with_previous) now require keys of exactly 32 bytes, current and previous, and returnCachekitError::Configfor any other length. Callers that pass longer keys to a raw-bytes API, including hex keys decoded manually, now get an error at construction. Use exactly 32-byte keys, the only length every SDK accepts (openssl rand -hex 32), or pass the hex string to.encryption()or useCacheKit::from_env()...now fails:interop_keyreturnsInvalidKey, and#[cachekit]does not compile. Rename the segment; its keys become a full cache miss.CacheKit::securetakes the master key as a hex string (master_key_hex: &str) instead of raw bytes (master_key: &[u8]). The key must decode to at least 32 bytes and is validated before any Redis connection is attempted. There is no longer a raw-bytes preset; decoded bytes go throughCacheKitBuilder::encryption_from_bytes. The newCacheKit::secure_from_envreads the key fromCACHEKIT_MASTER_KEY.CacheKit::minimalnow enables an in-process L1 cache (1000 entries, no stale-while-revalidate, no cross-process invalidation). Aminimalread may serve an L1 entry for up to its 300 s TTL after another writer changed the value in Redis. Chain.no_l1()on the returned builder to restore read-through-every-time behaviour.CacheKit::encrypted(url, key)is nowCacheKit::secure(url, key), and theSecureCacheaccessorcache.secure()is nowcache.secure_cache(). Migration: rename both call sites; behaviour, defaults and feature gates are unchanged.Features
Bug Fixes
Performance Improvements
Security
Code Refactoring
Dependencies
This PR was generated with Release Please. See documentation.