Prompt-cache breakpoint placement avoids doubling up, but the path it guards is switched off.
Fork-point cache pinning needs server flags and experimental betas; both off here.
What's wrong with this entry?
The planner that places prompt-cache breakpoints now knows when a request already carries a top-level cache_control block, and in that case skips the extra breakpoint it would place at the conversation fork point, staying under the API's breakpoint budget. That fork pin is itself off in this build: both it and its step-back behaviour read server-side flags whose fallback is off, and both additionally require experimental betas enabled, so with no server values no fork pin is placed and the new suppression has nothing to suppress.
- The planner also takes a second new argument that disables the fork pin outright.
- Separately, the check deciding whether system-prompt cache_control may be marked on API system messages collapsed from a per-provider matrix (first-party plus Bedrock, Vertex and others) to "not skipping cache writes and experimental betas not disabled", so it is no longer provider-restricted.
topLevelCacheControl
Strings lifted out of the shipped bundle, so the claim above can be checked against them.