Skip to content

Use B01 with regional reroute fallback in Pipeline9 - #1809

Open
seveibar wants to merge 5 commits into
agent/joint-drcfrom
agent/pipeline9-b01-high-density
Open

Use B01 with regional reroute fallback in Pipeline9#1809
seveibar wants to merge 5 commits into
agent/joint-drcfrom
agent/pipeline9-b01-high-density

Conversation

@seveibar

Copy link
Copy Markdown
Contributor

What changed

  • Replaces Pipeline9's ordinary high-density stage with an immutable-first B01 adapter.
  • Loads pre-routed copper into B01 as layer-aware route obstacles.
  • When B01 fails, clips every pre-routed segment that enters that capacity region, makes those segments ordinary port pairs, and solves the combined region with the existing regular high-density portfolio.
  • Splices only the regional replacements back into the original pre-routed traces, preserving PCB trace ids and copper outside the failed region.
  • Treats an output trace with an existing pcb_trace_id as an intentional replacement during joint DRC.
  • Lets same-net via simplification reuse an immutable pre-routed via without mutating or re-emitting that via.
  • Keeps newly routed PCB trace ids distinct from preloaded ids.

Why

B01 should get the first opportunity to route around immutable pre-routed copper. Some valid SRJ23 regions still defeat B01 today, so Pipeline9 needs an explicit last-resort strategy that reroutes all copper inside only the failed region instead of failing the whole pipeline or silently ignoring preloaded-route intersections.

Validation

  • bunx tsc --noEmit
  • 12 focused tests across Pipeline9 fallback, joint DRC replacement semantics, immutable-route simplification, and same-net via reuse
  • SRJ23 sample 10: solved with 2 fallback regions, 2 mutated preloaded traces, 0 joint relaxed-DRC errors
  • SRJ23 representative visual snapshots (1, 10, 23): pass; pre-routed traces are included
  • Full bun test was sampled through the long bugreport suite; change-specific tests remained green, while unrelated pre-existing 5-second timeouts and bugreport SVG mismatches occurred

Stack

This draft targets agent/joint-drc / #1807 because replacement semantics require DRC to evaluate preloaded and routed copper jointly. Retarget to main after #1807 merges.

The exact B01 failure input is isolated separately in high-density-b01#6.

@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
capacity-node-autorouter Ready Ready Preview Jul 31, 2026 6:36am

Request Review

@tscircuitbot

Copy link
Copy Markdown
Contributor

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark-long [benchmark.sh args...]
/benchmark-all

Comment /benchmark to run the default dataset, or append any arguments accepted by ./benchmark.sh.
Comment /benchmark-long for an 8-vCPU run that defaults to 8 workers and has an eight-hour timeout.
Comment exactly /benchmark-all to start separate workflow runs and result comments for the default dataset plus srj18, srj19, srj20, srj21, and srj23.

Everything after /benchmark or /benchmark-long is safely forwarded to ./benchmark.sh, except --profile-solvers, which enables profile comparison tables.
Examples: /benchmark --dataset 18 --sample-timeout 2000s, /benchmark --pipeline 7 --scenario-limit 20, /benchmark all 20 --concurrency 8, and /benchmark-long --dataset 18.

Use /update-snapshots (or /us) to run BUN_UPDATE_SNAPSHOTS=1 bun test --timeout 120_000 on the PR branch and auto-commit snapshot updates.
Use /usf to read recent failed test files, update and verify their exact CI test shards, and auto-commit only their snapshots. It uses the configured fast benchmark runner by default; use /usf --ubuntu-latest for GitHub-hosted x64 CI parity.

Any PR whose title contains [BENCHMARK TEST] will automatically run one default-dataset benchmark on PR updates; it does not post a PR result comment.

@seveibar
seveibar marked this pull request as ready for review July 31, 2026 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants