github-actions[bot]
9cf754fcc2
chore: version packages (beta) ( #3074 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-02 12:10:10 +00:00
James Anderson
8370369383
fix(cloudflare): finalize CDN version metadata output ( #3137 )
...
* fix(cloudflare): finalize CDN version metadata output
* test(cloudflare): validate generated version metadata deployment
* fix(cloudflare): finalize metadata from primary output
2026-09-02 12:55:40 +01:00
James Anderson
9d94dcdd5f
fix(cloudflare): support explicit CDN warm targets ( #3138 )
2026-09-01 22:16:55 +00:00
James Anderson
6a18dbe3ff
fix(cloudflare): harden post-deploy readiness checks ( #3136 )
2026-09-01 22:43:02 +01:00
James Anderson
04c4de7f81
fix(cloudflare): restore web CDN warmup deploy ( #3135 )
2026-09-01 22:00:50 +01:00
James Anderson
2a08fb7913
fix(cloudflare): classify CDN cacheability per concrete route ( #3115 )
...
* fix(cloudflare): scale cacheability probing
* fix(cloudflare): preserve cache policy probe identities
* test(cache): cover conditional response vetoes
* fix(cache): match header policy sources exactly
* perf(cache): compute probe safety per pattern
* fix(build): omit empty route ownership metadata
* fix(cloudflare): classify cacheability per concrete path
* fix(cloudflare): retain zero-path static fallbacks
* test(cloudflare): cover on-demand static fallbacks
* fix(cloudflare): admit custom vary cache variants
* fix(cloudflare): keep wildcard vary private
* fix(cloudflare): reject wildcard vary during probing
* fix(cloudflare): reject empty Cache Components params
* fix(cloudflare): scope empty params validation to pages
* fix(cloudflare): remove cacheability response size limits
* fix(cloudflare): bound completed cache admission
* fix(cloudflare): release failed admission captures
* fix(cloudflare): honor staged readiness retries
* fix(cloudflare): retain probed manifest in dist
* fix(cloudflare): probe staged readiness without rendering
* fix(cloudflare): verify staged readiness response
* fix(cloudflare): reserve staged readiness endpoint
* fix(cloudflare): relax cacheability manifest bounds
* perf(cloudflare): avoid duplicate deployment status check
2026-09-01 21:25:26 +01:00
James Anderson
c8bea6bccf
feat(cache): classify and warm static Route Handlers ( #3113 )
...
* feat(cache): classify and warm static Route Handlers
* fix(cache): identify Route Handler probe responses
* test(cache): assert Route Handler probe identity
* fix(cache): prove final Route Handler responses
* fix(cache): admit explicit Route Handler policies safely
* fix(cache): close Route Handler admission fallbacks
* fix(cache): honor explicit dynamic handler policies
* fix(cache): reject unsafe Route Handler probe responses
* fix(cache): preserve Route Handler CDN policy ownership
2026-09-01 21:25:26 +01:00
James Anderson
09969d951a
feat(cache): probe Pages Router cacheability ( #3098 )
...
* feat(cache): probe Pages Router cacheability
* test(cache): prove Pages prewarm reuse
* fix(cache): fail closed for Pages request variants
* test(cache): assert Pages response finalization
* fix(cache): transfer hybrid Pages admission ownership
* fix(cloudflare): warm Pages Router data routes
* fix(cache): align Pages cacheability ownership
* test(cache): preserve Pages ownership order
* fix(cache): enforce Pages response admission without manifest
* fix(cache): align Pages request-time cache policy
* test(cache): expect completed Pages request-time probes
* fix(cache): preserve routing vetoes during probing
* fix(cache): preserve final routing cache policy
* fix(cache): retain middleware cache policy precedence
2026-09-01 21:25:25 +01:00
James Anderson
8956b70556
fix(cache): certify staged cache fills before promotion ( #3094 )
...
* fix(cache): certify staged cache fills before promotion
* test(cache): verify post-purge CDN admission
* test(cache): await post-purge CDN reuse
* fix(cloudflare): make cache fill certification opt-in
* fix(cloudflare): make cache certification authoritative
* style(cloudflare): format certification deploy
2026-09-01 21:25:25 +01:00
James Anderson
c2377c6b23
feat(cache): deploy probed manifests in two stages ( #3093 )
...
* feat(cache): deploy probed manifests in two stages
* fix(cache): isolate App Page cacheability probes
* fix(cache): preserve hybrid route ownership in probes
* fix(cache): isolate staged probe retries
* fix(cache): fail closed for unprobed request identities
* fix(cache): bound and filter staged cacheability manifests
* fix(cloudflare): validate cacheability manifest imports
* fix(cloudflare): bound staged cacheability probes
* fix(cloudflare): isolate cacheability probe budgets
* fix(cloudflare): bound staged probe envelopes
* test(cache): import manifest limit from owner
* fix(cloudflare): fail closed during staged warming
* fix(cloudflare): guard final staged traffic
* fix(cloudflare): deploy empty cacheability manifests
* fix(cloudflare): reconcile staged deployment failures
2026-09-01 21:25:24 +01:00
James Anderson
34dd7fe9ae
fix(cache): preserve Cache Components ownership during probing ( #3103 )
...
* test(cache): cover cache component ownership probes
* fix(cache): preserve cache component ownership
* fix(cache): bail out private cache probes synchronously
* fix(cache): suspend private cache prerenders safely
* fix(cache): validate private cache parents before probing
* fix(cache): isolate private bailout cancellation
* fix(cache): reject private cache inside unstable cache
* perf(cache): avoid redundant ownership overhead
* test(cache): use a valid Cache Components fixture
* test(cache): split cache components workerd fixture
* test(cache): remove unused worker type dependency
* test(cache): register cacheability fixture entries
* fix(cache): preserve legacy io probe parity
* fix(cache): invalidate unsafe unstable cache entries
* test(cache): resolve fixture cache handler types
2026-09-01 21:25:23 +01:00
James Anderson
bbaed77c35
fix(cache): gate CDN admission on probed routes ( #3092 )
...
* fix(cache): gate CDN admission on probed routes
* fix(cache): admit no-manifest responses after clean EOF
* fix(cache): fail closed for contextual admission
* fix(cache): isolate conditional config headers
* test(cache): use a valid legacy revalidate fixture
* fix(cache): finalize private app page evaluations
* test(cache): cover RSC manifest admission
* fix(cache): veto late private response policy
* fix(cache): reject conditional middleware probes
* fix(cache): trust framework admission policy
* fix(cache): isolate request-conditioned CDN responses
* fix(cache): avoid cookie response variation
* fix(cache): preserve hybrid Pages admission policy
* test(cache): allow existing Pages warm fills
* fix(cache): complete cacheable route handler responses
* fix(cache): preserve final public page policy
* fix(cache): complete adapter-admitted route handlers
* fix(cache): preserve route handler opt-out headers
* fix(cache): preserve explicit route handler policy
* style(cache): format Route Handler admission
2026-09-01 21:25:23 +01:00
James Anderson
aa4b195cc2
feat(cache): probe App Page cacheability on staged Workers ( #3091 )
...
* feat(cache): probe App Page cacheability on staged Workers
* test(cache): cover probe phase define
* fix(cache): keep middleware-matched probes private
* test(cache): use current proxy convention in probe fixture
* style(cache): format prerender capability check
* test(cache): cover RSC cacheability probes
* fix(cache): expose build phase during staged discovery
2026-09-01 21:25:23 +01:00
James Anderson
56b6be06d6
fix(cloudflare): discover prewarm paths from staged worker ( #3090 )
...
* fix(cloudflare): discover prewarm paths from staged worker
* fix(cloudflare): hide prerender capability from user code
* perf(cloudflare): skip discovery URL parsing on ordinary requests
* fix(cloudflare): bound staged discovery phases
* perf(pages): lazy-load staged discovery runtime
* fix(cloudflare): use the full staged discovery deadline
* fix(cloudflare): distinguish staged discovery failures
* test(cloudflare): preserve deadline-bounded discovery
* test(cloudflare): avoid wall-clock retry count
* test(cloudflare): stabilize discovery deadline coverage
2026-09-01 21:25:22 +01:00
James Anderson
2a2ce31ecc
fix(app-router): support soft navigation in static exports ( #3112 )
...
* fix(app-router): support soft navigation in static exports
* test(stream): drain transforms before releasing readers
* fix(cache): preserve prerender stale metadata across footer race
* fix(app-router): validate static export navigation payloads
* fix(app-router): handle static export basePath roots
* fix(export): align basePath artifact namespace
* fix(export): namespace basePath static artifacts
* fix(export): normalize trailing basePath artifacts
* fix(export): namespace public assets under basePath
* test(export): avoid tainted fixture HTML
2026-08-27 11:01:04 +01:00
James Anderson
c1a78a73d8
fix(build): support trailing-slash static exports ( #3081 )
...
* fix(build): support trailing-slash static exports
* fix(ci): initialize static export preview routes
* fix(build): emit trailing-slash 404 fallback
* docs(build): clarify static export page count
2026-08-26 23:01:09 +01:00
James Anderson
c812639653
fix(app-router): validate interception context identity ( #3078 )
...
* fix(app-router): validate interception context identity
* fix(app-router): revalidate interception proof after rewrites
* fix(app-router): retain source authorization across rewrites
* test(app-router): cover interception source auth bypass
2026-08-25 13:51:53 +01:00
James Anderson
a5b6d05b83
fix(app): authenticate static file signals ( #3077 )
2026-08-25 10:58:22 +01:00
James Anderson
4146d69021
fix(cloudflare): verify Worker version IDs during CDN warmup ( #3072 )
...
* fix(cloudflare): revalidate stale warmup retries
* fix(cloudflare): report CDN warmup retry progress
* test(cloudflare): retry prewarm verification on fresh Worker
* feat(cloudflare): configure CDN readiness probes
* fix(cloudflare): validate CDN warmup version overrides
* fix(cloudflare): verify CDN warmup version ids
* test(cloudflare): opt into dangerous warmup fallback
* fix(cloudflare): harden warmup version validation
* docs(cloudflare): clarify version binding environments
2026-08-24 23:03:15 +01:00
James Anderson
8759b65c86
fix(build): validate CDN warm discovery and deploy inputs ( #3057 )
...
* fix(build): validate CDN warm path params
* fix(build): exclude handlers from CDN warm paths
* fix(build): resolve all CDN warm path owners
* fix(build): preserve exact CDN warm path identity
* fix(build): preserve encoded Pages warm paths
* test(cloudflare): preserve encoded warm request URLs
* fix(build): reject unsafe Pages warm paths
* fix(router): match localized warm paths case-insensitively
* fix(cache): honor build identity adapter capability
* fix(build): reject normalized CDN warm paths
* fix(build): discover dynamic MDX warm paths
* fix(build): skip routes without static param generators
* fix(cloudflare): validate warmup promotion delay
2026-08-24 23:03:15 +01:00
James Anderson
e2e2b177eb
fix(cloudflare): complete warmup response and promotion contracts ( #3046 )
...
* test(cloudflare): prove deployed Pages CDN warmup
* fix(cloudflare): reject incomplete no-promote warmup
* fix(cloudflare): keep warm discovery fail-closed
* test(cloudflare): prove prewarmed App HTML reuse
* fix(cloudflare): enforce no-promote warmup contract
* fix(cloudflare): warm terminal ISR responses
2026-08-24 23:03:14 +01:00
James Anderson
f1efcc1e60
fix(cloudflare): harden canonical RSC warmup end to end ( #3040 )
...
* fix(cloudflare): validate reusable warm responses
* fix(cloudflare): retry staged warmup failures safely
* fix(cloudflare): extend staged propagation retries
* fix(build): filter Pages-owned RSC warm paths
* fix(cloudflare): keep CDN warmup correct with custom adapters and i18n
* fix(cloudflare): reject unusable CDN warm responses
* fix(cloudflare): keep CDN warmup bound to the deployed build
* fix(router): reuse warmed RSC on locale-prefixed hybrid routes
* fix(cloudflare): verify exact build and variant during CDN warmup
* fix(router): keep warmed RSC ownership rewrite-safe
* test(cloudflare): prove browser reuse of warmed RSC variants
* test(cloudflare): bind RSC warm proof to each deploy attempt
* fix(rsc): keep deferred loading shells contextual
* fix(build): keep CDN warm discovery route-correct
* fix(cache): preserve valid CDN policy during RSC warmup
* fix(cloudflare): warm the deployed Worker route host
* fix(cloudflare): preserve staged warmup guarantees
* fix(build): discover localized Pages warmup paths
* fix(cloudflare): wait for staged Worker before CDN warmup
* fix(cloudflare): preserve strict warmup deploy invariants
* fix(build): fail closed during CDN warm discovery
2026-08-24 23:03:14 +01:00
James Anderson
9dee8c9876
refactor(rsc): share canonical prefetch request resolution ( #3019 )
2026-08-24 23:03:13 +01:00
James Anderson
aeee350a6f
feat(cloudflare): configure warmup promotion delay ( #3017 )
2026-08-24 23:03:13 +01:00
James Anderson
7bf69109fc
feat(cloudflare): allow warmup without promotion ( #3016 )
2026-08-24 23:03:12 +01:00
James Anderson
843ecd1ef7
fix(cloudflare): default CDN warmup concurrency to 25 ( #3015 )
2026-08-24 23:03:12 +01:00
James Anderson
8bb09481d6
feat(cloudflare): prewarm canonical ISR RSC requests ( #3002 )
...
* feat(cloudflare): prewarm canonical ISR RSC requests
* fix(cloudflare): forward preview deploy options
* fix(cloudflare): harden canonical RSC prewarming
* fix(test): wait for preview alias propagation
* fix(cloudflare): guarantee exact RSC prewarm reuse
* fix(cloudflare): harden canonical RSC prewarming
* fix(cloudflare): preserve definitive RSC warm identity
* fix(cloudflare): warm immutable worker versions
* test(form): expect Next-compatible absolute navigation
* fix(cloudflare): harden RSC prewarm deployment
* test(cloudflare): stabilize deployed RSC proof
* test(cloudflare): await RSC prefetch completion
* test(cloudflare): isolate RSC readiness probes
* fix(cloudflare): warm RSC through version overrides
* fix(cloudflare): parse labeled Worker version IDs
* fix(cloudflare): warm document requests as HTML
* fix(cloudflare): retry staged version propagation
* test(cloudflare): seed prewarm proof with prior Worker
* fix(cloudflare): await version override propagation
* fix(cloudflare): serialize staged cache warming
* fix(cloudflare): verify warmed RSC build identity
* fix(cloudflare): harden staged RSC cache warming
* fix(cache): keep RSC prewarm identity build-scoped
* fix(cloudflare): gate warmup on uploaded build
* fix(cache): certify canonical RSC warmup responses
* fix(cache): harden canonical RSC warmup propagation
* fix(cache): close RSC warmup review gaps
* fix(cache): preserve explicit response cache policies
* feat(cloudflare): prewarm canonical RSC variants without prerendering
* fix(cloudflare): forward deploy config from CLI
* fix(cache): close RSC prewarm reuse gaps
* fix(cloudflare): parse labeled Worker version IDs
* fix(router): preserve canonical prefetch invalidation
* test(cloudflare): align RSC seed Worker bindings
* fix(cloudflare): scope warmup deadlines per request
* test(cloudflare): avoid caching stale warmup seed
* fix(cloudflare): fail permanent warmup errors promptly
* fix(router): keep contextual RSC requests hashed
* test(cloudflare): await promoted warmup Worker
* test(cloudflare): retry browser warmup source
* revert: restore focused warmup deadline fix
* fix(cloudflare): remove warmup propagation deadline
* fix(cloudflare): allow slower warmup responses
* fix(cloudflare): confirm warmed cache hits
* fix(cloudflare): confirm cache hits without backoff
* fix(cloudflare): avoid duplicate cache warm requests
* test(cloudflare): allow prewarm propagation
* test(cloudflare): isolate loading prewarm propagation
* test(cloudflare): await promoted prewarm worker
* fix(cloudflare): wait for warm cache propagation before promotion
* test(cloudflare): allow promoted warm cache to settle
* test(cloudflare): wait after promoted build is reachable
* test(cloudflare): poll deployed version before warm cache checks
* test(cloudflare): trace warm cache identity
* test(cloudflare): trace prewarm verification location
* test(cloudflare): compare warm cache clients
* test(cloudflare): trace bypassed response identity
* fix(cloudflare): serialize warm cache variants
* test(cloudflare): report prewarm cache miss context
* test(cloudflare): await target RSC deployment readiness
* test(cloudflare): await stable worker promotion
* test(cloudflare): isolate RSC prewarm target
* fix(cloudflare): defer CDN warmup retries
* fix(cloudflare): verify warmed RSC variants
* test(cloudflare): trace RSC warm cache paths
* fix(cloudflare): separate loading-shell warm cache key
* test(cloudflare): make RSC warm reuse proof deterministic
* test(cloudflare): tolerate stale promoted Worker routing
* fix(rsc): enforce definitive loading-shell cache key
2026-08-24 23:03:12 +01:00
github-actions[bot]
20fdac4cec
chore: version packages (beta) ( #3008 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-20 13:13:32 +00:00
João Lucas
52c81f3c5f
feat: experimental support for React Compiler via react: { compiler: true } ( #3005 )
...
* feat: support the React Compiler via react: { compiler: true }
@vitejs/plugin-react 6.1.0 added an experimental `compiler` option backed by
oxc-transform-react. vinext already forwards its `react` option to that plugin,
but enabling the compiler broke the build for apps with JSX in plain `.js`
files: `vite:react-compiler` and `vinext:jsx-in-js` both run at `enforce: "pre"`
and the React plugin was registered first, so the compiler parsed those files as
plain JS and failed with `Unexpected JSX expression`.
Register `vinext:jsx-in-js` before `@vitejs/plugin-react`, bump the plugin-react
catalog entry to ^6.1.0, add oxc-transform-react as a dev dependency for the
tests, and document the option.
* fix: fail fast when react.compiler is set on plugin-react 6.0
Addresses review feedback.
@vitejs/plugin-react 6.0 accepts an unknown `compiler` key and drops it, and it
still satisfies vinext's published peer range, so a project that upgrades vinext
without upgrading the plugin would silently get no React Compiler. Probe the
plugin list the factory returns and throw an actionable error when the compiler
plugin is missing.
Also drops the hand-authored changeset: AGENTS.md says changesets are generated
from Conventional Commits in CI.
* fix: keep the compiler version error out of the import failure wrapper
Addresses review feedback.
The trailing `.catch()` wrapped every rejection from the plugin-react promise
chain, including the compiler version check, so the actionable message and its
install command were demoted to a nested `cause` behind
`vinext: Failed to load @vitejs/plugin-react.`. Attach the wrapper to the
dynamic import itself so only genuine import failures are relabeled.
* fix: move only the compiler plugin instead of the whole React group
Addresses review feedback.
Reordering the entire @vitejs/plugin-react group put `vinext:jsx-in-js` ahead of
`vite:react-babel`, so on plugin-react 5.x, which is still in the supported peer
range and does expose a `babel` option, a user-configured Babel transform would
stop seeing JSX in plain `.js` files. Split `vite:react-compiler` out of the
group and register just that plugin after `vinext:jsx-in-js`. Every other plugin
keeps the position it had before this PR.
Also documents that components using `<style jsx>` are not memoized, since
`vinext:styled-jsx` lowers their JSX through the Next.js SWC transform first.
Running the compiler ahead of it is not an option: the styled-jsx plugin selects
modules by matching `<style` in the source, and lowered JSX no longer matches,
which would silently disable styled-jsx entirely.
* fix(ci): account for React Compiler test dependency
---------
Co-authored-by: James <james@eli.cx >
2026-08-20 14:07:54 +01:00
James Anderson
c107079ad1
fix(build): avoid workerd cwd in module identity ( #3007 )
...
* fix(build): avoid workerd cwd in module identity
* test(cloudflare): cover legacy module identity
* test(ci): run Cloudflare encoded-path fixtures
* test(cloudflare): version module identity fixture
2026-08-20 12:29:25 +00:00
github-actions[bot]
87f6ec420f
chore: version packages (beta) ( #2930 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-19 11:52:40 +01:00
James Anderson
0736fdd50b
fix(app-router): route server actions through their owning pages ( #2520 )
...
* fix(app-router): align server action routing
* perf(app-router): cache action ownership discovery
* fix(app-router): retain client-bound action owners
* fix(app-router): harden action owner forwarding
* fix(app-router): escape action owner metadata
* fix(routing): parse route parameters linearly
* perf(app-router): collect action owners during RSC scans
* perf(app-router): reuse RSC action consumer metadata
* perf(app-router): narrow RSC action metadata patch
* perf(app-router): move action edge analysis into vinext
* fix(app-router): finalize action scan observer integration
* fix(app-router): preserve original action scan metadata
* fix(app-router): retain imported inline action ownership
* test(actions): cover production action ownership edge cases
* fix(build): resolve action runtimes from generated entries
* test(actions): cover nested client form actions
* test(actions): cover same-named non-action exports
* refactor(app-router): derive action owners from final module graphs
* fix(app-router): lazily access RSC plugin API
* fix(app-router): harden action ownership forwarding
* fix(app-router): preserve forwarded action misses
* fix(app-router): resolve shared action owner roots
* fix(app-router): route progressive action owners
* fix(app-router): preserve progressive action routing
* fix(app-router): route bound progressive actions safely
* fix(app-router): preserve forwarded action redirects
* fix(app-router): reject unsafe progressive references
* fix(app-router): validate nested action references
* fix(app-router): decode outlined action chunk ids
* test(app-router): cover cached action ownership
* test(app-router): cover action owner route handlers
* test(app-router): cover direct object-wrapped actions
Adapt the regression from #2743 to assert successful direct form submission through the final action ownership graph.
2026-08-19 01:46:19 +01:00
James Anderson
9a876322c5
fix(web): consolidate canonical host SEO signals ( #2989 )
2026-08-19 00:12:05 +01:00
James Anderson
0e28810667
fix(app-router): restore shallow history tree snapshots ( #2885 )
2026-08-19 00:11:17 +01:00
James Anderson
b663d4bc35
fix(cache): inherit route revalidate for tagged fetches ( #2985 )
...
* fix(cache): inherit route revalidate for tagged fetches
* fix(cache): inherit the live fetch revalidate interval
2026-08-18 14:27:12 +01:00
James Anderson
f702d16126
refactor(middleware): remove dead resolver wrapper ( #2972 )
2026-08-18 09:56:27 +00:00
James Anderson
0fcb7e1771
refactor(app-router): remove dead intercept match helper ( #2971 )
2026-08-18 09:55:30 +00:00
James Anderson
3a021ced6b
refactor(dev): remove dead stack-line wrapper ( #2974 )
2026-08-18 10:52:44 +01:00
James Anderson
932116c997
refactor(server): remove dead encoding helper ( #2973 )
2026-08-18 10:52:26 +01:00
James Anderson
c84af82482
refactor(cache): remove dead revalidate duration registry ( #2967 )
2026-08-18 09:51:27 +00:00
James Anderson
794b04e75c
refactor(pages): remove superseded helper wrappers ( #2970 )
2026-08-18 10:51:13 +01:00
James Anderson
22d2d38033
refactor(app-router): remove superseded helper wrappers ( #2969 )
2026-08-18 10:50:55 +01:00
James Anderson
5eb21da2a0
fix(security): validate supplemental interception selectors ( #2976 )
...
* fix(security): verify interception cache identities
* fix(security): bypass caches for interception selectors
* fix(security): preserve caching for verified interception selectors
* fix(cache): delegate selector policy to CDN adapter
2026-08-18 10:48:04 +01:00
James Anderson
b653aaf52b
fix(build): preserve bundled ESM module identity ( #2942 )
...
* fix(build): preserve bundled ESM module identity
* fix(build): harden bundled ESM identity
* test(pages): allow parity route table growth
2026-08-18 02:35:44 +01:00
James Anderson
1c05615159
fix(build): preserve portable CommonJS module identity ( #2826 )
...
* fix(pages): preserve CJS globals in bundled dependencies
* fix(pages): use portable emitted CJS module identity
* test(build): expect emitted proxy module identity
* fix(build): support linked CommonJS package identity
* fix(build): harden linked CommonJS transforms
* fix(build): harden emitted CommonJS identity
* test(pages): account for fixture route table growth
* refactor(plugins): reuse shared module utilities
* test(cloudflare): cover Pages bundled CJS globals
* test(cloudflare): tolerate unmounted dev source identity
* fix(build): preserve nested Cloudflare module identity
* refactor(build): resolve deployed module filenames explicitly
2026-08-18 02:35:44 +01:00
James Anderson
fbf77b17dc
fix(router): refresh retained parallel routes ( #2880 )
...
* fix(router): refresh retained parallel routes
* fix(router): harden supplemental parallel refreshes
* fix(router): preserve refreshed nested source routes
* fix(router): skip retained descendant refreshes
* fix(router): canonicalize supplemental refresh paths
* fix(app-router): preserve superseded flight streams
2026-08-18 02:04:38 +01:00
James Anderson
68cf0af31c
refactor(app-router): remove dead RSC chunk subscriber ( #2964 )
2026-08-18 00:59:10 +00:00
James Anderson
1e0cc50323
refactor(dynamic): remove dead preload queue ( #2968 )
2026-08-18 00:46:40 +00:00
James Anderson
ace7a1f7a2
fix(pages-router): emit dev build ID in next data ( #2962 )
2026-08-18 01:18:27 +01:00
James Anderson
46eb2f031c
refactor(app-router): remove dead RSC nav global ( #2961 )
2026-08-18 00:10:32 +00:00