# What changed in @embedpdf/plugin-render

> 66 changes in @embedpdf/plugin-render 3 from its official release notes, upgrade guides and advisories: 25 breaking, 1 security, 33 new APIs and options. Each one cited. Sources checked 2026-11-06. HTML: https://unstale.sh/npm/@embedpdf/plugin-render/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @embedpdf/plugin-render 3

### Breaking changes

- Replaces the tile setting name bleed and makes its units explicit. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Checks render access; unauthorized page and tile renders are rejected locally with PermissionDenied. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Now takes a PageRef. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces tilesFor and returns a ViewDemand with pure reads and explicit demand, paint, release, and disposal operations. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces the tile setting name engageAt and makes its units explicit. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Form imports now emit a forms.created or forms.valueSet event per field, following removal of forms.imported. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed; form imports now fire per-field forms.created or forms.valueSet events. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Names the full-page settings type, replacing the previous Options type. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed; a widget's picture version is provided by the form plugin. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces paintSettings and returns reference-stable paint settings. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces renderEpoch, accepts a page ref or index and optional layer options, and returns 0 for a page not in the document. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces renderPolicy as the public render-policy accessor. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces renderSourceKey in the host capability and can request a thumbnail. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reports confirmed pixel changes, including remote changes, with the engine origin fields. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Render refusals use PluginErrors with permission-denied, not-found, operation-cancelled, or operation-failed codes. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Provides a reference-stable tile handle bound to a view identity for planning, paint reporting, and release. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Now represents DeepPartial<RenderSettings>. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed in favor of renderAppearances; a widget's picture version is provided by the form plugin. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Names the conforming viewer door, replacing the host capability's renderPage method; it can request a thumbnail. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Renders a page thumbnail at 512 pixels on its long side and requires only doc.render.thumbnail; maxWidth is no longer supported. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Render requests reject with operation-cancelled as soon as their signal fires. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed along with toEngineRect; the kernel page space converts tile regions to PDF space. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed; new tiles appear as soon as they are ready, without a fade. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Names the tile settings type, replacing the previous Options type. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Removed along with tileEngineRect; the kernel page space converts tile regions to PDF space. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)

### Security

- Unauthorized page and tile render requests are refused locally rather than repeatedly sent to the engine. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)

### New APIs and options

- Reports whether the session may render thumbnails. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Checks for doc.render and doc.content.copy permissions required for snapshots. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Clears the current snapshot. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Publishes a bundle-safe entry for the render token, paint-plan vocabulary, settings, and capability types without raster or plugin wiring. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reports which parts of a page the user may read. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reports which painter currently holds the page pictures. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reports whether a page picture is loading, ready, forbidden, errored, or idle in a view, and whether loading has been slow. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reads live render settings for every open document. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reads the current snapshot. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reads the snapshot box for a page on the host lens. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Controls whether page pictures include form fields; asking for content the user may not read is refused. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Accepts a fields scope; invalidation pages use page refs or indexes, and pages not in the document are skipped. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Returns an item's last appearance pictures after it has left its page. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Fires whenever picture state changes. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Signals changes to live render settings. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Signals snapshot changes. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Adds includeFormFields alongside includeAnnotations. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Replaces page-number arguments for rendering and tile methods; renderPage, renderThumbnail, renderPages, getRenderEpoch, and invalidate also accept a page index. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Adds a configurable strategy for exact and lattice-backed deployments, with separate full-page and tile-plane budgets and format conformance. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Hands page-picture painting to another plugin; only one plugin can paint at a time, and the handover can be returned or lasts until document close. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Fetches appearance pictures for annotation or form-widget items and shares matching requests. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Renders a page region in page space, clipped at the page edge; a region missing the page is invalid-input. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Turns the rendered picture; region or rotation renders are caller-specific and outside the layers' cache. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Renders multiple pages with optional concurrency and reports results in input order. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Lets the layers report a page picture to the host lens. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Resets live render settings. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Compares two tile demands by value. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Sets when a page waiting to render is considered slow; defaults to 400. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Adds an interaction-plugin tool that captures a selected page box or whole page as an image and updates it for changes made before capture. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Configures the snapshot box fill color; omitted colors follow the accent again when the box setting changes. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Configures the snapshot box stroke color. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Sets snapshot image scale in pixels per point and defaults to 2. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Updates live render settings; new budgets, tile sizes, or formats apply immediately and trigger replanning and redraw. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)

### Behavior and default changes

- Uses bounded fetch backpressure and raster residency, generation retention, bled overlap, and stronger raster identities to limit memory and avoid stale reuse, seams, and zoom or pan quality regressions. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reads null while the engine chooses; setting it to null gives the choice back. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Pictures are cached and redrawn according to the content they draw; annotation changes redraw pictures that include annotations. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Reads null while the engine chooses, allowing the choice to be returned by setting it to null. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- Renders at the requested size without snapping, shares the raster cache with view layers, and can render a page region with optional rotation. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)

### Fixes and other changes

- A fonts.changed write repaints only what its events require; registering local-engine fonts after drawing repaints every page. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
- A page that disappears before it reaches the engine rejects not-found; pages that arrive later are drawn once available. (3.0.0) — [release notes](https://github.com/embedpdf/embed-pdf-viewer/blob/7c93291c80c6f784675c5a04589ea9a3a62f11ed/packages/plugin/render/CHANGELOG.md#300)
