[GH-ISSUE #1041] Support revalidate = false for App route segment config #231

Open
opened 2026-05-06 12:38:22 +02:00 by BreizhHardware · 0 comments

Originally created by @NathanDrake2406 on GitHub (May 3, 2026).
Original GitHub issue: https://github.com/cloudflare/vinext/issues/1041

Summary

Vinext currently ignores non-numeric App route segment revalidate exports while resolving effective segment config. Next.js accepts export const revalidate = false to mean cache indefinitely (effectively Infinity).

This is a pre-existing parity gap, but PR #993 makes it more visible because layout/page segment config is now reduced across the full route tree.

Expected behavior

  • A route whose only segment config is revalidate = false should produce an explicit indefinite-cache policy rather than null/unset.
  • Mixed segment configs should preserve shortest-wins semantics: numeric intervals should win over false because any finite interval is shorter than Infinity.

Current behavior

resolveRevalidateSeconds() ignores false, so revalidate = false alone is indistinguishable from no segment config.

Notes

This likely needs a cache-layer representation for indefinite caching that is distinct from "unset" before the resolver can model this cleanly.

Originally created by @NathanDrake2406 on GitHub (May 3, 2026). Original GitHub issue: https://github.com/cloudflare/vinext/issues/1041 ## Summary Vinext currently ignores non-numeric App route segment `revalidate` exports while resolving effective segment config. Next.js accepts `export const revalidate = false` to mean cache indefinitely (effectively `Infinity`). This is a pre-existing parity gap, but PR #993 makes it more visible because layout/page segment config is now reduced across the full route tree. ## Expected behavior - A route whose only segment config is `revalidate = false` should produce an explicit indefinite-cache policy rather than `null`/unset. - Mixed segment configs should preserve shortest-wins semantics: numeric intervals should win over `false` because any finite interval is shorter than `Infinity`. ## Current behavior `resolveRevalidateSeconds()` ignores `false`, so `revalidate = false` alone is indistinguishable from no segment config. ## Notes This likely needs a cache-layer representation for indefinite caching that is distinct from "unset" before the resolver can model this cleanly.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/vinext#231
No description provided.