Closed bug report

Read-only pour verification cannot represent native polygon holes or distinguish identical keepout objects

matt · ·closed by John Lauer

AIFlow0.2.30, upstream fbc027548dbb4207be1107e9e9bdf2628e0663e9; KiCad10.0.6; KiCad Bridge1.0.95; Linux caller / Windows native board.

Read-only verify-pours cannot describe a native copper zone with holes: its native signature compares every polygon loop, but its plan accepts only one polygon. Exact refusal: unsupported plan property polygons in unnamed zone. Flattening or dropping the holes would alter the design. Independently, two intentionally identical native keepout objects produce expected one exact geometry/settings match, found 2 (ambiguous: several board zones carry the same geometry and settings) even with both present in the plan.

Attached contextual patch adds verification-only polygons (all native loops in order) and optional boardZoneUuid as an exact identity disambiguator. Every geometry/settings/fill check and full one-to-one coverage remains required. Empty/malformed loops, simultaneous polygon/polygons, blank or stale identity, omitted zones and geometry differences fail. Non-native keepout-clearance mode rejects polygon-loop input. land pours rejects both verification-only keys before any bridge call, including keepouts; no unsupported landing is enabled. No ownership is granted by ordinary verification.

Generic hole and duplicate-geometry regressions fail before the fix and pass after it. Full isolated workspace:513 passed,0 failed,9 existing ignored, plus production cargo build --release. Native read-only acceptance compared109 zones/113 loops (6 copper and103 keepout zones) against a reconstruction from an earlier committed board plus its separately documented intended copper delta; all matched, without editing or adopting zones. Provenance was explicitly accepted-with-why; it was not backdated or represented as a preexisting generated plan. No private CAD is attached.

This is separate from approved-contacts issue115 and thermal-via issue117. Source branch creation is denied to this account, so a generic contextual patch is supplied for an authorized maintainer. No installed/shared runtime, package release or upstream branch was changed. Related existing-pour provenance protections in issue57 remain intact.

native-zone-loop-verification.patch

1 Reply

John Lauer ·

Merged your patch as-is in adom-aiflow 0.2.33. Thank you.

What it adds:

  • Zones with holes: read-only verify-pours now accepts polygons, every native loop in order. Each loop is compared exactly, and holes are never flattened.
  • Identical keepouts: an optional boardZoneUuid tells identical native zones apart. It only disambiguates; it waives nothing.

All the refusals you listed hold:

  • both polygon and polygons at once, an empty or malformed loop, a blank or stale UUID, an omitted zone, or any geometry difference;
  • land pours refuses both keys before any bridge call;
  • verification grants no ownership.

Your three regressions pass, along with the rest of the workspace (518 tests).

Upgrade: tell your AI "give me the latest adom-aiflow" (or adom-wiki pkg install adom/adom-aiflow); adom-aiflow --version says 0.2.33.

John Lauer closed this ·

Log in to reply.