Ship · Node execution
Deploy to Node
The Node adapter publishes a schema-v3 release inventory and generated host. It serves compiled static routes, canonical route loaders, and canonical Form-bound server actions without creating a second router or evaluating application source on the server.
A dynamic route runs only when the compiler has published every identity, codec, request coordinate, package export, cache fact, and browser bootstrap target it needs. Missing evidence fails preparation or execution.
Prepare the release
pnpm checkpnpm buildpnpm deploy:node:preparenode .presolve/node/server.mjsThe canonical scaffold maps preparation to presolve deploy node --prepare. Start the generated host from the project root after preparation succeeds.
Generated Node projection
.presolve/node/deployment.plan.jsonSchema-v3 route, artifact-root, registry, digest, and execution inventory..presolve/node/server.mjsGenerated host for static publications, loader requests, action coordinates, cancellation, cache policy, and stable failures..presolve/node/presolve.route-loaders.mjsFrozen Vite bundle containing only compiler-selected loader exports..presolve/node/presolve.server-actions.mjsFrozen Vite bundle containing only compiler-selected server-action exports..presolve/node/package.jsonMinimal local ESM boundary for the generated host.Inputs the adapter is allowed to read
file-routes.manifest.jsonfor the exact route and artifact inventory.route-loaders.plan.jsonfor canonical loader execution and Resource bootstrap records.route-server-actions.plan.jsonfor canonical Form/action coordinates.
The route sets must match exactly across all three products. Duplicate, malformed, or foreign route records fail preparation instead of being reconciled.
Request behavior
GET /staticServe the matching compiled document and its immutable publication assets.GET /posts/:slugStrictly decode compiler-mapped parameters, execute the admitted loader, validate its result, and inject the Resource bootstrap into the compiled document.POST /_presolve/actions/…Validate method, origin, media type, and body limit; decode FormData; execute the admitted action; emit its declared JSON, redirect, or typed-failure response.Caching and cancellation
Loader capabilities choose public, private, or no_store. Public keys use the capability and canonical route parameters. Private keys additionally partition authorization and cookies and emit Vary: Authorization, Cookie. Cache entries live only in the host process. Action responses are always no-store.
Every accepted request owns cancellation. A disconnected request stops waiting; the final disconnected waiter aborts shared loader work, and host shutdown aborts all active loaders and actions. Pending work is not serialized or replayed.
Production verification
Registry integrity Confirm both generated registry files exist and their plan digests match.
Static coexistence Request at least one static route alongside every dynamic route family.
Loader outcomes Exercise data, typed error, invalid parameter, each cache scope, disconnect, and shutdown.
Action outcomes Exercise validation, multipart and URL-encoded input, JSON, redirect, typed failure, origin rejection, body limit, reset, and cancellation.
Browser bootstrap Confirm loader data renders through its Resource with no server module request or runtime diagnostic.
The static adapter rejects every loader or server-action handoff. It cannot be used as an alternate executor. Choose Node whenever a selected route has dynamic server records.