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 | #diffs | class | bound | ref |
|---|---|---|---|---|
2095_1 | 2197 | A1 | <= 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_0 | 41 | A9 | 41 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_2 | 989 | A9 | 989 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-tree | 10 | A9 | 10 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)
| id | status | message |
|---|---|---|
1447 | oracle-error | Command failed: dot -K circo -Txdot https://gitlab.com/graphviz/graphviz/-/blob/main/tests/1447.dot |
1652 | oracle-error | spawnSync dot ETIMEDOUT |
1880 | oracle-error | Command failed: dot -K circo -Txdot https://gitlab.com/graphviz/graphviz/-/blob/main/tests/1880.dot |
2222 | oracle-error | spawnSync dot ETIMEDOUT |
graphs-b103 | oracle-error | spawnSync dot ETIMEDOUT |
2108 | timeout |
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.