Features
- stop merging optimizeDeps into ssr.optimizeDeps, remove dep optimize from patches, rename deps to patches (natew)
- one: add optimization.warmRoutes to pre-discover deps on dev startup (natew)
- one: export autoWarmPlugin from one/vite, passive dep tracking (natew)
- upgrade to Vite 8 + Rolldown #684 (natew)
- upgrade to Expo SDK 55 (RN 0.83, React 19.2) (natew)
- upgrade to Expo SDK 55 / React Native 0.83 (natew)
- replace ?critical CSS with .inline.css convention (natew)
- native prod loaders via CJS format and ONE_SERVER_URL inlining (natew)
- cluster mode for production SSR serving (natew)
- add removeParams utility for navigation state (natew)
- --cluster flag for one serve (natew)
Bug Fixes
- vxrn: avoid removing .vite dir on build for compat with vp run caching (natew)
- one: preload root layout with render mode suffix (+ssg/+ssr/+spa) (natew)
- one: use client transformRequest for warmRoutes instead of HTTP fetch (natew)
- one: use client environment for warmRoutes transformRequest (natew)
- one: prevent spa-shell hydration from causing wrong route redirects (natew)
- one: filter autoWarmPlugin cached deps against exclude list #684 (natew)
- tsconfig-paths resolveId with extension resolution for SSR #684 (natew)
- one: render layouts normally in spa-shell mode to prevent navigator remount #684 (natew)
- alias react-native directly to react-native-web, drop shim file #684 (natew)
- handle react-native-web-lite Libraries paths in redirect plugin #684 (natew)
- ci checks pass - depcheck, types, workflow trigger #684 (natew)
- resolve tar and undici CVEs via resolutions instead of ignoring #684 (natew)
- one: fix test-cloudflare failing with Vite 8 / Rolldown (natew)
- one: fix cloudflare worker build MISSING_EXPORT errors (natew)
- test: fix test-warm-routes to use autoWarmPlugin correctly (natew)
- one: restore React Refresh / HMR for web client in Vite 8 (natew)
- adapt framework code for SDK 55 / RN 0.83 / React 19.2 (natew)
- test: update useId tests for React 19.2 format change (natew)
- resolve @react-navigation/native version duplication (natew)
- disable OXC React Refresh in production builds (natew)
- test: fix vercel test server preload regex for root page (natew)
- test: improve server startup diagnostics and fail-fast on crash (natew)
- minor cleanup in replaceLoader and test app (natew)
- test: set NODE_ENV=production for vercel test builds (natew)
- add react-navigation packages to Vite resolve.dedupe (natew)
- handle lazy-init module vars in bundled middleware (natew)
- test: fix skew-protection tests for dev mode reliability (natew)
- test: run test-test dev/prod sequentially (natew)
- eliminate vite optimizeDeps.rollupOptions deprecation warnings (natew)
- update CI for RN 0.83 (Xcode 26.2, iOS 18 sim, hermesc path) (natew)
- guard against undefined state.routes in router (natew)
- SSR cache lookup bug, deduplicate linking config, cleanup (natew)
- 4 critical bugs from expo-router audit (natew)
- adopt expo-router improvements (natew)
- stack: warn on invalid Stack.Screen presentation in dev (natew)
- nav: use constants for internal nav param names (natew)
- linking: reduce spurious linking warnings on Android (natew)
- screens: enable synchronous screen updates for react-native-screens (natew)
- vxrn: remove cluster-specific port and logging logic (natew)
- patch react-navigation exports via built-in dep patches (natew)
- screens: prevent reattachment of dismissed screens on iOS (natew)
- types: allow search params on static routes (natew)
- use onStateChange instead of addListener for navigation state (natew)
- compute navigation target at dispatch time (natew)
- layout useLoader gets correct data on SSR via WeakMap (natew)
- layout useLoader always runs its own loader on SSR (natew)
- skip preloaded page data for layout loaders on client (natew)
- add missing exports to one-server-only native stub (natew)
- native loader CJS double-conversion and add test:native script (natew)
- source inspector runs before client tree-shaking to prevent hydration mismatch (natew)
- move setServerData into loader in test (natew)
Documentation
- update autoWarmPlugin documentation (natew)
- add loaderCache docs, update SSR status to stable (natew)
- add cluster mode documentation (natew)
Performance Improvements
- cache route tree and linking config across SSR requests (natew)
- cache server imports and skip AppRegistry for SSR (natew)
- add streaming SSR render path (natew)
- cache loader functions and streaming SSR in serve (natew)
- deduplicate loaderData in server context script (natew)
- skip client-only linking logic during SSR (natew)
- simplify resolveResponse async wrapper (natew)
- streaming SSR by default, remove post-render string replacements (natew)
- sync cache path for loader resolution and render (natew)
- use pre-resolved loader data on SSR instead of re-executing loader (natew)
- lightweight SSR re-init and remove resetState per-request (natew)
- SSR concurrency optimizations and loader cache API (natew)
- loader coalescing via loaderCache export (natew)
- bypass BaseNavigationContainer on SSR (32+ hooks → 0) (natew)
- avoid watchman on tests (natew)
Tests
- add spa-shell routing integration tests (natew)
- update pure-spa test to match new layout render behavior (natew)
- add VITE_ENVIRONMENT shared module regression test (natew)
Continuous Integration
- trigger checks #684 (natew)
- run checks on PRs from same repo #684 (natew)
- ignore transitive security advisories in audit (node-tar, undici) #684 (natew)
- fix pipefail masking test failures, add workflow_dispatch (natew)
Chores
- bump react-native-worklets to ~0.7.4 for RN 0.83 compat (natew)
- fix missed version bumps from review (natew)
- lint fixes (natew)
- gitignore worktrees (natew)
- add SSRNavigationContainer types (natew)
Commits
- a624638: stop wasting ci (natew)
- 831d86d: canary1.10.6-1773621812717 (natew)
- e2d3fe9: canary1.10.6-1773624154612 (natew)
- c82daf0: canary1.10.6-1773629944624 (natew)
- a858979: canary1.10.6-1773631239757 (natew) #684
- fb8e233: remove vite-tsconfig-paths, strip SWC from compiler (natew) #684
- 547e016: fix lint: prefer startsWith over regex (natew) #684
- e724104: cleanup lock (natew) #684
- 05a1ff8: canary1.10.6-1773632106645 (natew) #684
- b750942: trigger ci (natew) #684
- 9599b74: update types (natew) #684
- 8c1c7b0: trigger ci (natew) #684
- d3f92b9: lints (natew)
- 3b38424: canary1.10.6-1773669958164 (natew)
- 6e0031f: add codeSplitting.minSize default and code splitting docs (natew)
- bf849a1: layout CSS before scripts, ?critical CSS inlining (natew)
- 52be860: canary1.10.6-1773677542781 (natew)
- 6dd0559: loosen vite version to avoid duplicates (natew)
- 2265037: cleanup skill (natew)
- 068826a: fix appium verify prompt (natew)
- 302eae7: upgrade hono (natew)
- 461e7fa: Revert "perf: lightweight SSR re-init and remove resetState per-request" (natew)
- 2e24997: fix valid depcheck (natew)
- 552c9a2: canary1.10.6-1773808005140 (natew)
- 1237d8a: cleanups and cluster fixes (natew)
- 2020f9b: fix empty plugin loading issue (natew)
- 2d89591: update status (natew)
- b4c0748: up playwright (natew)
- 267f86e: fix tests from rn 83 upgrade (natew)
- 97c9143: add tests and dev fallback to ensure matching hydrated data from ssr (natew)
- 4327e74: simplify loader handoff and throw if fails (natew)
- f348eb4: improve native loader compat to use proper cjs pipeline (natew)
- b905a82: disable clearScreen in all vitest configs (natew)
- b7efe2e: canary1.10.6-1773867455908 (natew)
- 078a68c: v1.11.0 (natew)