Release Notes
Added
xtask: support custom fixture roots in SVG baseline generation/comparison, add Markdown-aware text measurement, and
integrate an opt-in Node/Puppeteer KaTeX path when tools/mermaid-cli is available.
- Docs: add and expand
docs/workstreams/* parity planning material, including root viewport (parity-root) checks and
text-measurement alignment notes.
- Tests/Fixtures: add a broad parity corpus covering font-size precedence, HTML label wrapping, Markdown
<br/>
continuations, unknown XML entities, KaTeX flowcharts, text-style overrides, and root viewport probes across multiple
diagram types.
Changed
- Text parity work now consolidates large amounts of fixture-derived width/height/padding data into generated
*_text_overrides_11_12_2 tables instead of leaving diagram-specific literal branches inline across layout/render code.
- SVG/style precedence now follows Mermaid more consistently:
themeVariables.fontSize and themeVariables.fontFamily
win where upstream uses them, and parity tooling captures more text-style drift during SVG comparison.
Fixed
- Text/Markdown: align shared HTML/SVG text handling with Mermaid for inline code, failed
__ delimiter runs,
paragraph-vs-raw-block HTML labels, punctuation-heavy URL wrapping, hyphenated-token min-content width, and trailing
whitespace height edge cases.
- Flowchart: align HTML/SVG label wrapping, class/style text application, entity decoding, edge-label DOM/background/root
bbox behavior, and complete the upstream Cypress new-shapes strict-XML buckets.
- Class: reduce strict-XML drift across note labels, namespaces, generics, relations/cardinality terminals, style
propagation, annotation-driven sizing, and SVG/HTML title/member width measurement.
- ER: align relationship-label Markdown/backtick handling, root
htmlLabels semantics, and entity/root font-size
precedence with Mermaid baselines.
- State/Class/Mindmap/Kanban/Architecture: align remaining HTML label widths, wrapping-width handling, shared text
constants, width parsing, and icon/service label fallback geometry between layout and SVG render.
- Block: complete strict XML parity for the Mermaid block corpus and align remaining marker-aware terminals,
space:N
handling, HTML label sizing, and shape-specific geometry.
- Requirement/GitGraph/Timeline/Treemap/Sequence/Sankey/C4/Journey/Pie/Radar/XYChart/Gantt: move repeated text constants
into generated overrides and close the remaining text-geometry, viewport, and font-size precedence gaps that affected
parity fixtures.
- Theme/CSS: stop implicitly applying
base defaults under theme=default, seed Mermaid-like base/neutral xychart
defaults, and prefer themeVariables.fontFamily in emitted root SVG styles.
- Core/Layout internals: clean the remaining strict Clippy offenders in
dugong-graphlib, dugong, and parser helper
code, and scope vendored manatee FCoSE lint exceptions to the algorithm module so current stable Clippy stays
actionable outside the imported numeric code.
- Toolchain/CI: pin the workspace Rust toolchain to
1.87.0 and make CI install the same version explicitly, so
release and local checks stop drifting with floating stable.
- Toolchain/CI: drop GitHub Actions
cargo fmt / cargo clippy steps for now so release CI focuses on build, tests,
and parity checks while the remaining render hot spots are still being aligned.
- Maintenance: normalize
rustfmt output in parity/text/timeline/xtask helpers so the pinned toolchain now passes
workspace format checks without local-vs-CI drift.
Install merman-cli 0.4.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Latias94/merman/releases/download/v0.4.0/merman-cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/Latias94/merman/releases/download/v0.4.0/merman-cli-installer.ps1 | iex"
Download merman-cli 0.4.0