fix(cache): preserve Cache Components ownership during probing - #3095
Conversation
commit: |
Performance benchmarksCompared 0 improved · 0 regressed · 6 within ±1.5%
View detailed results and traces 🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head |
741682a to
1296ef0
Compare
|
|
/bigbonk review for issues |
2 similar comments
|
/bigbonk review for issues |
|
/bigbonk review for issues |
|
@james-elicx Bonk workflow was cancelled. View workflow run · To retry, trigger Bonk again. |
|
/bigbonk review for issues |
|
/bigbonk review for issues Hard time limit: 20 minutes. Return all findings available before the deadline; do not wait indefinitely for additional analysis. |
|
/bigbonk review for issues Hard time limit: 20 minutes. Review exact head 6291704 and return all findings available before the deadline; do not wait indefinitely for additional analysis. |
|
/bigbonk review for issues Hard time limit: 20 minutes. Review exact head 7f4001a and return all findings available before the deadline; do not wait indefinitely. |
|
/bigbonk review for issues Hard time limit: 20 minutes. Review exact head 7f4001a and return every finding available before the deadline. If the full review cannot finish, post the partial verdict instead of waiting or cancelling without a result. |
7f4001a to
ad26419
Compare
ad26419 to
43dd408
Compare
43dd408 to
bbc2b0f
Compare
Stacked on #3094.
What this fixes
This follow-up aligns staged cacheability probes with Next.js Cache Components ownership semantics:
use cacheboundary owns an innerfetch(..., { cache: "no-store" }), so that fetch does not demote the enclosing routeuse cache: privatemarks the route dynamic and suspends before private user code or cache-key constructiontry/catchand Suspense fallbacks cannot turn it into a static certificationuse cache: privateinside publicuse cacheorunstable_cache()fails synchronously, matching Next.js, and cannot persist private output in the outer shared cacheThe unsafe legacy-payload upgrade and bounded-fill coordinator have been split into #3099 and #3100. They are not part of this diff.
Next.js parity
The workerd E2E ports the relevant ownership and invalid-nesting behavior from: