Repository navigation
Releases
PRNext 0.1.22-alpha
PRNext 0.1.22-alpha is available on npm as an alpha prerelease. Next.js compatibility remains partial; check your application's routes, forms, dependencies and production build before upgrading.
npm install @thomas.f/prnext@0.1.22-alphaKeep the React protocol packages aligned with the package peer dependencies, then rebuild and restart your application.
The attached archives passed the required CI, six-platform artifact qualification, twelve independent installations, eighteen Node.js lifecycle checks and the controlled performance gate. This does not establish a general speed gain, maximum capacity or absence of memory leaks.
Qualified source: 315647a8de783261d0a2190ab6c29ed0ed0b98b9.
Release commit: 5c542ac85d47f1ee3e9ea7ebc9b2e45b1643458c.
Read the compatibility guide.
Changes
- Automatically compact eligible production Node App Router presentation
components. No source directive or configuration opt-in is required. - Evaluate expressions and private inputs on the server; transfer only rendered
values and a static display template. Preserve complete SSR and ordinary React
rendering for unsupported components and custom compilation pipelines. - Preserve component identity across compact/ordinary size transitions. Keep
development, Pages, Edge and HTML-only rendering on their existing paths. - Expose build eligibility in
.prnext/presentation-report.json; configure
presentationComponents: falseto compare or disable this optimization. - Add deployment/rollback coverage for old browser tabs and a separate twenty-
minute diagnostic. The existing two-hour qualification remains distinct.
See the upgrade guide for scope and verification.
Check release status for npm availability.
PRNext 0.1.20-alpha
PRNext 0.1.20-alpha is available on npm as an alpha prerelease. Next.js compatibility remains partial; check your application's routes, forms, dependencies and production build before upgrading.
npm install @thomas.f/prnext@0.1.20-alphaKeep the React protocol packages aligned with the package peer dependencies, then rebuild and restart your application.
The attached archives passed the required CI, six-platform artifact qualification, twelve independent installations, eighteen Node.js lifecycle checks and the controlled performance gate. This does not establish a general speed gain, maximum capacity or absence of memory leaks.
Qualified source: 043084a7849c9d6bc93e6836e84980f4cf9b0318.
Release commit: 8061e6d4e78f35cc82935c7ae28d8244968217ef.
Read the compatibility guide.
Changes
- Add opt-in native PPR document shells, emitted before Node initialization
and resumed from the same checked build artifact. Keep private, rewritten,
expired and invalidated requests on the ordinary rendering path. - Target development refreshes through certified Server Action import closures,
retain unrelated pending mutations and synchronize skipped tabs before navigation. - Add an experimental Oxc React Compiler backend with separate client/SSR
transforms, source maps, cache identities and file-level diagnostics.
Keep Babel as the default and preserve hydration and source inspection in development. - Plan and deduplicate production App styles before bounded parallel emission.
Preserve ordering, custom transformation pipelines and the last good build on failure. - Stream App Route Handler request bodies over negotiated, demand-driven native
transport. Bound chunks and total size, cancel unread uploads without replaying
mutations and retain buffering for Server Actions and unsupported workers.
Installation, builds and cache storage
- Share a configurable 256 MiB compiler-cache retention target. Add
prnext cache
statistics, pruning and dry-run with ownership checks and active-worker
protection. Exclude runtime databases, invalidation history and page/image caches. - Compress large JSON cache records with decoded-size, key and checksum bounds,
atomic publication and support for existing raw records. Keep cache failures
optional and preserve the global compiler-cache opt-out. - Emit one OpenGraph renderer in production and omit it only when bounded
compiled-graph analysis certifies it is unused. Retain conservative fallbacks,
names, licenses, relative WASM loading and existing security guards. - Reclaim SQLite pages incrementally off the request path. Bound orphan page/image
cleanup with publication and reader leases; retain invalidation generations,
tags, fill leases and legacy database formats. Journal owned temporary build/dev
directories, reclaim verifiably abandoned owners and preserve recovery backups. - Make Oxc React Compiler an explicitly installed optional peer, resolved from
the application even with a global CLI. Report missing/version/native-binding
errors; Babel and disabled builds need no Oxc compiler installation. - Bundle Fontkit's Node
create()entry with upstream hashes, reproducible
provenance and dependency licenses. Cover TTF, OTF/CFF, WOFF, WOFF2, TTC, DFONT
and variable fonts without installing the external Fontkit dependency tree.
Production behavior and failure recovery
- Add
server.publicOriginand explicit trusted-proxy IP/CIDR ranges. Preserve
HTTPS in request URLs, middleware and redirects. Only the immediate allowed TCP
peer may supply forwarded host/protocol; the configured public origin wins. - Add bounded native readiness and optional application health probes. Require
complete HTTP 200 responses, reject redirects and clear readiness immediately
when graceful draining starts. - Qualify rollback after an initially healthy replacement later fails or exits.
Restore a still-healthy previous instance, drain responses and never replay a
failed request or a mutation whose response was lost. - Add
prnext check --production --jsonfor deployment settings, artifact drift,
authentication retention and experimental options. WithnavigationCache.authCookies,
reset the whole retained document across changed or unknown account identities,
while preserving verified same-account drafts. Defer strict PPR previews until
fresh identity is known; static/unknown identities require a document request. - Add transactional, account-scoped idempotency to the SaaS reference. Qualify
PostgreSQL outage/recovery, concurrent claims, response loss after confirmed
COMMIT, SQLite lock/SQLITE_FULL recovery and a real Redis crash/restart. An
explicit retry with the same key writes once; automatic mutation replay stays disabled. - Add a separate two-hour SaaS endurance campaign under verified CPU/RAM ceilings,
covering authenticated SQL reads/writes, cancelled streams, session renewals,
worker rotations and process/file-descriptor observations. - Add opt-in bearer-protected HTTP metrics with bounded labels, duration histograms,
active requests, response outcomes, admission saturation and worker lifecycle
counters. Expose bounded OTLP export loss, queue overflow, retry and partial
rejection counters with rate-limited, sanitized diagnostics. - Check npm, Cargo and embedded renderer/font dependencies daily; retain weekly
dependency updates, vendored provenance and a documented security-reporting path.
Build and browser work
- Rewrite App chunk imports in memory before their first write. Share parent
directory discovery within a build and retain bounded Oxc directive/export
summaries without retaining full syntax trees; preserve Babel fallbacks. - Index existing stylesheet links once per adoption operation, avoiding repeated
document scans while preserving stylesheet order and ownership. - Borrow ordinary Rust route paths and segments where possible, preserving
decoding, route precedence and request-owned parameters. - Avoid an intermediate Flight copy only for internally owned buffers; preserve
defensive copies for external producers and partial views. Keep stream EOF,
React commit and cancellation distinct when retaining navigation state. - Run Flight compression probes asynchronously with bounded concurrency and
ordinary-Flight fallback at saturation. Reuse native base64 decoding for PPR
preloads, retaining the browser fallback.
Experimental options remain disabled by default. Scoped storage and operation-count
measurements are described in RELEASE.md; they do not establish a
whole-build or general HTTP speed gain, a production SLA or absence of memory leaks.
PRNext 0.1.19-alpha
PRNext 0.1.19-alpha is available on npm as an alpha prerelease. Next.js compatibility remains partial; check your application's routes, forms, dependencies and production build before upgrading.
npm install @thomas.f/prnext@0.1.19-alphaKeep the React protocol packages aligned with the package peer dependencies, then rebuild and restart your application.
The attached archives passed the required CI, six-platform artifact qualification, twelve independent installations, eighteen Node.js lifecycle checks and the controlled performance gate. This does not establish a general speed gain, maximum capacity or absence of memory leaks.
Qualified source: 2346d5cf37f8cd36bf522867b3efcdb61ceadaeb.
Release commit: 0e85ff878132fe0949e749319c4b092d015ffa68.
Read the compatibility guide.
Changes
- Preserve mounted App layout state when a development Server Action overlaps
Fast Refresh. Keep unchanged Action identities stable within one development
session, including Cache Components, while invalidating changed source and
keeping production build identities independent. Never replay a mutation. - Restore the last committed App view before canceling an unfinished streamed
navigation. Preserve completed Action results, layout state, styles and
destination history when a newer navigation supersedes its pending render. - Detect deep source edits from coalesced macOS directory notifications. Compare
bounded content snapshots against the compiler's consumed inputs, preserve
identical generated output and report incomplete coverage explicitly. - Follow reachable application and dependency imports in migration checks,
including conditional exports and the React Server Component import context.
Report bounded, actionable file/line/import-chain evidence and distinguish
unknown behavior from checked behavior. Add explicit, application-owned browser
scenarios for checking both the reference and the candidate server. - Keep middleware packages bundled when a native dependency is declared but
never imported. Follow the resolved dependency graph while preserving
conservative discovery for computed loads and package-owned native addons. - Build Linux standalone deployments with libc and environment detection without
packaging the build host's ELF/ldd, kernel, cgroup or container probes. Leave
these exact host resources on the runtime host and preserve tracing-root
validation for ordinary application files and dependency links. - Add opt-in development compilation of literal dynamic client imports with
experimental.lazyDynamicImports. Compile on first use, retain native ESM
identity and live bindings, load deferred CSS on activation and preserve Fast
Refresh state. Activated styles remain loaded for the generation; prefer CSS
Modules or feature-local selectors. Bound activation queues, generated assets
and retained registries; reject unsupported configurations explicitly. - Preserve query and fragment module identities with their styles in App
builds. Keep qualified literal imports on the ordinary compiler path and
reject resolved suffixes that cannot safely reuse deferred export bridges. - Add an independently installed SaaS reference using Better Auth, PostgreSQL,
Drizzle and French/English next-intl routing. Its qualification covers account
ownership, session renewal/revocation, verified OpenID Connect and a relocated
two-worker standalone deployment. - Add Chromium/Firefox/WebKit compatibility checks, actual production worker
retirement qualification at the default 30/300-second deadlines, and repeated
paired archive-to-archive performance comparisons with explicit regression,
noise and load-generator budgets. Inconclusive evidence is never a pass. - Protect pending Flight imports from obsolete HMR generations and preserve
Server Action errors when navigation replaces their render. Release the
development commit wait when a newer interaction supersedes that render. - Share JSON module identity across deferred importers. Publish complete deferred
assets exclusively from private staging so a partial write can be retried
without overwriting immutable assets or losing their quota accounting. - Recognize module-level Server Action boundaries in migration import checks.
Diagnose Node-only imports in client graphs while retaining browser package
mappings and installed browser implementations. - Add shared PostgreSQL authentication budgets to the SaaS reference and qualify
secure cookies, invalid OIDC callbacks, CSRF, revoked-session mutations and
relocated standalone authentication through a controlled local HTTPS proxy. - Use the unchanged MIT-licensed Node File Trace 1.11.0 distribution with explicit
patched glob/minimatch dependencies, including independent npm consumers. - Retain fine latency histograms and bounded descendant CPU/RSS observations.
New performance evidence requires verified CPU/memory controls and complete
measurement coverage. Add scoped diagnostics for development state publication
failures while retaining the last complete state file. Keep obsolete runtime
retirement and snapshot retention active when a readiness publication fails,
while draining existing requests. - Share bounded incremental compilation graphs across development projects and
CSS roles. Preserve lexical build options while canonicalizing graph ownership,
invalidation and disposal, including macOS system and Windows short-path aliases. - Publish affected CSS bundles as small overlays with bounded provenance and
generation retention. Keep unchanged assets available when another bundle changes. - Compile only the deferred client graph for experimental dynamic imports. Validate
complete asset receipts before publication, retain native module identities and
reuse existing Server Action proxies without accepting new Action boundaries. - Expire idle differential Flight bases automatically and avoid a redundant copy
for already-owned single cache chunks without exposing mutable producer buffers. - Extend migration diagnostics for Redis adapters, server/client directives and
rendering realms. Detect unsupported .mts/.cts boundaries without executing
application modules. - Honor explicit Link prefetch={true} outside Cache Components. Revalidate the
destination on click so a prefetch cannot bypass current route authorization. - Skip unnecessary Flight indexing for very short initial chunks while preserving
the exact protocol and fallback. No general HTTP speedup is inferred from the
focused CPU profile.
PRNext 0.1.18-alpha
PRNext 0.1.18-alpha is available on npm for all six native platforms. Both latest and alpha select this version. It remains an experimental alpha with partial Next.js compatibility.
Install in an existing project:
npm i @thomas.f/prnextOr create a minimal TypeScript App Router project:
npx @thomas.f/prnext create my-app
cd my-app
npm run devThis release adds project creation, retained App Router state, prioritized prefetching, bounded navigation recovery, differential Flight, opt-in React Compiler with decision reports, and native TypeScript 7 support. Production improvements include optional Redis cache adapters, deployment-aware asset retention, route-scoped styles, selected HTML-only output, stronger request/resource bounds and improved instrumentation.
Use Node ^22.23.4 || ^24.22.1 || >=26.12.1 with aligned React, React DOM and react-server-dom-webpack 19.3.1 peers. Keep optional native dependencies enabled. Rebuild and restart after upgrading. Adopt optional features separately and validate your application's routes, data access and Server Actions.
The full required CI passed on Linux, macOS and Windows, including Linux Next.js reference contracts. Two reference-contract jobs outside Linux are expected skips. Six-platform archive checks cover twelve isolated installations and eighteen lifecycle scenarios on Node.js 22, 24 and 26. All seven public archives match the validated bytes. Fresh public-registry checks also pass for an unversioned install, production SSR/Flight/POST requests and unversioned project creation with typecheck, build and development HTTP.
The tag points to PR27 merge eddd283e563efd2bc90facf47c7766c22746268b, whose tree matches validated archive source 05a9ccd20e86a20698b4a37bdf6a6baa3411ceaf. Historical VPS benchmarks retain their own tested source and are not new measurements of this release.
Release article · Article en français · Changes since 0.1.17
PRNext 0.1.17-alpha
PRNext 0.1.17-alpha
PRNext 0.1.17-alpha is available on npm with matching native packages for macOS, Linux GNU and Windows, on x64 and ARM64. Install PRNext:
npm i @thomas.f/prnextThe latest and alpha tags both select 0.1.17-alpha for the framework and its six native packages. This remains an experimental alpha. To pin this release, use npm i @thomas.f/prnext@0.1.17-alpha.
Development now compiles requested routes behind a stable Rust listener, reuses persistent caches and keeps a bounded set of Webpack compilers ready for edits. Selective CSS updates and atomic HMR transactions reduce unnecessary work while preserving React state where supported. Background TypeScript checking, opt-in typed routes, independent typegen and typecheck commands, and workspace-aware migration make development feedback easier to act on.
Production builds reuse validated transformation and runtime caches, generate Brotli sidecars and use indexed dynamic routing. The Rust pstart data plane preserves streaming, health-checked switching and bounded generation draining. SSR diagnostics expose stage outcomes and resource occupancy. The absolute HTTP request deadline remains opt-in and disabled by default. These changes do not add dynamic response caching or establish a universal performance multiplier.
The package also includes the development console, inspector, device previews and local MCP tools, together with documentation for AI assistants. prnext docs --ai reads the installed version's guides without network access or a native binary. prnext docs --ai --init adds a reference to an application's existing AGENTS.md only when requested; installation does not rewrite project instructions.
The exact seven npm archives passed twelve hoisted/nested installation checks and eighteen lifecycle checks across all six native targets on Node 22.23.4, 24.22.1 and 26.12.1. The final source passed the required Windows, Linux and macOS CI before merge.
Use Node ^22.23.4 || ^24.22.1 || >=26.12.1 and keep React, React DOM and react-server-dom-webpack aligned at 19.3.1. Keep optional dependencies enabled so npm can install the matching prebuilt executable. React server/client directives must use .ts or .tsx; .mts and .cts boundaries are rejected. Ordinary helper modules remain supported.
After upgrading, rebuild applications, restart their servers and replace the complete deployed runtime or standalone output. Build standalone output for its deployment OS and architecture. pstart users must rebuild before prestart. Existing builds do not acquire the new runtime by updating the CLI alone.
This remains an experimental alpha with partial Next.js compatibility. Consult the compatibility guide before migration, and use prnext dev --safe when diagnosing incremental development behavior.
PRNext 0.1.16-alpha
npm availability: 0.1.16-alpha is published as @thomas.f/prnext (alpha and latest tags). All six native packages are published at the matching version. Registry tarballs were downloaded and verified byte-for-byte against the six-platform-tested archives. A fresh public-registry consumer passed installation, exact native binary verification, React19.3.1 resolution, production build, SSR and RSC checks. This remains an alpha release.
PRNext 0.1.16-alpha updates React, React DOM and React Server Components together to 19.3.1, addressing GHSA-xqc2-xf4c-x3h3 (RCE) and GHSA-h3gv-c5rc-p453 (Server Functions denial of service).
- Pin all three React peers to the patched, aligned 19.3.1 versions.
- Refuse release validation with the affected RSC version, even when npm audit reports no vulnerabilities.
- Update runnable Next.js migration examples and conformance tests to Next.js 16.4.1.
- Document rebuild/redeployment requirements and the patched Node 22.23.4, 24.22.1 and 26.12.1 baselines.
Validation: required Linux, Windows and macOS CI (native/Rust, unit/type, integration and browser checks), plus all six native package targets with normal/nested installs and lifecycle tests on Node 22 and Node 24. Archive and executable hashes are retained in the release receipts.
Upgrade PRNext AND the three React peers, then rebuild and redeploy each application. Existing images and running processes do not acquire this fix automatically. Use a patched supported Node binary. Application-specific dependencies and legacy Next.js servers need their own updates. Next.js compatibility remains partial; this is an alpha release.
Upstream advisories: GHSA-xqc2-xf4c-x3h3 and GHSA-h3gv-c5rc-p453.
PRNext 0.1.15-alpha
npm availability: this GitHub prerelease does not publish npm. The public alpha tag is still 0.1.13-alpha; do not assume npm update installs this version.
PRNext 0.1.15-alpha updates the framework security dependencies and requires patched Node releases: 22.23.4+, 24.22.1+, or 26.12.1+ on the supported release lines.
- Update rustls 0.23.46, rustls-webpki 0.103.16 and the trusted root bundle.
- Update source-map-js 1.2.2 and the vendored Open Graph renderer's sharp dependency to 0.35.5.
- Refuse optional sharp native backends with an affected librsvg version; preserve the safe renderer fallback.
- Pin CI and package validation to the patched Node 22/24 releases.
Validation: required Windows/Linux/macOS CI, including native builds, Rust/JavaScript/type checks, integration and browser tests. The six native npm package targets also passed isolated default/nested installs and lifecycle/compatibility checks on the supported Node 22 and 24 patches. Package receipts retain their actual source/archive hashes.
Upgrade Node as well as PRNext. Updating a JavaScript package does not replace the Node binary or existing deployment/container images. PHP is not a PRNext runtime dependency. Application-specific dependencies remain the responsibility of each hosted project.
Next.js compatibility remains partial. This is an alpha release.
PRNext 0.1.14-alpha
GitHub source prerelease. The published npm alpha tag is still
@thomas.f/prnext@0.1.13-alpha. This release publishes the versioned source;
it does not publish npm packages or provide prebuilt native/npm archives.
What's new
- A versioned static adapter imports completed browser builds, including Vite
output and explicit HTML-only SPA fallback, and serves them without React
render workers. - Cross-process project locks protect React builds and static imports. Recovery
is conservative, and failed imports preserve the previously published build. - Bounded gzip precompression validates existing static sidecars.
- Opt-in inspection includes sampled headers latency, server errors, worker
startup, memory and queue observations, with an OTLP/JSON histogram export. - Fixes cover contained credential aliases, native image callbacks on dynamic
ports, tracked stdio/RSC shutdown and browser prefetch observation. The source
also includes the reviewed ImageResponse renderer dependency follow-up.
Using this prerelease
Use the source archives below or check out the v0.1.14-alpha tag. Source builds
require Node.js 22+, the repository's Rust toolchain and the platform build tools
listed in the README.
Rebuild each application and restart or redeploy the complete output. Keep
framework and native versions aligned.
Installations from npm continue to use the published version. npm publication of
0.1.14-alpha requires freshly verified archives for all supported platforms and
the package/lifecycle checks in
RELEASE.md.
Known limits
PRNext remains an early alpha with partial Next.js compatibility. The static
adapter does not add arbitrary framework SSR. Inspector timings measure time to
response headers and are bounded diagnostic samples, not complete-response or
billing metrics. Existing hosting and compatibility limitations still apply.
Verified source: 03935103a354. Runtime source was validated by PR #7's full platform CI; the final README-only adjustment passed documentation checks.