neato parity dashboard
Differential survey of @knowvah/dot-engine neato xdot output vs the native dot -K neato -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 neato && npx tsx test/corpus/parity-report.ts.
Summary
- Surveyed: 762 (generated 2026-07-25T03:55:20.021Z)
- pass: 689 (90.4%) · diverged (tracked): 0 · accepted (documented, won't-fix): 3 · accepted (A1-drift class): 68
- oracle-error: 1 · port-error: 0 · timeout: 1
Accepted deltas (3) — 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 |
|---|---|---|---|---|
2239 | 1862 | A1 | 1862 draw-op diffs (was 3838 before the pinned-node fixed-packing protocol was ported). 7-component disconnected layout with a pinned legend (pos=0,0!); every node box is bit-identical to the oracle (0 size diffs) — the divergence is component PLACEMENT. With C's node positions injected the port's polyomino cell counts match C exactly (81,66,42,57,25,21,6,6,6,6), so the packer is byte-faithful; the residual is float32 stress-majorization drift in edge splines amplified through the discrete greedy packer (a few drifted cells flip a later component's slot). Not auto-verified by attribution: injection is per-component pre-pack, so on a multi-component graph it re-packs (double-transform) rather than reproducing C. | known-divergences.md#a1-drift-iterative-engines |
2619_2 | 8 | A1 | 0.81pt on 4 x-coords of one sub-point stub spline; nodes 0.13-0.18pt | plans/decision-journal.md 2026-07-24 T5: in-bar drift amplified by degenerate near-zero-length spline clip |
241_0 | 13 | A9 | 13 draw-op diffs confined to edges 1->6 and 2->3; edge 1->6 routed as a 14-pt multispline corridor (port) vs the native plain per-member fallback (8-pt) (unfilled_bezier[ptCount]: 8 vs 14), the rest its consequent arrowhead points (<=5.8pt). Same graph, edge and ptCount signature as the accepted twopi/circo 241_0: CDT cocircular incircle tie flipped by libm sin/cos 1-ULP (V8 vs Apple libm) — the port's multispline routing is faithful; the tie is irreducible. | known-divergences.md#a9-engine-track-twopi-circo |
Accepted class: A1-drift — computed, not enumerated
Membership is computed at report time from the injection-attribution harness output (D2) — every diverged id whose native pre-routing position exonerates it (verdict: drift-exonerated) is subtracted from the Diverged table below and counted in Summary; an id that starts passing outright leaves the class silently on the next report regen.
- A1-drift: 68 members — full per-id evidence in
attribution-neato.json. Rationale: Known divergences.
Diverged (0)
(none)
Errors and timeouts (2)
| id | status | message |
|---|---|---|
2222 | oracle-error | spawnSync dot ETIMEDOUT |
2108 | timeout |
oracle errors: 7 native-crash (documented, excluded) / 0 timeout-flake (excluded this run, note to retry) Passing ids (689) are omitted for brevity — the full roster is in parity-neato.json.