Skip to content

circo parity dashboard

Differential survey of @knowvah/dot-engine circo xdot output vs the native dot -K circo -Txdot oracle over the dot-track SVG-conformant corpus set (semantic draw-op comparison at ±0.01 — see test/golden/compare-xdot.ts; per docs/conformance.md, not byte equality). Regenerate: npx tsx test/corpus/engine-walk.ts circo && npx tsx test/corpus/parity-report.ts.

Summary

  • Surveyed: 762 (generated 2026-07-25T02:59:13.532Z)
  • pass: 752 (98.7%) · diverged (tracked): 0 · accepted (documented, won't-fix): 4
  • oracle-error: 5 · port-error: 0 · timeout: 1

Accepted deltas (4) — documented, not chased

Deliberate, root-caused differences we have chosen not to make conformant. Source of truth: test/corpus/accepted-divergences-engines.json; rationale in Known divergences. Excluded from the diverged table below.

id#diffsclassboundref
2095_12197A1<= 66.12pt (3 rigid block rotations)plans/decision-journal.md 2026-07-24 T3: getRotation closest-node exact-tie knife edge; injection A/B proved irreducible (2197 diffs -> 0)
241_041A941 draw-op diffs; Delta~0.2pt on edge 1->2's routed bezier (unfilled_bezier[1]: 221.92 vs 222.12)known-divergences.md#a9-engine-track-twopi-circo
2475_2989A9989 draw-op diffs confined to one 28-node 590_ component (18 nodes move, max 296.7pt; 10744/10762 nodes bit-identical). Mechanism: circo getRotation->closestNode (circpos.c:73-92) cocircular hypot tie — at the bit-identical placement offset the two candidate distances round 2 ULP apart between V8 Math.hypot and Apple libm, flipping the strict < and rotating/reflecting the sub-block ~20deg. Block tree, circle order, and all centerAngles bit-identical; CR-hypot policy previously refuted. Repro: .agent-notes/circo-2475-590-repro.dot; RCA: .agent-notes/circo-b81-2475-rca.md.known-divergences.md#a9-engine-track-twopi-circo
windows-tree10A910 draw-op diffs on one fan edge (node2->node8): circo trig places node2.y a single ULP above node8.y around the symmetric value 18.0 (18.0000000000000320 vs 18.0), flipping closestSide's dyna head-port TOP/BOTTOM at the exact tie; node boxes and all other edges bit-identical.known-divergences.md#a9-engine-track-twopi-circo

Diverged (0)

(none)

Errors and timeouts (6)

idstatusmessage
1447oracle-errorCommand failed: dot -K circo -Txdot https://gitlab.com/graphviz/graphviz/-/blob/main/tests/1447.dot
1652oracle-errorspawnSync dot ETIMEDOUT
1880oracle-errorCommand failed: dot -K circo -Txdot https://gitlab.com/graphviz/graphviz/-/blob/main/tests/1880.dot
2222oracle-errorspawnSync dot ETIMEDOUT
graphs-b103oracle-errorspawnSync dot ETIMEDOUT
2108timeout

oracle errors: 10 native-crash (documented, excluded) / 5 timeout-flake (excluded this run, note to retry) Passing ids (752) are omitted for brevity — the full roster is in parity-circo.json.