Skip to content

v2.2.2 — Self-contained output; stricter label fidelity

Choose a tag to compare

@csthink csthink released this 15 Jun 03:51
· 15 commits to main since this release

A patch — same inputs, same output contract; the rendered file is now fully self-contained, and the fidelity check no longer hides a dropped label separator.

Changed

  • Output drops the Google Fonts dependency — now truly self-contained. The rendered HTML no longer links fonts.googleapis.com; it falls back through a system monospace stack ('JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Code', Menlo, Consolas, monospace), so JetBrains Mono still renders when installed locally, but the file opens offline, issues no third-party request, and carries zero external assets. The output contract's "no external assets except Google Fonts" becomes just "no external assets."

Fixed

  • check_fidelity.py catches a genuinely dropped label separator. It used to strip separator punctuation (::·•,,;;) before matching, which also silently accepted a label whose separator was lost in rendering. It now matches the separator as an element boundary — the legitimate architecture label/sublabel split (A:B → two adjacent <text> elements) still passes, while a real collapse (A:B → "A B" in one element) is reported instead of hidden.

Verified

  • run_checks 11/11, check_diagram 0 violations, check_fidelity PASS (incl. the new boundary case). Local-test bianque (35 nodes / 38 edges) generated in ~3 min, inside the 8-min perf-gate. Model output and render latency unchanged — both changes live off the model's authoring path.

Install / update (Claude Code): npx skills add csthink/dashmotion -a claude-code (re-run to update in place). claude.ai: download dashmotion.zip below → Settings → Skills → upload.