Release Next v3.0.0-next.8
Pre-release@cloudpdf/engine@3.0.0-next.8
Minor Changes
- #783 by @bobsingor – Use the document-scoped access endpoint for unlock requests. Add an
opt-indocAffinityHeaderoption for routing document requests and
bounded retries for serverEngineBusyandEngineRestarting
responses, includingRetry-Afterhandling and anonRetrycallback.
@cloudpdf/server@3.0.0-next.8
Minor Changes
-
#783 by @bobsingor – Add a production Helm chart with validated SQLite and Postgres profiles, safety gates, smoke and crash drills, and OCI publishing tied to the server package version. Add Prometheus metrics, drain-aware bounded shutdown and readiness, serialized Postgres migrations, and fail-fast worker supervision.
Add opt-in supervised engine-host process isolation with generation-fenced recovery, crash journaling, document quarantine enforcement, engine health reporting, and audited quarantine CLI commands. Repeated engine crashers can be observed or rejected with
DocumentQuarantined, while native host crashes restart the engine without terminating the API server.Encode page renders, annotation appearances, and warm thumbnails inside engine workers by default so compressed images cross the engine boundary, with a temporary API-side encoding fallback. Add bounded interactive and background scheduling, per-host memory telemetry, controlled engine recycling, and deterministic engine sharding with per-shard readiness and metrics.
Add
POST /v1/docs/:docId/accessas the document-scoped access endpoint while retainingPOST /v1/accessas a transitional alias. Head responses advertise the scoped endpoint, and path/body document ID mismatches are rejected. Allow the optionalX-CloudPDF-Docaffinity header through CORS and expose retry and image metadata response headers to browser clients.
@embedpdf/engine-core@3.0.0-next.8
Minor Changes
-
#783 by @bobsingor – Add the
*.renderEncodedwire kinds (pages.renderEncoded,
document.renderPageFileEncoded,annotations.renderAppearancesEncoded)
plus theirRenderEncode/EncodedImageWireshapes — cloud-server
surface (types only): the raster is encoded where it is produced and only
the compressed image crosses the engine boundary.Make document access endpoints document-scoped by changing
wirePaths.accessto awirePaths.access(docId)builder. Keep
wirePaths.accessLegacyfor transitional clients and allow the scoped
endpoint to omitdocIdfrom the request body.
@embedpdf/engine-runtime@3.0.0-next.8
Minor Changes
- #783 by @bobsingor – Add a public
@embedpdf/engine-runtime/build-idsubpath exposing the runtime's build identity (ENGINE_RUNTIME_VERSION,engineRuntimeTarget(), andengineRuntimeBuildId()) as a side-effect-free Node module. Supervisors and diagnostics can identify the version and resolved native target without loading the native addon.
@embedpdf/engine-services@3.0.0-next.8
Minor Changes
- #783 by @bobsingor –
WorkerHostaccepts an optional injectedWorkerImageEncoder(third
constructor argument) and dispatches the new*.renderEncodedkinds
through it on a narrowly-scoped async path. No new dependencies: the
native encoder stays in the injecting package. Hosts without an encoder
(browser/local workers) reject those kinds withNotImplemented;
existing two-argument construction is unchanged.
@embedpdf/react@3.0.0-next.8
Patch Changes
- #779 by @bobsingor – Bind Stage surface measurement before browser paint so the initial viewport and camera placement settle before page surfaces become visible. React viewers no longer show a transient incorrectly positioned page while a document opens.
@embedpdf/plugin-stage@3.0.0-next.8
Patch Changes
- #779 by @bobsingor – Keep page and scrollbar screen geometry hidden until initial viewport placement commits. Stage consumers no longer receive origin-based placeholder geometry while viewport, responsive settings, and camera state are being initialized, preventing pages from rendering at the top-left before their final placement.