Finish structural-key cleanup and cover fallback action resumes
Add direct coverage for the server and browser segment-key implementations.
For example, server keys stay slug|d when an opaque fallback becomes a real
slug, while browser keys include the concrete value. Cover catch-all and
intercepted segments, distinct names/types, and the different search-param
behavior. Delegate static server segments to the existing router cache-key
helper with search parameters always excluded.
Remove the unused dynamic-param type slot from opaque fallback maps. Resume
metadata now persists only param names, so these maps only need to associate
each name with its placeholder. Rename the old searchValue local and clarify
that parameter wrappers, not the placeholders themselves, control suspension.
Update the action-only fallback fixture to recognize names-only postponed
metadata. Its old tuple-format assertion caused all three local cases to fail
before exercising action execution, revalidation, and notFound handling.
Verification:
- 126 focused unit tests and 4 snapshots pass in both default and Cache
Components/Webpack configurations.
- 34 production Webpack tests pass across fallback shells, shell upgrades,
action-only fallback resumes, and runtime-search-param head resumes;
4 existing tests remain skipped.
- Full workspace build, repository type check, and changed-file lint pass.
- The Turbopack action-resume run stops before application rendering because
the installed native binding does not match this checkout's project result
shape. CI needs to verify it with a matching native build.