cloudflare / cloudflare/vinext
Cache Components: preserve client references in durable use-cache entries
- Dominant language
- TypeScript
- Stars
- 8.8k
- Forks
- 406
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 120
Description
Durable `use cache` entries that return client components must not store build-specific client module IDs or chunk filenames. Cached Flight data needs stable client-reference names and must resolve them through the current build manifest when read.
Upstream: https://github.com/vercel/next.js/commit/3c8e9c385524359309d775f3fc39b6c2c0cedb6e
Vinext should ensure durable cache entries containing direct and nested client-component references:
- remain reusable across deployments when the server implementation is unchanged
- hydrate with the current client chunks after client-module changes
- retain normal invalidation when the cached server implementation changes
Add cross-deployment coverage for direct and nested cached client components, including client interactivity after a client-module update.
Contributor guide
Research direction
Start by tracing durable `use cache` serialization and read-time client-reference resolution, then inspect existing cache and hydration coverage. Add cross-deployment tests for direct and nested cached client components, verifying reuse across server-only deployments, current chunks after client-module changes, client interactivity, and normal invalidation when the server implementation changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- next.js, typescript
- Domain
- cloud, full-stack
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100