|
1 | | -6e88568 2026-07-15 parity sweep 6e09425..6e88568 (pr392 cross-class merge + plane-edge/grader/cp1252/partial-replay). No wiring gaps; the previously-open net_clearances asymmetry is now RESOLVED by pr392 Task 1b. |
| 1 | +810ce7d 2026-07-17 parity sweep 6e88568..810ce7d (the #217/#412 connectivity |
| 2 | +wave, ~37 commits: Tier-1 levers, T5 custody + SE member fallback, net-tie |
| 3 | +support, rescue-window fence, full-stack layer normalization, #416 terminal |
| 4 | +connector, #418 pad stroke extent, #419 mimalloc purge, #420 oracle fast |
| 5 | +project, #422 static bitmap / Rust 0.18.2, #265 per-cluster swaps, PR415 |
| 6 | +connection_width grading merge). Outcome: parity CONFIRMED via the no-wx |
| 7 | +gates + placement audit; no wiring gaps found. |
2 | 8 |
|
3 | | -AUDIT: 17 commits swept. The only new engine surface is pr392's two flags |
4 | | -(--net-clearances, --keep-input-copper); both are threaded through BOTH fronts |
5 | | -plus the manifest converter and parity map. Everything else (plane-edge tap |
6 | | -clamp, grader unify, cp1252 console, partial_replay tool) is shared-engine / |
7 | | -grader-only / tooling with no GUI surface. |
| 9 | +AUDIT: no new CLI flags survive at HEAD. The one flag added during the wave |
| 10 | +(--failed-first-restart, with full CLI/GUI/manifest/parity threading) was |
| 11 | +REVERTED after measuring zero real-board wins — its threading went with it. |
| 12 | +Every behavioral change of the wave lives inside shared engine functions |
| 13 | +(batch_route, batch_route_diff_pairs, create_plane, the |
| 14 | +route_disconnected_planes repair path, close_soft_joints, |
| 15 | +apply_single_ended_layer_swaps, plane_pad_tap/try_tap_pad), so both fronts |
| 16 | +inherit them with no per-front wiring: |
| 17 | + * PlaneComponentOracle: internal to the shared repair path (plane_oracle |
| 18 | + param defaults None; oracle-less callers byte-identical). |
| 19 | + * T5 casualty reconcile + coverage gate + honest sweep: inside batch_route; |
| 20 | + additive results keys only. |
| 21 | + * Diff pair_reports / casualty_reconcile / single_ended_fallback: inside |
| 22 | + batch_route_diff_pairs; keys mirrored into GUI results_data by the same |
| 23 | + engine code. |
| 24 | + * Full-stack layer normalization: inside the three shared engine functions |
| 25 | + (route_disconnected_planes exempt by design, documented inline). |
| 26 | + * #416 connector + narrow_pad_joint: close_soft_joints + check_weird |
| 27 | + (shared cleanup/checker). |
| 28 | + * #265 per-cluster assignment: PHASE 3 of apply_single_ended_layer_swaps. |
| 29 | + * rust_alloc.py (MIMALLOC_PURGE_DELAY=0): wired at every CLI entry point |
| 30 | + AND both GUI call sites (per #419 agent; spot-verified imports). |
| 31 | + * Rust 0.18.2 static bitmap: below the Python API, front-agnostic; |
| 32 | + neutrality proven bit-identical (total_iterations). |
8 | 33 |
|
9 | | -RESOLVED THIS PASS (was the standing OPEN ASYMMETRY in the prior marker): |
10 | | - * net_clearances CLI/GUI divergence is CLOSED. pr392 Task 1b (e73d9ed) makes |
11 | | - the CLI auto-read the non-Default netclass clearances from the board's |
12 | | - sibling .kicad_pro and build net_clearances (route.py: "Auto-read netclass |
13 | | - clearances ... from the board's .kicad_pro"), AND stops clamping the |
14 | | - netclasses DOWN in the output (fix_kicad_drc_settings: clamp removed / |
15 | | - gated). This is exactly the CLI auto-build 5b4c191 aspired to. Both fronts |
16 | | - now reserve each net's OWN class clearance as an obstacle (KiCad cross-class |
17 | | - max(A,B)); neither rewrites the netclasses to hide violations. CLI and GUI |
18 | | - are behaviorally aligned on multi-class boards. Task 1a (ae2453b) also |
19 | | - honors cross-class clearance for IN-RUN mixed-class copper in the shared |
20 | | - engine -> both fronts free. |
21 | | - |
22 | | -WHAT WAS CHECKED (all parity-clean): |
23 | | - * --net-clearances: CLI argparse (route.py) + engine (routing_config |
24 | | - set_net_clearances / obstacle_clearance) + GUI builds it from the live |
25 | | - board's netclasses (swig_gui.py, settings_persistence.py) + manifest_to_plan |
26 | | - special-cases it (tests/stress/manifest_to_plan.py:84) + test_gui_engine_ |
27 | | - parity config map. Auto-read from .kicad_pro is in the SHARED engine path, so |
28 | | - both fronts get it. |
29 | | - * --keep-input-copper: CLI flag (route.py:1951, action=store_true default |
30 | | - False) -> batch_route kwarg -> cleanup_pipeline (shared) -> GUI reaches it |
31 | | - via the same cleanup call. route_diff carries the mirrored --keep-input-copper. |
32 | | - * plane-edge tap clamp (2448070): clamp_tap_via_to_edge lives in shared |
33 | | - plane_pad_tap.py / route_planes, reached by both fronts (planes_gui path). |
34 | | - * grader unify (61e1d63), cp1252 console (be5f126), partial_replay (1c6b99d): |
35 | | - grader / entry-point / test-tooling only, no routing-engine or GUI surface. |
36 | | - |
37 | | -GATES RUN GREEN: |
38 | | - * test_manifest_plan_parity.py: 6201 flag-checks / 157 manifests, 0 mismatch; |
| 34 | +GATES RUN GREEN AT HEAD: |
| 35 | + * test_manifest_plan_parity.py: 6201 flag-checks, 0 mismatches; |
39 | 36 | param->control resolution 12/12. |
40 | | - * test_cli_postpass_coverage.py: 4 registered, 8 in active use, 0 failures |
41 | | - (bga/qfn run_drc remains the one acknowledged CLI-only report-only pass). |
42 | | - * test_gui_engine_parity.py (KiCad python) NOT re-run this pass (no wx/pcbnew in |
43 | | - this session); the no-wx gates + the shared-engine placement of both new flags |
44 | | - cover the wiring. Next audit should re-run it on a multi-class board now that |
45 | | - the CLI auto-builds net_clearances, to confirm the copper sets converge (the |
46 | | - prior marker's ~264/293 copper delta was attributed to this asymmetry, now |
47 | | - resolved -> expect the delta to shrink toward the A*-tie-break/UUID floor). |
| 37 | + * test_cli_postpass_coverage.py: 0 failures (bga/qfn run_drc remains the |
| 38 | + one acknowledged CLI-only report-only pass). |
48 | 39 |
|
49 | | -STILL NOT DIRECTLY GUI-ENGINE-TESTED (structurally covered by the no-wx gates): |
50 | | -a diff route through the GUI engine and a QFN GUI fanout; plus the multi-class |
51 | | -net_clearances convergence check noted above. Next audit picks up from this marker. |
| 40 | +NOT RUN THIS PASS: tests/gui_parity/test_gui_engine_parity.py (needs KiCad |
| 41 | +python/wx). No batch_route kwarg was added or removed at final HEAD, so the |
| 42 | +76-key param set is unchanged from the prior marker. Carried over from the |
| 43 | +prior marker and still pending a KiCad-python session: the multi-class |
| 44 | +net_clearances convergence check, a GUI-engine diff route, and a QFN GUI |
| 45 | +fanout. Next audit picks up from this marker. |
0 commit comments