Skip to content

neato json parity dashboard

Differential survey of @knowvah/dot-engine neato json output vs the native dot -K neato oracle (test/corpus/json-walk.ts), semantic comparison per docs/conformance.md (±0.01 deterministic tolerance, ±0.5 for the iterative engines). Regenerate: npx tsx test/corpus/json-walk.ts neato && npx tsx test/corpus/parity-report.ts.

Summary

  • Surveyed: 762
  • pass: 687 (90.2%) · diverged (tracked): 0 · accepted (documented, won't-fix): 73
  • errors (oracle/port/timeout, excluded from scoring): 2

Diverged (0)

(none)

Accepted (73) — documented, not chased

id#diffsfirstDiffreason
13321049edge:c5381->c5382#0/_draw_/op[1].b[5]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
1436385[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
144798edge:0x00400ba6->0x00400b68#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
165258edge:Op_10->Op_35#0/_ldraw_/op[2].T[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
1949151[graph]/_draw_/op[2].P[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
199017edge:0⋯7 ❰A❱->0⋯1 'a'#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
20957323[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
2095_135525[graph]/_draw_/op[2].P[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
218322edge:c->m#0/_draw_/op[2].b[5]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
21931085[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
22391862[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
2242658[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
23432edge:node802->node6132#0/_draw_/op[2].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
241_013edge:1->6#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
2475_2283014[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
2619_28edge:I57->F7#0/_draw_/op[2].b[0]A1 drift + degenerate-clip amplification (diagnosed 2026-07-24): all 6 node positions differ only 0.13-0.18pt (within the 0.5 iterative bar); the sole over-bar values are 4 x-coords of ONE sub-point-long stub spline (I57->F7 between overlapping nodes), where clipping a near-zero-length bezier amplifies the in-bar endpoint drift to 0.81pt. Spline shape matches modulo the clip start; no port stage implicated.
26202edge:visualcron_skat_pere_archive_reciept_org->visualcron#0/_draw_/op[1].b[6]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-b158edge:FaceBack->JumpVertical#0/_draw_/op[1].b[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-b815348[graph]/_draw_/op[2].P[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-clust142cluster:cluster_c1/_draw_/op[1].p[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-grammar38edge:n10->n11#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-grdshapes439edge:n15->n16#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-Helvetica275[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-jcctree113edge:DEF2->ID2#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-mode474edge:ccsfpr2_0_1t_99->359100#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-p2edge:sleep->swap#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-sl_box2edge:node82->node86#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-sl_box_dbl2edge:node82->node86#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-sr_box2edge:node62->node63#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-sr_box_dbl2edge:node62->node63#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-Symbol296[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
graphs-url8cluster:cluster0/_draw_/op[2].P[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.i386-b102234edge:Node103->Node79#0/_draw_/op[2].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.x86-arrows_dot118edge:Z->H#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.x86-rankdir_dot132edge:4.1 BSD->8th Edition#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.x86-rankdir_dot235edge:4.2 BSD->Ultrix-32#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.x86-root_circo31581[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
linux.x86-root_twopi32621[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
macosx-arrows_dot118edge:Z->H#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-arrows_dot118edge:Z->H#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-dotsplines_dot23edge:7th Edition->Ultrix-11#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-dotsplines_dot123edge:7th Edition->Ultrix-11#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-overlap_neato114edge:Almgren->vd#0/_draw_/op[1].b[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-rankdir_dot36edge:3 BSD->4 BSD#0/_draw_/op[1].b[5]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-rankdir_dot147edge:32V->3 BSD#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-root_circo22549edge:1->189E#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-root_twopi32798[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
nshare-weight_dot36edge:7th Edition->UniPlus+#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-b102243edge:Node103->Node79#0/_draw_/op[2].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-b29425edge:Node14650->Node14649#0/_ldraw_/op[2].T[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-clust143cluster:cluster_c1/_draw_/op[1].p[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-crazy61edge:7th Edition->8th Edition#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-fig646edge:2->18#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-grammar79edge:n31->n32#0/_hdraw_/op[3].P[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-KW912edge:Act_3->Ext_2#0/_draw_/op[1].b[7]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-Latin11node:a/labelInput is Latin-1 with NO charset declaration, so the bytes are invalid UTF-8. Native dot's -Tjson then emits a MIXED-ENCODING document: attribute values (e.g. node label) are echoed as RAW Latin-1 bytes (0xe1 0xe2 ... unconverted), while the DRAWN label text (ldraw T op, via make_label) is UTF-8 (0xc3 0xa1 ...). No single decode reads both halves correctly: Latin-1 recovers the attribute but mojibakes the text, UTF-8 does the reverse (and the attribute bytes are not valid UTF-8). The port decodes the input once (utils.c latin1ToUTF8 fallback) and is internally consistent valid UTF-8 on BOTH surfaces, so it cannot reproduce the oracle's split encoding. A4 class: the oracle output is an encoding bug; the port declines to emit invalid/mixed-encoding JSON. The DECLARED charset=latin1 case (graphs-Latin1/b60) IS handled via the stoj double-encode fix; only the UNDECLARED-charset case is irreducible.
share-newarrows56edge:Z->H#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-ngk10_475edge:14->18#0/_draw_/op[1].b[2]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-pgram2073edge:Parallelogram->A#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
share-trapeziumlr1818[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-b10266edge:Node109->Node79#0/_draw_/op[2].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-b29357edge:Node14650->Node14649#0/_ldraw_/op[2].T[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-clust143cluster:cluster_c1/_draw_/op[1].p[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-crazy79edge:7th Edition->8th Edition#0/_draw_/op[1].b[1]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-fig646edge:2->18#0/_draw_/op[1].b[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-Latin11node:a/labelIdentical mechanism to share-Latin1: undeclared-charset Latin-1 input makes native -Tjson emit raw-Latin-1 attribute bytes alongside UTF-8 drawn text (mixed, invalid). The port's consistent-UTF-8 output cannot match both halves. A4 class.
windows-newarrows56edge:Z->H#0/_draw_/op[1].b[ptCount]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-ngk10_475edge:14->18#0/_draw_/op[1].b[2]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-pgram2833[graph]/_draw_/op[2].P[4]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-shells14edge:Thompson->Mashey#0/_draw_/op[1].b[5]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-train112edge:st10->st0#0/_ldraw_/op[2].T[0]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-trapeziumlr1777[graph]/_draw_/op[2].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.
windows-viewfile5edge:printf->write#0/_hdraw_/op[3].P[3]layout drift inherited from the neato xdot engine track: id diverged there with the documented accepted mechanism (iterative drift / engine tail classes, engine registry + decision journal); json re-emits the same layout. Journal 2026-07-24.

Errors and timeouts (2)

idmessage
2108
2222oracle exit null

Passing ids (687) are omitted for brevity — the full roster is in json-parity-neato.json.