In Cache Components, bound args encryption needs to be cached (and
tracked with cacheSignal) because it's tasky. We use the serialized
bound args themselves as a cache key. However, in dev, the key ends up
containing debug info (in particular, timing information) so it's
different every time . This causes a cache miss and results in a static
shell validation failure.
The fix is to use a dummy debug channel to pipe the problematic debug
info into the void and thus make the key be deterministic.
## What?
Rename `experimental.dynamicIO` to `experimental.cacheComponents` across
the Next.js codebase.
## Why?
We're going to be merging the functionality of the `ppr`, `dynamicIO`
and `useCache` experimental flags into the singular `cacheComponents`
flag to reduce complexity of the codebase and simplify adoption for
users wanting to experiment with experimental features.
## How?
- Renamed the configuration option from `experimental.dynamicIO` to
`experimental.cacheComponents`
- Added deprecation handling with automatic migration for the old option
name
- Updated all documentation, tests, and internal references
- Updated Rust code in SWC transforms and Turbopack
- Maintained backward compatibility with deprecation warnings
NAR-158