next.js
9486750f - [evals] Cover focused Cache Components and Partial Prefetching cases (#97813)

Commit
4 days ago
[evals] Cover focused Cache Components and Partial Prefetching cases (#97813) ## Summary - update existing evals for synchronous I/O, instant shell validation, and Cache Components configuration instead of adding duplicate fixtures - add focused Partial Prefetching coverage for URL-data inclusion, the prefetch stage, and the navigation stage - retain focused Cache Components coverage for session isolation and URL-dependent shells - rebase onto current `canary` so the Partial Prefetching evals can use the public `unstable_prefetch()` and `unstable_navigation()` API references ## Coverage The latest results use Claude Sonnet 4.6 for the coding agent and Claude Haiku 4.5 for the agentic judge. The Partial Prefetching cases have been rerun after the new API references landed, and the corrected Cache Components criteria have also been rerun. | Eval | Scenario | Baseline | Bundled docs | | --- | --- | ---: | ---: | | `agent-035-connection-dynamic` | Adopt Cache Components while keeping synchronous request-time values fresh and stable navigation in the shell | 5/5 | 5/5 | | `agent-040-instant` | Follow default validation and keep a stable product title ahead of live inventory | 4/4 | 4/4 | | `agent-042-enable-ppr` | Translate legacy route configuration while preserving hourly and request-specific behavior | 4/4 | 4/4 | | `agent-048-prefetch-url-data` | Include cached URL-specific category content in a selected per-link prefetch | 3/6 | 6/6 | | `agent-049-prefetch-stage` | Exclude cached content from the App Shell but include it in a selected prefetch | 1/5 | 5/5 | | `agent-051-prefetch-until-navigation` | Prefetch a selected title while deferring the rest until navigation | 0/5 | 5/5 | | `agent-052-cache-components-session-isolation` | Reuse shared data without placing member-specific request data in a public cache | 5/5 | 5/5 | | `agent-053-cache-components-url-shell` | Keep URL data below a useful shell and include every output-changing value in the cache key | 3/5 | 5/5 | After the public API references landed, the prefetch-stage and navigation-stage evals show the intended documentation signal. Baseline Sonnet passed 1/5 criteria for `unstable_prefetch()` and 0/5 for `unstable_navigation()`. With the canonical bundled-docs instruction, Sonnet found the new references and passed all 5/5 criteria in both cases. After clarifying that the URL-data navigation must not block and linking the general navigation docs to the optimizing-prefetching guide, the URL-data case improved from 3/6 without docs to 6/6 with bundled docs. ## Result interpretation - `agent-048` now passes 6/6 with bundled docs. The scoped documentation link led the agent to the URL-data prefetch pattern instead of a blocking render. Baseline Sonnet added `prefetch={true}` but relied on the previous full-payload behavior and missed both the Partial Prefetching configuration and cached URL data, resulting in 3/6. - The low baseline scores for `agent-049` and `agent-051` are the intended signal. Without the new references, the agents did not discover the prefetch and navigation stages. With bundled docs, both cases pass 5/5. - `agent-053` is also an intended documentation signal: the baseline hid the useful shell behind a broad fallback, while bundled docs preserved the shell and passed 5/5. - `agent-035` now passes 5/5 in both conditions after removing an unnecessary requirement for visible loading UI in one small metadata region. `agent-052` also passes 5/5 in both conditions after removing two failures for an omitted explicit `cacheLife()`, because the default cache profile still applies, and clarifying for the judge that an uncached component reading `cookies()` or `headers()` remains request-specific without another opt-out marker. ## Overlap decisions - `agent-035` now carries the synchronous-I/O adoption case, so the duplicate `agent-051` fixture was removed. - `agent-042` now carries the route-configuration migration case, so the duplicate `agent-048` fixture was removed. - `agent-034` remains focused on correct async `cookies()` and `headers()` usage. `agent-052` tests the separate risk of leaking request-specific values through a public cache. - `agent-040` tests one meaningful shell under default validation. `agent-041` still tests independent streaming across several dashboard sections. - `agent-048` intentionally brings cached URL-specific content into a selected prefetch. `agent-053` tests the opposite shared-shell requirement during Cache Components adoption. ## Verification - Dry fixture generation passes for all eight cases in the table. - `pnpm build-all` - `agent-049-prefetch-stage`: baseline 1/5, bundled docs 5/5 - `agent-051-prefetch-until-navigation`: baseline 0/5, bundled docs 5/5 - `agent-035-connection-dynamic`: baseline 5/5, bundled docs 5/5 - `agent-048-prefetch-url-data`: baseline 3/6, bundled docs 6/6 - `agent-052-cache-components-session-isolation`: baseline 5/5, bundled docs 5/5 - `pnpm exec tsc -p evals/evals/agent-035-connection-dynamic/tsconfig.json --noEmit` - `pnpm exec tsc -p evals/evals/agent-042-enable-ppr/tsconfig.json --noEmit` <!-- NEXT_JS_LLM -->
Author
Parents
Loading