Skip to content

v0.19.0

Choose a tag to compare

@cachekit-release-bot cachekit-release-bot released this 22 Sep 22:51
d9bf881

0.19.0 (2026-09-22)

⚠ BREAKING CHANGES

  • logging: remove dead compat surface and Redis branding from StructuredLogger (LAB-4621) (#316)
  • logging: cachekit.logging.UltraOptimizedStructuredLogger is now StructuredLogger; the cachekit.logging.StructuredRedisLogger alias is removed; cachekit.monitoring.pool_monitor.OptimizedPoolMonitor is now PoolMonitor. No deprecation aliases are provided. get_structured_logger() is unchanged and remains the supported entry point.
  • logging: UltraOptimizedStructuredLogger.init no longer accepts mask_sensitive; get_structured_logger() no longer accepts mask_sensitive and now keys _logger_instances on name alone; mask_sensitive_patterns is removed; ProfileConfig.mask_sensitive_data and ProfileConfig.lazy_pii_masking are removed. All were read by nothing and toggled no behavior. Constructors/callers passing them now raise TypeError instead of silently no-op'ing. Same removal shape as L1CacheConfig.namespace_index in v0.18.0 and L1CacheConfig.invalidation_enabled in v0.16.0 (LAB-520).

Features

  • backend: bound L1 backfill by the server's remaining freshness (LAB-557) (#268) (7bd5abf)
  • concurrency: free-threaded CPython support — memory-ordering fixes, gil_used=false, CI lane (LAB-511) (#265) (bda770b)

Bug Fixes

  • ci: fail loudly on attestation lookup failure; decide the codecov pair (LAB-2528) (#270) (2a8b941)
  • ci: make the Atheris fuzz job capable of failing + repair its dead targets (LAB-1140) (#269) (6ab0c28)
  • decorators: async get hits record serializer/size/hit like the sync path (LAB-3765) (#297) (9b96fd2)
  • decorators: async lock double-check L2 hits record get telemetry (LAB-3769) (#303) (683b1c7)
  • decorators: honour set_default_backend() when called after decoration (LAB-4457) (#313) (d20204c)
  • file: guard eviction unlink against a concurrent rename (LAB-2685) (#285) (e917a57)
  • file: write every byte or fail; evict a payload that shrank under read (LAB-2682) (#272) (068adb2)
  • logging: redact raw cache keys on all log paths (LAB-304) (#264) (81f97fb)
  • logging: sanitise error kwarg at the structured cache-operation sinks (LAB-3666) (#301) (d27ec29)
  • redis: stop lock waiters pinning executor threads (LAB-3596) (#290) (ddbeb91)
  • serializers: bound forged-entry error echoes; retire columnar dead code (LAB-3131) (#289) (10a1049)
  • serializers: bound untrusted msgpack decode depth and header allocation (LAB-2503) (#276) (f7c087d)
  • serializers: fail closed on unverified DataFrame/Series envelopes (LAB-2736) (#304) (60da54f)
  • serializers: take the format from the envelope, not the header; drop the header-gated fall-through (LAB-2736) (#308) (69db1c5)
  • serializers: type ByteStorage.retrieve failures and collapse duplicated columnar decode (LAB-2736) (#287) (0aa78ca)

Performance Improvements

  • decorators: backfill L1 on sync L2 hits; size stats by envelope length (LAB-348) (#294) (c019b26)

Code Refactoring

  • logging: remove dead compat surface and Redis branding from StructuredLogger (LAB-4621) (#316) (98d616e)
  • logging: remove dead PII-masking knobs (LAB-3797) (#300) (705640b)
  • logging: rename UltraOptimizedStructuredLogger to StructuredLogger, OptimizedPoolMonitor to PoolMonitor (LAB-4617) (#314) (2f7c979)