Skip to content

Release history

flyingsquirrel0419/layercache releases

All releases

22 shown

No immediate action
v3.1.0 New feature

New cache features & performance fixes

No immediate action
v3.0.0

Routine maintenance and dependency updates.

No immediate action
v2.1.0 New feature

Exact-key cache APIs + TS docs

v2.0.0 Breaking risk
⚠ Upgrade required
  • Update any configuration or code that supplies TTLs in seconds to use milliseconds (e.g., multiply existing values by 1000).
  • Adjust scripts and tooling that parse `inspect` output to expect the new `ttlMs` field.
  • Review documentation examples, migration guides, and README files which now demonstrate millisecond TTL usage.
Breaking changes
  • All public API TTL parameters (layer defaults, per-operation ttl, negativeTtl, staleWhileRevalidate, staleIfError, ttlJitter, refreshAhead, adaptive TTL steps) now require values in milliseconds instead of seconds.
  • CLI `inspect` output and Redis writes/reads switch to millisecond semantics (`PX`, `PTTL`) and report `ttlMs`.
Notable features
  • Stale-preserving expiration APIs: `expireByTag()`, `expireByTags()`, `expireByPattern()`, `expireByPrefix()` mark entries stale without deleting their revalidation windows.
  • Context-aware cache entry options via `contextOptions` to derive TTLs and tags from `{ key, value, kind }` context for both fetched values and direct `set()` operations.
  • Real Redis integration test coverage added for RedisLayer, RedisInvalidationBus, RedisTagIndex, distributed single-flight, and multi-instance behavior.
Full changelog

Breaking

  • TTL values now use milliseconds across the public API — layer defaults, per-operation ttl, negativeTtl, staleWhileRevalidate, staleIfError, ttlJitter, refreshAhead, adaptive TTL steps, and TTL policy return values are now documented and handled as milliseconds. Redis writes now use PX, Redis TTL reads use PTTL, and CLI inspect output now reports ttlMs.

Added

  • Stale-preserving expiration APIsexpireByTag(), expireByTags(), expireByPattern(), and expireByPrefix() mark matching entries stale without deleting their stale-while-revalidate / stale-if-error windows, enabling revalidation while still serving existing values.
  • Context-aware cache entry optionscontextOptions can derive write-time TTLs and tags from the resolved { key, value, kind } context for both fetched values and direct set() operations.
  • Real Redis integration coverage — Docker Compose, scripts/run-integration-tests.mjs, vitest.integration.config.ts, and Redis integration suites now cover RedisLayer, RedisInvalidationBus, RedisTagIndex, distributed single-flight, and multi-instance behavior against a real Redis service.
  • Docs web app — added the docs-web/ Next.js documentation site with MDX docs, search, playground, .well-known API/agent metadata routes, markdown export, sitemap, robots.txt, and UI state tests.
  • BentoCache comparison docs — README, localized READMEs, and docs/comparison.md now include BentoCache feature comparisons.

Changed

  • Version bumped from 1.3.4 to 2.0.0.
  • Documentation examples now use millisecond TTLs across README, localized READMEs, root docs, docs-web content, examples, middleware snippets, and migration guides.
  • npm package contents are now limited to runtime build artifacts by publishing only dist/ plus npm's always-included metadata.
  • Validation now runs broader CI coverage with Node.js 20/22, Biome GitHub annotations, real Redis integration tests on Node.js 20, and a validation summary.
  • Test baseline increased to 549 passing tests with added coverage for context-aware options, stale-preserving expiration, Redis integration behavior, millisecond TTL handling, and docs-web utilities.

Fixed

  • Stale expiration preserves stale deadlines instead of discarding stale-while-revalidate / stale-if-error windows when expiring stored envelopes.
  • Invalidation expiration keeps remaining TTLs in milliseconds, matching the new stored-envelope TTL helpers.
  • CLI inspect and docs-web CLI docs now use ttlMs, aligning CLI output with Redis PTTL and millisecond semantics.
  • Docs-web playground cache state reporting now stays aligned with the worker timeout and state-reporting helpers.
  • Refresh-ahead coverage is no longer timing-sensitive under Node.js 20 coverage runs.
Upgrade now
v1.3.4 Security relevant
Dependencies

Dependency upgrades

No immediate action
v1.3.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.3.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.3.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.3.0 Bug fix

CacheStack degradation

No immediate action
v1.2.9 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.8 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.7 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.6 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.5 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.4 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.2.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.1.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.0.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v1.0.1 Maintenance

Routine maintenance and dependency updates.

Beta — feedback welcome: [email protected]