Changelog
See what changed in each published Imposia package version.
This page summarizes each versioned Imposia release. @imposia/core, @imposia/viewer, @imposia/client, and @imposia/react use the same version number; the complete record is the repository's CHANGELOG.md.
0.5.0 — August 20, 2026
Core parses with the browser's native parser, and a pagination performance batch reduced layout-measurement work on long documents.
- Replaced
parse5with browser-native parsing (DOMParser, template fragment parsing, native serialization); malformed markup may parse differently than before, andparse5andentitiesleft the Core bundle. - Patched the bundled
postcssand transitivenanoiddependencies flagged by the production vulnerability audit. - Placed sibling runs as chunks and bisected only on overflow, removing a forced synchronous reflow and an inline-overflow check per node.
- Derived page-crossing text splits from line-box rects instead of one measurement call per grapheme; on the project's long-paragraph fixtures,
getClientRectscalls fell 98.1% for English and 95.9% for CJK text. - Shared one resolver call, decode validation, and Blob URL for same-URL assets within a generation, without changing per-occurrence byte accounting or extension veto semantics.
- Minified the browser bundles and re-based bundle-size budgets. Each new fast path ships beside a temporary internal fallback for one release, which is why the Core bundle grew this release.
- Fixed a Viewer error that could surface when a host updated a document under load: the Viewer's ambient synchronization now waits out the brief window between a commit landing in the canonical frame and the host delivering the new
PageDocument, instead of reporting that transient as page-marker corruption. Explicit calls still validate, and real corruption is still reported.
0.4.1 — July 27, 2026
Multi-page printing became reliable under caller viewport constraints, and Viewer panels follow the responsive control rail.
- Prevented caller-authored
htmlandbodyviewport constraints from clipping the isolated native-print snapshot to one sheet while preserving the source document's print cascade. - Positioned Viewer TOC, search, thumbnail, and Inspector panels below the actual responsive control rail, including the wrapped 320 px layout.
- Reorganized the localized documentation around getting started, concepts, publishing guides, package API references, and browser-native Save as PDF.
0.4.0 — July 24, 2026
Cooperative pagination keeps long HTML and CSR updates responsive without changing the accepted page structure.
- Added an 8 ms default yield budget, an injectable scheduler, and an
Infinityopt-out throughPageDocumentOptions.compose. - Added provisional progress with the completed page count and convergence pass.
- Settled fonts and images after staging content and styles are mounted.
- Made scheduler waits abortable and serialized superseding generations before staging the winner.
- Preserved source
htmlandbodycontext, body-scoped selectors, and computed custom properties in native-print snapshots. - Added layout containment to committed page roots while leaving style containment disabled so counters keep working across pages.
0.3.0 — July 24, 2026
Printing became independent from iframe sizing, and constrained table composition gained explicit extension hooks.
- Moved native printing to a transient, isolated snapshot in the top document to avoid Chromium blank-sheet failures.
- Added synchronous
finalizePagehooks for Core and Publication extensions. - Added the opt-in
createTableColgroupExtension()preset for stable split-table column widths. - Used the current page's remaining space when fragmenting split tables, safe grids, and over-tall normal blocks.
0.2.0 — July 24, 2026
Viewer controls became fully composable by host applications.
- Added
controls: falsefor hosts that provide their own navigation, view-mode, and zoom UI. - Added immediate Viewer state subscriptions, React state callbacks, and imperative navigation and zoom controls.
- Scoped Viewer tokens and presentation styles to each Viewer root so importing the stylesheet no longer changes the host page.
0.1.3 — July 23, 2026
HTML and CSR pagination integrity became the primary product contract.
- Added cross-browser continuity coverage that proves source tokens appear exactly once and in order across committed pages.
- Added a public CSR continuity specimen that applies rapid source revisions while retaining the canonical iframe.
- Positioned reflowable EPUB as a supported semantic projection rather than the headline rendering path.
0.1.2 — July 23, 2026
Release checks and the demo server's security posture were tightened.
- Added automatic CodeRabbit review alongside verification and code-scanning checks.
- Removed unused demo-server request-delay behavior and resolved the related CodeQL finding.
- Confirmed that structural selectors reach only
Element.matches()with conservative fallback behavior.
0.1.1 — July 23, 2026
The demo, documentation, and release path became ready for public package updates.
- Added portrait-first A4 controls with orientation switching and A3, A4, and B1 presets.
- Expanded multilingual API and publishing documentation.
- Added a protected GitHub Actions release path with npm trusted publishing, tags, GitHub Releases, tarballs, and checksums.
0.1.0 — July 19, 2026
The initial browser-only release established the complete public package family.
- Added deterministic browser pagination in one persistent canonical iframe.
- Added Viewer presentation, the browser Client entrypoint, and the primary React adapter.
- Added Publication composition, reader navigation, search, thumbnails, and multiple presentation modes.
- Added native print and reflowable EPUB 3.3 export from the committed source.
- Added typed diagnostics, bounded extensions, asset resolution, and constrained table, Flex, Grid, multi-column, and CJK fragmentation.