Release Next v3.0.0-next.7
- #776 by @bobsingor – Add
textQuadEdgeandtextQuadEqualshelpers for orientation-aware glyph edges and corner-wise text-quad change detection.
- #775 by @bobsingor – Add optional hints to capability tokens so missing-dependency errors can tell integrators which plugin to register.
- #775 by @bobsingor – Move Angular Stage input handling to the shared web surface controller, with lens-scoped interaction and native touch pan, pinch, fling, double-tap, and long-press gestures. Interaction now defaults on when the hub is present and can be disabled for secondary lenses.
- #775 by @bobsingor – Move React Stage input handling to the shared web surface controller, key page surfaces by durable page identity, and add draggable touch selection handles. Interaction now defaults on when the hub is present and can be disabled for secondary lenses.
-
#776 by @bobsingor – Refactor
SelectionHandlesto use the shared selection and web primitives so handles align correctly with rotated text and rotated pages. -
#777 by @bobsingor – Give every Stage lens and standalone
PageViewa stable view identity and use its scoped tile handle. Thumbnail and secondary views can no longer clear the main view's high-resolution tiles.
-
#775 by @bobsingor – Add shared browser Stage surface and touch gesture controllers with lens-scoped input, pan, pinch, fling, double-tap, long-press, and wheel handling. Export vibration and native-shell feedback providers.
-
#776 by @bobsingor – Add a shared native DOM binding for selection-handle drags that shields Stage gestures and handles pointer capture and client-delta tracking.
- #775 by @bobsingor – Add touch-aware tool consent, hit targets, drag handling, and cancellation so annotation editing cooperates with navigation gestures. Text-edit operations now report whether they handled a gesture, and the annotation capability token includes a missing-plugin hint.
- #775 by @bobsingor – Add pointer modality, cancellation, long-press, source metadata, touch-claim preflight, and source-scoped handlers to interaction routing. Introduce the PlatformFeedback capability and feedback plugin, and add a missing-plugin hint to the interaction capability token.
- #777 by @bobsingor – Scope tile state by view and page so multiple views of the same page can plan rasters independently without invalidating each other. Replace the flat tile methods with a reference-stable
render.tilesFor(view)handle that binds the view identity for planning, paint reporting, and release.
- #776 by @bobsingor – Add framework-independent selection-handle geometry and drag policies that follow rotated text, rotated pages, and RTL selection boundaries.
- #775 by @bobsingor – Route touch long-press selection through explicit gesture metadata, report whether word and line selection succeeded, and support optional selection feedback without swallowing unhandled gestures.
- #775 by @bobsingor – Add responsive container-query settings and named active rules. Add gesture lifecycle, elastic overscroll, fling, anchored double-tap zoom, and lens identity APIs, while removing the deprecated interaction settings and moving wheel classification to
@embedpdf/web.
- #777 by @bobsingor – Double-tap from a pinched-in zoom returns to fit-width instead of climbing (the iOS rule). The zoom ladder previously picked "the first posture meaningfully above the current zoom," so a pinch to a level between fit-width and detail made a double-tap zoom IN further. The rule is now: the ladder ascends only from ON a rung (within ±10% of a posture) — a tap at a posture moves to the next, wrapping past the top — while a pinch to any other level is leaving the ladder, and a double-tap there RESETS to the base fit ("take me back to reading"), never a further zoom-in. Everything that already felt right is unchanged: zoomed-out → fit-width, fit-width → detail, detail → fit-width.
- #775 by @bobsingor – Enable draggable touch selection handles and register vibration feedback by default when the platform supports it.
- #771 by @bobsingor – Accepts bodyless requests that carry
Content-Type: application/jsoninstead of failing them with an unhandled 500.- An empty JSON body now parses as no body rather than
FST_ERR_CTP_EMPTY_JSON_BODY— the shape the generated PHP, Go, and Ruby SDKs (and clients with default JSON headers) send for bodyless calls such as document delete. Non-empty bodies still go through Fastify's default parser, keeping its prototype-poisoning protection, and routes that require a body still reject its absence with a 400. - The error handler now honors Fastify's
statusCodeon framework errors, so parser and payload rejections (empty or malformed JSON, body limits) surface as the 4xx client errors they are instead of being logged and returned as "unhandled error" 500s.
- An empty JSON body now parses as no body rather than
- #775 by @bobsingor – Update the generated default WASM URL to use the current engine runtime release instead of the previous prerelease.
Release 2026-08-23 18:00
Release 2026-08-23 18:00
- query-core: export cache config types (#11263) (80fbf73e7) by @spaansba
- update knip (#11262) (f2a5da27f) by @TkDodo
- @tanstack/angular-query-experimental@5.102.2
- @tanstack/eslint-plugin-query@5.102.2
- @tanstack/lit-query@0.2.14
- @tanstack/preact-query@5.102.2
- @tanstack/preact-query-devtools@5.102.2
- @tanstack/preact-query-persist-client@5.102.2
- @tanstack/query-async-storage-persister@5.102.2
- @tanstack/query-broadcast-client-experimental@5.102.2
- @tanstack/query-core@5.102.2
- @tanstack/query-devtools@5.102.2
- @tanstack/query-persist-client-core@5.102.2
- @tanstack/query-sync-storage-persister@5.102.2
- @tanstack/react-query@5.102.2
- @tanstack/react-query-devtools@5.102.2
- @tanstack/react-query-next-experimental@5.102.2
- @tanstack/react-query-persist-client@5.102.2
- @tanstack/solid-query@5.102.2
- @tanstack/solid-query-devtools@5.102.2
- @tanstack/solid-query-persist-client@5.102.2
- @tanstack/svelte-query@6.1.41
- @tanstack/svelte-query-devtools@6.1.41
- @tanstack/svelte-query-persist-client@6.1.41
- @tanstack/vue-query@5.102.2
- @tanstack/vue-query-devtools@6.1.41
Release 2026-08-23 18:00
Release 2026-08-23 18:00
- query-core: export cache config types (#11263) (80fbf73e7) by @spaansba
- update knip (#11262) (f2a5da27f) by @TkDodo
- @tanstack/angular-query-experimental@5.102.2
- @tanstack/eslint-plugin-query@5.102.2
- @tanstack/lit-query@0.2.14
- @tanstack/preact-query@5.102.2
- @tanstack/preact-query-devtools@5.102.2
- @tanstack/preact-query-persist-client@5.102.2
- @tanstack/query-async-storage-persister@5.102.2
- @tanstack/query-broadcast-client-experimental@5.102.2
- @tanstack/query-core@5.102.2
- @tanstack/query-devtools@5.102.2
- @tanstack/query-persist-client-core@5.102.2
- @tanstack/query-sync-storage-persister@5.102.2
- @tanstack/react-query@5.102.2
- @tanstack/react-query-devtools@5.102.2
- @tanstack/react-query-next-experimental@5.102.2
- @tanstack/react-query-persist-client@5.102.2
- @tanstack/solid-query@5.102.2
- @tanstack/solid-query-devtools@5.102.2
- @tanstack/solid-query-persist-client@5.102.2
- @tanstack/svelte-query@6.1.41
- @tanstack/svelte-query-devtools@6.1.41
- @tanstack/svelte-query-persist-client@6.1.41
- @tanstack/vue-query@5.102.2
- @tanstack/vue-query-devtools@6.1.41
@tanstack/vue-query@5.102.2
- Updated dependencies [
80fbf73]:- @tanstack/query-core@5.102.2
@tanstack/solid-query@5.102.2
- Updated dependencies [
80fbf73]:- @tanstack/query-core@5.102.2
@tanstack/svelte-query@6.1.41
- Updated dependencies [
80fbf73]:- @tanstack/query-core@5.102.2