fix(cache): certify staged cache fills before promotion - #3094
Open
james-elicx wants to merge 6 commits into
Open
fix(cache): certify staged cache fills before promotion#3094james-elicx wants to merge 6 commits into
james-elicx wants to merge 6 commits into
Conversation
commit: |
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 11:12
9c6a459 to
ddc4238
Compare
Contributor
Performance benchmarksCompared 0 improved · 0 regressed · 6 within ±1.5%
View detailed results and traces 🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head |
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 11:32
ddc4238 to
cc7f8d0
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 12:11
cc7f8d0 to
26bdb59
Compare
Contributor
|
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 14:45
26bdb59 to
9a08dfc
Compare
This was referenced Aug 26, 2026
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 17:14
9a08dfc to
8946672
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
2 times, most recently
from
August 26, 2026 18:01
e010b0e to
b9c49b2
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 18:29
b9c49b2 to
03a5d6f
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 19:33
03a5d6f to
b4db841
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 19:42
b4db841 to
335d20c
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 22:22
335d20c to
224c8b5
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 22:31
224c8b5 to
dadd937
Compare
This was referenced Aug 26, 2026
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 23:00
dadd937 to
d65a518
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 26, 2026 23:25
d65a518 to
7c8125e
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
2 times, most recently
from
August 27, 2026 00:43
137a06e to
d69c708
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 27, 2026 00:58
d69c708 to
de8f090
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 27, 2026 01:05
de8f090 to
f0856e1
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 27, 2026 01:24
f0856e1 to
3a7939a
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 27, 2026 01:41
3a7939a to
5794eab
Compare
james-elicx
force-pushed
the
codex/cacheability-cache-certification
branch
from
August 27, 2026 01:50
5794eab to
de0d12e
Compare
james-elicx
marked this pull request as ready for review
August 27, 2026 08:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Capability stack 7/9. Exact head:
de0d12e4f27aa266418e5e1daa3a2044324da7cb. Base: #3093.Full chain: #3108 → #3090 → #3091 → #3092 → #3103 → #3093 → #3094 → #3098 → #3113.
Summary
Add an optional header-only certification pass for successfully warmed cache keys before promotion.
The default two-stage flow issues one cache-fill request per identity. Certification is enabled only with
--warm-cdn-certify; it then re-requests each warmed identity and accepts onlyHIT,REVALIDATED, orUPDATINGas proof that the entry is reusable. Cached response bodies are cancelled rather than downloaded again, and promotion aborts if deployment traffic changes. The dangerous warmup override cannot bypass an enabled certification pass.--warm-cdn-certifyis rejected unless--experimental-warm-cdn-cacheis also supplied, and every planned initial fill must succeed before certification or promotion.The deployed Cloudflare E2E also purges a warmed App Page and asserts
MISS → HIT, proving that embedded classification continues to admit safe cold fills after cache loss.Why opt-in
Certification gives stronger deployment-time evidence, but doubles requests for warmed identities. Keeping it behind a CLI flag preserves the performance benefit of normal cache warming while allowing stricter deployments to choose the extra verification.
Review guide
packages/cloudflare/src/cdn-warm.tsperforms header-only cache certification and defines accepted cache states.packages/cloudflare/src/deploy.tsgates certification onwarmCdnCertifyand relies on feat(cache): deploy probed manifests in two stages #3093's traffic checks before promotion.packages/cloudflare/src/cli.tsanddeploy-help.tsexpose--warm-cdn-certify.tests/cloudflare-cdn-warm.test.tscovers accepted/rejected cache states without consuming bodies.version_metadatabinding, including repetition in named Wrangler environments.tests/cloudflare-cdn-warm-deploy.test.tsproves one request by default, rejects invalid flag combinations, and requires complete initial-fill success before opt-in certification.tests/e2e/cloudflare-workers/rsc-prewarm.spec.tsproves warmed reuse and post-purge admission on the real CDN.Review size
Layer-only diff against this PR's base: 10 files, +525/-29.
Validation
--warm-cdn-certifyvp checkandgit diff --check