Skip to content

Add deterministic standalone SVG rendering - #7

Merged
konojunya merged 1 commit into
mainfrom
jj/add-svg-renderer
Sep 3, 2026
Merged

Add deterministic standalone SVG rendering#7
konojunya merged 1 commit into
mainfrom
jj/add-svg-renderer

Conversation

@konojunya

Copy link
Copy Markdown
Member

背景

Task 14 requires the pure engine pipeline to produce safe, deterministic standalone SVG after compilation, theme resolution, layout, and routing.

実装方法

  • Resolve requested themes and icons with source-mapped STK6001 and STK5001 fallbacks.
  • Serialize groups, all node shapes, routed edge kinds and markers, labels, details, embedded catalog icons, provenance, and accessible metadata without host I/O.
  • Escape authored text, restrict references to the local arrow marker, and place edge labels deterministically outside node bounds.
  • Add canonical SVG snapshots, XML/security validation, render regression tests, and ADR-0005.

テスト方法

  • cargo +stable fmt --check
  • cargo +stable test --workspace --locked
  • canonical formatter and engine conformance suites
  • python3 scripts/validate-svg.py
  • wasm32-unknown-unknown build
  • wasm32-wasip1 numeric parity with Wasmtime 48.0.1
  • cargo +stable clippy --workspace --all-targets --all-features --locked -- -D warnings
  • warnings-as-errors rustdoc
  • Rust 1.85 workspace tests and Clippy
  • cargo llvm-cov: regions 95.50%, functions 96.95%, lines 97.07%
  • Chromium visual review of default and complete canonical SVG at fixed viewports, with zero page or console errors

Review 視点 / 懸念点

  • Confirm warning-only missing resources preserve a fallback SVG and authored diagnostic ranges.
  • Review the standalone SVG security boundary and embedded catalog-icon assumption.
  • Review deterministic edge-label collision avoidance and exact snapshot changes.

@konojunya
konojunya merged commit c56313c into main Sep 3, 2026
2 checks passed
@konojunya
konojunya deleted the jj/add-svg-renderer branch September 3, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant