Repository navigation
chore(main): release cachekit 0.2.0 - #105
cachekit-release-bot[bot] wants to merge 1 commit into
Conversation
This comment has been minimized.
This comment has been minimized.
a468a00 to
e082766
Compare
This comment has been minimized.
This comment has been minimized.
e082766 to
ed03e92
Compare
This comment has been minimized.
This comment has been minimized.
ed03e92 to
72c0970
Compare
This comment has been minimized.
This comment has been minimized.
5d95bfc to
b5c85b7
Compare
b5c85b7 to
a587299
Compare
This comment has been minimized.
This comment has been minimized.
de0c068
a587299 to
de0c068
Compare
This comment has been minimized.
This comment has been minimized.
832e1b2
de0c068 to
832e1b2
Compare
|
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 |
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Providing Context (Files & MCPs)Add these hints in your PR description (or a comment) to unlock deeper checks:
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
da2315b
122a1d7 to
da2315b
Compare
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Providing Context (Files & MCPs)Add these hints in your PR description (or a comment) to unlock deeper checks:
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
f4934a7
da2315b to
f4934a7
Compare
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Providing Context (Files & MCPs)Add these hints in your PR description (or a comment) to unlock deeper checks:
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
0074603
b80e12f to
a9c646a
Compare
🤖 I have created a release beep boop
0.2.0 (2026-10-12)
⚠ BREAKING CHANGES
createCache.minimal(),.production(),.secure()and.io()now throwConfigurationErrorat construction for any option they do not apply.encryption,masterKey,previousMasterKeysortenantIdonminimalorproductionthrows: usecreateCache.secure(),createCache.io()withencryption, orcreateCache()withencryption.encryptiononsecurethrows: passmasterKey,previousMasterKeysandtenantIdat the top level.masterKey,previousMasterKeysortenantIdat the top level ofiothrows: nest them underencryption.backend,urlandkeyPrefixonio,metricsandreliabilityonminimal,stampedeon any preset,keyPrefixbeside abackendinstance, and misspelt options such asdefaultTtlalso throw. An option set toundefinedis still accepted. On every encrypted cache, and innew EncryptionManager(…), atenantIdthat is set but is not a string, such asnull, throwsConfigurationError.L1CacheandcreateCache(via itsl1option) now reject anl1.maxMemoryofInfinity,NaN,0or a negative number, throwingConfigurationError. A caller who passedInfinityfor "no memory bound" should passNumber.MAX_SAFE_INTEGER;maxEntriesremains the hard bound on L1's size. Everyl1field set toundefinedornullnow takes its default instead of replacing it.MessagePackSerializer(andcreateCachevia itsserializeroption) now rejectsmaxEncodedSize,maxDecodedSizeormaxCollectionSizeset toundefined,NaN,Infinity,0, a negative number or a non-integer, throwingConfigurationError. A caller who passedInfinityfor "no limit" should passNumber.MAX_SAFE_INTEGER...now throwsConfigurationErrorat wrap time, on every backend; the exportedgenerateInteropKeythrows it at call time. Rename the segment; its keys become a full cache miss.L1Config.invalidationEnabledis removed from the exportedL1Configinterface and fromDEFAULT_L1_CONFIG, and the intent presets no longer set it. Nothing read the field. TypeScript consumers that setinvalidationEnabledwill get a compile error and should delete the property. Runtime behavior does not change. Separately,invalidate('params')without a key now stops before any L1 mutation,backend.delete, or invalidation publish, logs once and resolves; it previously resolved silently and still published aparamsevent with no hash.nsandnsapiare reserved interop namespaces.cache.wrap,generateInteropKeyandvalidateInteropSegmentthrowConfigurationErrorfor them, and for non-string namespace or operation segments. Deployments that usednsornsapias an interop namespace on non-CachekitIO backends must rename the namespace. The rename makes every existing entry in that namespace a cache miss.securecache created without atenantIdnow binds tenant"default"into the AES-GCM AAD instead of"". That is the value HKDF already derived its key from and the value the protocol requires, so a tenant-less cachekit-tssecurecache now shares ciphertext with cachekit-py and cachekit-rs on tenant"default". Caches with an explicittenantIdare unaffected. Entries written by a tenant-lesssecurecache on@cachekit-io/cachekit0.1.5 or earlier no longer authenticate, so every read of one fails decryption. To migrate, delete those entries (or switch to a fresh namespace or key prefix) once no pre-upgrade instance is still writing; during a rolling upgrade, old and new instances cannot read each other's entries. Do not wait out the TTL instead. Under thesecurepreset's default settings, each undecryptable read returns a miss; it is not retried and does not count as a circuit-breaker failure.Features
retry.deadline, one budget in ms shared by all attempts of an operation; the production, secure and io presets set it to 5000 (LAB-7080) (#200) (f978bbe)Bug Fixes
Performance Improvements
This PR was generated with Release Please. See documentation.