Commits included in published releases. Unpublished intermediate commits are private. Showing matches from the latest 100 commits ending at this release.
Merge main 0a9b652b into ipc-migration: 7 GUI-parity commits, IPC plumbing preserved Andy Haas · Sep 29, 2026, 10:11 PM UTC
c7f9cab06f89GUI parity: a plan run keeps the user's "Fix DRC settings" choice and never overrides an untick Andy Haas · Sep 29, 2026, 7:49 PM UTC
0a9b652b44dbGUI parity: a replayed bga_fanout couples the recorded pairs at the recorded gap Andy Haas · Sep 29, 2026, 7:41 PM UTC
bf8e2a4b510fGUI parity: the flag enumeration covers route_diff, route_planes and bga_fanout Andy Haas · Sep 29, 2026, 6:19 PM UTC
991a01e16e65GUI parity: --no-bga-zones U1 U3 disables only those zones in a replay Andy Haas · Sep 29, 2026, 6:03 PM UTC
ef9847f83ae2GUI parity: --no-fix-drc-settings replays per step, as route.py runs it Andy Haas · Sep 29, 2026, 5:58 PM UTC
6d28d25b4de2GUI parity: a replayed route --component routes that component's nets, not every net Andy Haas · Sep 29, 2026, 5:54 PM UTC
7595437b818cGUI parity: every route.py flag reaches a replayed plan or says why not Andy Haas · Sep 29, 2026, 5:47 PM UTC
4111d8a4a7d8Merge main 1365680f into ipc-migration: kicad_drc_compare banner, test_459, gate grading Andy Haas · Sep 29, 2026, 7:24 PM UTC
6406b8f7951dGrade what a chain introduced; three tests red or flaky on the Modal suite Andy Haas · Sep 29, 2026, 7:07 PM UTC
1365680f48eetest_gui_livechain_rp2350: judge what the chain INTRODUCED, not the fixture Andy Haas · Sep 29, 2026, 6:42 PM UTC
7df275a0a323gui_parity harness: GUI snapshots carry the .kicad_pro the GUI wrote Andy Haas · Sep 29, 2026, 6:21 PM UTC
dcf0c778a141Merge main 4a8a077e into ipc-migration: test_713's about_tab entry was already here Andy Haas · Sep 29, 2026, 5:56 PM UTC
72aad653fb5dMerge main into ipc-migration: 655 commits (023d3f79..3720e37f), IPC plumbing preserved Andy Haas · Sep 29, 2026, 5:55 PM UTC
6fad7c06a6da#1080: register the Donate button's shimmer clock in the wall-clock census Andy Haas · Sep 29, 2026, 5:16 PM UTC
4a8a077efbb5Site: the solvers pages explain the dual with worked examples Andy Haas · Sep 29, 2026, 4:01 PM UTC
3720e37f1d11#1080: GitHub Sponsors, and a shimmering Donate button in the README and the About tab Andy Haas · Sep 29, 2026, 3:58 PM UTC
3be3745382e6Site: the pages say daily, which is how often the workflow runs Andy Haas · Sep 29, 2026, 1:38 PM UTC
75f2596e8c68Landing page: say what the page is, not how to install Andy Haas · Sep 29, 2026, 1:36 PM UTC
ee39870e1cecSite: publish "Shadow prices as forces" at /solvers/dual/, linked from the solvers page and the landing page Andy Haas · Sep 29, 2026, 1:30 PM UTC
dfe3c0d8e8b7set30: 21 dense-parallel-bus boards (DDR SoC, retro CPU/DRAM, PCIe x16) Andy Haas · Sep 29, 2026, 1:26 PM UTC
51b4716924bcsolvers page: buttons and dropdowns name their text colour Andy Haas · Sep 29, 2026, 1:23 PM UTC
7c907252bb9fMerge PR #1079: score.blocking is a count or it is unmeasured (#1071 #1075 #1076 #1077 #1078) Andy Haas · Sep 29, 2026, 11:50 AM UTC
88a4a86b3a01#1071 follow-up: the PR's leftovers -- row numbering, the two readers outside the rule, a wording-bound test Andy Haas · Sep 29, 2026, 11:20 AM UTC
aa73cf1846e0#1071 review findings: a count fits a float; a non-list ungraded names nothing Rob Boerman · Sep 29, 2026, 8:30 AM UTC
f3739e88c295#1071 verifier findings: isfinite on floats only; a non-list unknown names no component Rob Boerman · Sep 29, 2026, 7:41 AM UTC
f48cc5e53124docs: a blocking that is not a count is ungraded on the film and refused by record (#1071 #1077) Rob Boerman · Sep 29, 2026, 7:38 AM UTC
9f40ecdb6a6bmutate_946: the #1077 film-mirror rows Rob Boerman · Sep 29, 2026, 7:27 AM UTC
2fc96c3248f4mutation rows for #1071 #1075 #1076 #1077 #1078 (mutate_936, mutate_946) Rob Boerman · Sep 29, 2026, 7:27 AM UTC
04af684bc0f6placement_run: a result's blocking is a non-negative integer, not a bool (#1075) Rob Boerman · Sep 29, 2026, 7:25 AM UTC
f7adf1899cedmovie_attempts: a blocking that is not a count is drawn ungraded, never raised or admissible (#1077) Rob Boerman · Sep 29, 2026, 7:25 AM UTC
230a8c89bee2converge: blocking is a count or it is unmeasured -- one rule for rank, verdict and record (#1071 #1075 #1076 #1078) Rob Boerman · Sep 29, 2026, 7:25 AM UTC
d321fe990782solvers page: embed the K28 and K51 whole-route films (hosted on Google Drive, not in the repo) Andy Haas · Sep 29, 2026, 4:18 AM UTC
43542878f5basolvers page: demos for every stage (ends, ends search, polish, snap, audit/gate/feedback, route) Andy Haas · Sep 29, 2026, 3:55 AM UTC
dcaf11592902solvers page: second id collision (h2#loop vs svg#loop) blanked the negotiation figure Andy Haas · Sep 29, 2026, 3:13 AM UTC
baa820595934solvers page: section anchor id collided with the LP game's svg#lp (game rendered blank) Andy Haas · Sep 29, 2026, 3:13 AM UTC
3443ba3c684cSite: publish the CP-SAT/HiGHS whole-route explainer at /solvers/ and link it from the landing page Andy Haas · Sep 29, 2026, 3:09 AM UTC
c1a5091b1304Merge fix-1074: the outline chainer takes the nearest endpoint, so fine-arc cut-outs stop vanishing (#1074) Andy · Sep 29, 2026, 2:59 AM UTC
e21613af58f8kicad_parser: chain Edge.Cuts rings by the NEAREST endpoint (#1074) Andy · Sep 29, 2026, 12:42 AM UTC
ebced74c585eMerge fix/1063-unflashed-pads: the #1063 collapse keeps unflashed pad joints and runs once, at the end of route.py Andy Haas · Sep 29, 2026, 2:16 AM UTC
cfc2a1afb73c#1063: route.py runs the strict collapse once, at the end of the run Andy Haas · Sep 29, 2026, 2:16 AM UTC
184d31a127c3#1063: the strict collapse never cuts a track back to an unflashed annulus Andy Haas · Sep 29, 2026, 2:15 AM UTC
3e8f278e92eeMerge PR #1073: seeder gates tell the truth (#1044 #1066 #1068 #1060) Andy · Sep 28, 2026, 11:53 PM UTC
c7c1bc84ef56mutate_756: re-anchor bga-cwd-probe-guard-dropped to manage_vias' elif Andy · Sep 28, 2026, 8:43 PM UTC
64df3f582e8afloorplan-intent: a courtyard waiver does not spend the overlap budget (#1060) Rob Boerman · Sep 28, 2026, 7:25 PM UTC
257fb4fe9e02Merge fix-1063: route.py's cleanup removes what check_weird calls removable (#1063) Andy · Sep 28, 2026, 7:25 PM UTC
8ee165034a41Merge fix-1069: re-grade the shipped board so the merged route tally stops losing nets (#1069) Andy · Sep 28, 2026, 7:25 PM UTC
7058da79037eMerge fix-1070: same-net via rings keep the drill hole-to-hole minimum; rescue fanout uses the run's h2h (#1070) Andy · Sep 28, 2026, 7:25 PM UTC
4f42a9d61543#1063: route.py's cleanup removes what check_weird calls removable Andy · Sep 28, 2026, 7:24 PM UTC
06efcdad9abatest_718: the mutation-battery pin counts the three this PR adds (59 -> 62) Rob Boerman · Sep 28, 2026, 6:58 PM UTC
0f7a03f430e5Same-net via rings keep the drill hole-to-hole minimum; rescue fanout uses the run's h2h (#1070) Andy · Sep 28, 2026, 5:21 PM UTC
0c5942f71426#1069: re-grade the shipped board so the merged route tally stops losing nets Andy · Sep 28, 2026, 5:20 PM UTC
7a0547880d4aplacement_ab_baseline: re-record for #1044 -- the keep-out keys and the band-edge rows Rob Boerman · Sep 28, 2026, 4:51 PM UTC
35aa14bbcbfe#1044, verifier round 1: the edge refusal names a rule area's real next move; batteries gate on green Rob Boerman · Sep 28, 2026, 4:36 PM UTC
33bb53f05f1a#1044: the inherited-band arm keeps C6 in the band on the written board Rob Boerman · Sep 28, 2026, 4:20 PM UTC
e93ffbcbc438#1066 (b), verifier round 2: leaving the radius is not the rung's fix; a shared-net target Rob Boerman · Sep 28, 2026, 4:11 PM UTC
d8cc204dd458#1044: the edge seat honours rule-area keep-out bands; place_seed names band pads it placed Rob Boerman · Sep 28, 2026, 4:07 PM UTC
d6b7abb87e33#1060, verifier round 1: the waiver re-asks holes, stays out of the body gate, is always graded Rob Boerman · Sep 28, 2026, 3:48 PM UTC
be78d46db881mutate_975: disambiguate legality-metrics-overlap-not-read Rob Boerman · Sep 28, 2026, 3:46 PM UTC
31bcab6b6c21#1060: fixed_poses[].accept_courtyard_overlap, a named courtyard waiver Rob Boerman · Sep 28, 2026, 3:26 PM UTC
05d623987269#1066 (b), verifier round 1: the rung asks the FINDING, not the IC's claim Rob Boerman · Sep 28, 2026, 3:26 PM UTC
973a7f277374placement_ab_baseline: record the five repair-decaps-* rows (#1066 b) Rob Boerman · Sep 28, 2026, 2:55 PM UTC
eaa80febc3a2mutate_1066: four rows for the decap rung Rob Boerman · Sep 28, 2026, 2:14 PM UTC
e0e69d48d5a8#1066 (b): --repair-decaps, the opt-in decap rung of place_seed --repair Rob Boerman · Sep 28, 2026, 2:12 PM UTC
d576d2705aa7#1068, verifier round 2: pin the count's tolerance at the exact limit; a prune-view row Rob Boerman · Sep 28, 2026, 2:02 PM UTC
1859bd6ecc78#1068, verifier round 1: the licence reads the gate's view; four arms pinned Rob Boerman · Sep 28, 2026, 1:45 PM UTC
484551926db0#1066: pin the two attribution channels on their own Rob Boerman · Sep 28, 2026, 1:43 PM UTC
ae87dca3660emutate_1066: re-anchor the two attribution rows on the round-2 code; README says per finding Rob Boerman · Sep 28, 2026, 1:32 PM UTC
276f221555ce#1066 (a), verifier round 2: compare per FINDING, attribute by counterfactual Rob Boerman · Sep 28, 2026, 1:31 PM UTC
2ce1ebae2f23#1068: a prune arm -- re-seating C4 under 0.8mm limits is KEPT on the tether claim Rob Boerman · Sep 28, 2026, 1:09 PM UTC
f83ec2c21b9f#1068: the re-seat's intent basis counts the tether rules, once per claim Rob Boerman · Sep 28, 2026, 1:07 PM UTC
785316a6e803#1066 (a), verifier round 1: a move that creates an error is not a repair Rob Boerman · Sep 28, 2026, 12:46 PM UTC
7376be640b01mutate_975: re-anchor the three grade_delta claim rows on violation_claim Rob Boerman · Sep 28, 2026, 12:37 PM UTC
272b4aed7c95#1066 (a): repair reports a violator repaired only when its charged grade error is gone Rob Boerman · Sep 28, 2026, 12:30 PM UTC
cb39bd0d0ec6Stress tooling: describe the retired staged drivers as retired Andy · Sep 28, 2026, 12:20 PM UTC
c26a5b5c8f48Merge PR #1072 (late commit): measure.py counts idling on a background job as waiting Andy · Sep 28, 2026, 11:10 AM UTC
4bd13e2acc63Merge PR #1072: pcb-free-agent: one agent-driven place/route skill replaces the staged placement and combined drivers Andy · Sep 28, 2026, 11:06 AM UTC
71384c00d39fmeasure.py: idling on a background job is waiting, not model time Rob Boerman · Sep 28, 2026, 10:52 AM UTC
ebe061d3ecd9Review nits: no citation of a retired skill file, driver mentions in past tense Andy · Sep 28, 2026, 10:25 AM UTC
a18015fe496bpcb-free-agent: restore what three gap checks found missing from the skill Rob Boerman · Sep 28, 2026, 8:33 AM UTC
c8c205c44e59Review fixes: verifier lens files, grade/measure/make_unplaced correctness, no promises only the drivers kept Rob Boerman · Sep 28, 2026, 7:07 AM UTC
f2c214f5a1e4Skill-claim gates, mutation batteries and the GUI fake run after the retirement Rob Boerman · Sep 28, 2026, 5:14 AM UTC
9acfa55e9fe6test_pcb_free_agent_scripts: each harness script with a positive and a negative control Rob Boerman · Sep 28, 2026, 3:51 AM UTC
ac58591df81dTests after the retirement: repoint board_score, keep every test of remaining code Rob Boerman · Sep 28, 2026, 3:50 AM UTC
e6676c39c640Repoint the routing/review skills, converge's lens refusals and the stress scripts after the retirement Rob Boerman · Sep 28, 2026, 3:19 AM UTC
be5283f29e2eDocs: list /pcb-free-agent; drop citations of the retired skills' references Rob Boerman · Sep 28, 2026, 3:19 AM UTC
376a52103775Placement tab: Place / Place + Route run /pcb-free-agent place / full Rob Boerman · Sep 28, 2026, 3:19 AM UTC
42208d2baf52Retire plan-pcb-placement and plan-pcb-placement-and-routing for pcb-free-agent Rob Boerman · Sep 28, 2026, 3:19 AM UTC
1e475a28e7c1pcb-free-agent: one skill, three modes (full / place / route); the agent chooses its steps Rob Boerman · Sep 28, 2026, 3:15 AM UTC
464350fc256bboard_score moves to py_tools/, beside the checkers it runs Rob Boerman · Sep 28, 2026, 3:15 AM UTC
580517b15e4d#1057: krt_placement keeps each board's newest 3 runs and stays out of git Andy · Sep 27, 2026, 9:32 PM UTC
d10dc7121d5c#995 (finding 1): a part's own net-less copper against its own pad's net is disclosed Andy · Sep 27, 2026, 9:14 PM UTC
5380d9a1467c#995 (finding 2): kicad_drc_compare exits 2 when a board was not compared Andy · Sep 27, 2026, 8:59 PM UTC
d38b9118bf48#1045: a track ending inside a via's barrel is one fragment in the strict view Andy · Sep 27, 2026, 8:24 PM UTC
2c2d57c6253f#1046: the sampled foreign-pad checks see F&B.Cu pads Andy · Sep 27, 2026, 8:17 PM UTC
5a75afac717emetrics: spread measured intervals over their hours; direct zips are not PCM installs Andy · Sep 27, 2026, 7:16 PM UTC
6eea0a9dd0ccmetrics: place each release's downloads over its reign, not publish-to-today Andy · Sep 27, 2026, 7:03 PM UTC
a433a25a6f2amutate_1051: the run of record after the #1059 review -- 156 rows, 156 KILLED Andy · Sep 27, 2026, 3:37 PM UTC
049438943876Merge PR #1059: declared arrays, fixed poses, rigid blocks and decap tethers, enforced by the seeder and quench Andy · Sep 27, 2026, 2:24 PM UTC
64ade4cde86a#1059 review: the row-axis docs, the inert-gate message, the zoned-row miss Andy · Sep 27, 2026, 2:23 PM UTC
21b3de07233b