-
revalidateTagno longer deletes the underlying cache entries it revalidates. This matches Next.js's own built-inFileSystemCache.revalidateTag, which never deletes entries either — staleness is tracked via the sharedtagsManifestinstead, so the last-good value stays servable while Next revalidates in the background (and socacheComponents/PPR routes can resume from the cached postponed state).If you relied on the previous behavior (cache entries being physically deleted on
revalidateTag), this is a behavior change: entries now remain readable until overwritten by a subsequentset. -
revalidateTagnow accepts an optional seconddurationsargument ({ expire?: number }), matching Next'sCacheHandler.revalidateTagsignature. Passing{ expire: N }sets a future expiry (soft/background revalidation) instead of the immediate hard expiry used when no durations are provided.
- Fixed a race condition in the build-prerender fallback lazy-init (
getBuildPrerender) where concurrent first-miss callers could read a not-yet-assigned instance field as a false miss. Now memoized as an in-flight promise.