mirror of
https://github.com/cloudflare/vinext.git
synced 2026-05-09 08:25:34 +02:00
[PR #1093] [MERGED] feat(server): add disabled cache proof model #1090
Labels
No labels
enhancement
enhancement
good first issue
help wanted
nextjs-tracking
nextjs-tracking
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/vinext#1090
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/cloudflare/vinext/pull/1093
Author: @NathanDrake2406
Created: 5/6/2026
Status: ✅ Merged
Merged: 5/6/2026
Merged by: @james-elicx
Base:
main← Head:nathan/726-cache-proof-model📝 Commits (3)
b677c91feat(server): add disabled cache proof model834fde2fix(server): use distinct invalid cache budget code365878afix(server): harden disabled cache proof invariants📊 Changes
3 files changed (+1102 additions, -0 deletions)
View changed files
📝
knip.ts(+3 -0)➕
packages/vinext/src/server/cache-proof.ts(+727 -0)➕
tests/cache-proof.test.ts(+372 -0)📄 Description
What this changes
Implements #726-CACHE-01/04 from #726 by adding an intentionally disabled cache proof model for future route graph driven cache work.
The new model defines RenderObservation v0, CacheVariant v0, BoundaryOutcomeCompatibility v0, CacheVariantBudget, breaker fallback decisions, canonical redacted dimension representation, and a disabled decision that always returns canReuse false.
Why
Issue #726 calls out the core invariant: no proof, no reuse, no skip, no visible commit. Runtime cache hits are not semantic proof, so this PR creates the proof vocabulary and breaker shape before any observation recording or runtime cache reuse is enabled.
Approach
Non-goals for this PR:
Bonk: please read issue #726 to see the big picture before reviewing the cache proof boundary.
Validation
Full vp check note: formatting passed, but the existing repository check still reports unrelated issues in packages/vinext/src/server/request-pipeline.ts and benchmarks/vinext/vite.config.ts. The touched files pass targeted check, and Knip passes after registering this disabled boundary.
Risks / follow-ups
This is intentionally authority-free scaffolding. Later #726 cache slices still need to record real observations, classify private/dynamic downgrade behavior, and keep cache hit authority behind proof checks rather than runtime cache presence.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.