Skip to content

Default to Pipeline9 and keep footprint copper fixed - #3608

Draft
seveibar wants to merge 4 commits into
mainfrom
feat/pipeline9-default-parity
Draft

Default to Pipeline9 and keep footprint copper fixed#3608
seveibar wants to merge 4 commits into
mainfrom
feat/pipeline9-default-parity

Conversation

@seveibar

@seveibar seveibar commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Use Pipeline9 for the implicit local autorouter, autorouter="default", and autorouterVersion="latest". Explicit beta_pipeline7 remains available. Raise the capacity-autorouter development dependency to 0.0.869, which includes the Pipeline9 DRC performance fix.

The migration exposed a core integration bug: footprint copper was represented both as fixed obstacles and as preloaded traces. Exclude component-owned copper without a source trace from the preloaded list, while retaining its obstacles and original Circuit JSON. This fixes the generated antenna's routing failure and restores the solder-jumper fixture from 4 vias to Pipeline7's 2. Regression checks protect the copper geometry, completed trace count, via budget, and default/version selection.

Draft: an upstream solver release and remaining quality regressions need review before enabling this default. The package dependency is still published 0.0.869. The updated snapshots and assertions require a release containing tscircuit/tscircuit-autorouter#2359; local validation uses its rebuilt bundle.

The SOT23 power-rail snapshot exposed a real simplification defect. Preloaded route roots can be net keys, while connMap.areIdsConnected() expects member IDs. The upstream fix resolves root-net keys through their existing members in the shared connMap, preserving pad handling without copying or modifying connectivity. The upstream fix reduces the ground route from 50 to 11 emitted points, total route points from 190 to 112, and vias from 9 to 8. Same-layer crossings in the original snapshot were same-net; different-net crossings were on opposite layers. The revised fixture protects both the via budget and route complexity, with its trace/pad-clearance checks unchanged.

The simplification improvement is restricted to two-layer boards. Multilayer via checks in the autorouter currently cover endpoint layers, while core emits through-hole vias on every layer. Applying the shortcut to the four-layer BGA fixture exposed contacts and increased vias. Its current routing is preserved, with added assertions for at most 6 vias and zero trace/via-clearance errors.

The differential-pair fixture exposed a validator defect in length-matching-solver, fixed in tscircuit/length-matching-solver#63 and integrated in autorouter #2359. Core's pair skew drops from 4.395931 mm to approximately 0.0000000004 mm, within the 0.05 mm requirement.

Reviewed the original 32 changed PCB/phase snapshots, then rendered and reviewed all 14 snapshots updated by the simplification fix. Current emitted via counts are:

Fixture Pipeline7 Pipeline9 with these fixes
Solder jumper 2 2
QFP16 breakout 0 3
SOT23 power rail 8 8
BGA fanout handoff 2 6
Two fanouts before global routing 11 11
Arduino reroute 114 114
Arduino center reroute 115 121
Arduino lower-middle reroute 111 114

The simplification fix reduces Arduino lower-middle rerouting from 117 to 114 vias. The shared-connMap revision preserves all records in the 27 captured core outputs, including route geometry, vias, and errors. One capture differs only in top-level record order. The large Arduino via duplication seen in earlier migration PRs is already addressed on main. Remaining parity gaps are real routing changes: the two-fanout fixture retains two new trace-clearance diagnostics (0.092/0.093 mm gaps), and some imported-board fixtures retain or gain diagnostics relative to Pipeline7. The BGA handoff removes its previous trace error but uses four extra vias.

The existing QFP topology fix in tscircuit/tscircuit-autorouter#2337 was also tested against core and restores 0 vias and 0 trace errors. That separate trial is not included in these snapshots.

Validation uses Bun 1.4.0, matching core CI. 35 focused routing/default-selection tests across 33 files passed, plus TypeScript and build, against the locally rebuilt #2359 bundle without the QFP trial. Autorouter #2359 passes 31 focused tests across 27 files. The SOT23 and four-layer BGA snapshots were also rerun without updating snapshots. A prior single-process full-suite diagnostic stalled in the large AM62L fixture and was stopped; this is not a full-suite pass. Full CI and a dependency release remain required before merging.

@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tscircuit-core-benchmarks Ready Ready Preview Sep 3, 2026 5:14am UTC

Request Review

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

This PR has been automatically marked as stale because it has had no recent activity. It will be closed if no further activity occurs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant