v0.4.13
ruviz v0.4.13
Released: 2026-04-27
Highlights
- Public PNG rendering now has a bounded process-wide marker sprite cache, improving repeated large scatter and line-marker renders while keeping cold and warm PNG output byte-identical.
- Log-scaled axes now flow through the public PNG, SVG, and parallel render paths with scale-aware coordinate projection, minor ticks, grid handling, and legend rendering.
- Legend sizing now scales from render DPI for text, frame borders, corner radii, and shadow offsets instead of using fixed pixel assumptions.
- Typst-valid symbol labels render through the public legend paths without adding LaTeX support.
Version Alignment
This release keeps the published workspace packages aligned on one version:
ruviz0.4.13ruviz-web0.4.13ruviz-gpui0.4.13- npm
ruviz0.4.13 - PyPI
ruviz0.4.13
Fixes And Maintenance
- Fixed parallel-render legend output so public PNG rendering includes enabled legends consistently.
- Fixed box plot quartile and whisker projection in the parallel renderer so y-values use the y-axis scale.
- Fixed degenerate scaled coordinate ranges in the parallel projection path.
- Fixed the notebook widget session sizing race that could create
1x1WebKit canvases before the notebook wrapper was attached. - Replaced full marker sprite cache clears with single-entry eviction and held the global cache lock across sprite creation to avoid duplicate same-key work.
- Moved shared legend DPI scaling onto
Legendso Skia and SVG renderers cannot drift.
Quality And Validation
This release builds on green CI for PRs #70 and #71, plus targeted local checks during release prep:
cargo test --lib legendcargo test --lib marker_spritecargo fmt --checkgit diff --checkbun run check:webRUVIZ_WEB_PREVIEW_PORT=4174 bun run test:e2e --project=webkit
References
- Changelog:
CHANGELOG.md - Previous release notes:
v0.4.12 - Release workflow:
.github/workflows/release.yml