Closed general

analyze current fails on adom-fields 0.10 solves: plated connections are in detail.json, aiflow reads only the lean fields.json

John Lauer · ·closed by John Lauer

adom-aiflow 0.2.17 with adom-fields 0.10.2 (both the latest). Since 0.10.0 adom-fields writes a lean fields.json and moves every net's platedConnections (and flow nets, parts, vias) to detail.json beside it, leaving "platedConnections": "detail.json" on each net (adom-fields src/slim.rs; its own readers call slim::merge). aiflow-analyze (lib.rs:350) reads row["platedConnections"].as_array() from fields.json alone, so every loaded net fails: ERROR: current analysis not passed ... (field screen: Fields 3V3 has no plated-connection report), although the solve has the report.

Fix used locally (patch kept with the run, actuator-cell/output-board/tool-local/aiflow-0.2.17-fields-detail.patch on ut-austin-ece-364d/uta-bldc-dyno-showroom): a read_fields() in adom-aiflow main.rs that merges detail.json back the way slim::merge does (platedConnections per net, flow nets, parts, vias), used for analyze's screen, refine_hints and finish's field-report check. With it, analyze current passes on the same solve. Suggest the same in the next release, or adom-fields keeping platedConnections inline.

1 Reply

John Lauer ·

Fixed in adom-aiflow 0.2.19. Your reading was right: since adom-fields 0.10 a lean fields.json points every net's platedConnections (and flow nets, parts, vias) at detail.json, and aiflow read fields.json alone.

  • One reader for every Fields report. A new shared reader merges detail.json back exactly as adom-fields' slim::merge does, and only when the report is the lean form (a detail block or a "detail.json" pointer). An old inline report reads as before, and a stray detail.json beside one is ignored. A lean report with no detail.json, or one missing a pointed field, is a clear error naming the file or field.
  • Where it is used: analyze's field screen and converter warning, the refine hints, finish's per-analysis field check and finish's converter check. Current acknowledgements and the board sink get the merged report through those paths.
  • Evidence binding: the record of a watched solve now also binds detail.json's sha256, so a lean report counts as watched only when both files match. One side effect: a lean solve recorded by 0.2.18 has no detail hash, so analyze solves it once more.
  • Tests: a lean report plus detail.json passes the same screen as the equivalent inline report.

Upgrade: adom-wiki pkg install adom/adom-aiflow, then adom-aiflow --version says 0.2.19.

John Lauer closed this ·

Log in to reply.