cloudflare / cloudflare/vinext

Cache Components: preserve client references in durable use-cache entries

Open
#3,206 0 comments 0 reactions 0 assignees View on GitHub
nextjs-tracking
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.