Skip to content

test: reproduce synthetic duplicate lane placement - #137

Draft
ShiboSoftwareDev wants to merge 4 commits into
agent/fix-duplicate-port-clearancefrom
agent/repro-physical-duplicate-lane-placement
Draft

test: reproduce synthetic duplicate lane placement#137
ShiboSoftwareDev wants to merge 4 commits into
agent/fix-duplicate-port-clearancefrom
agent/repro-physical-duplicate-lane-placement

Conversation

@ShiboSoftwareDev

@ShiboSoftwareDev ShiboSoftwareDev commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Stack

Stacked on #136, which limits duplicate count to physical boundary capacity.

Reproduction

When a boundary has enough capacity, the prepass calculates legal physical lane centers but currently discards them. It places duplicate graph ports inside the legacy 0.05 mm synthetic band instead. Pathing therefore reasons about a different port order and spacing than the physical router receives later.

Duplicate graph ports use synthetic spacing

This is the real serialized graph and production prepass output:

  • blue rectangles: adjacent graph regions;
  • teal: their shared boundary;
  • red: 0.1 mm trace bodies;
  • orange: the required 0.2 mm trace-plus-clearance envelopes;
  • black: the graph ports used by pathing.

The measured centers are 0.025 mm apart although 0.200 mm is required. The stacked fix uses this exact fixture and snapshot unchanged.

Verification

  • GitHub-hosted Bun Test: passed
  • SVG generated and verified in GitHub Actions
  • no solver or benchmark was run locally

@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
tiny-hypergraph Ready Ready Preview Aug 2, 2026 9:24am

Request Review

@tscircuitbot

Copy link
Copy Markdown

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark --dataset <hg07|srj18> --limit <n> --solver <core|poly> --families <default|default+deep|all> --concurrency <n|auto>

Everything after /benchmark is forwarded directly to ./benchmark.sh.
The result comment shows the matching dataset from the latest stored main-branch benchmark artifact beside the PR run; main is not rerun for each PR benchmark request.

Examples:

  • /benchmark -> hg07, all samples, core solver
  • /benchmark --dataset srj18 --limit 20 -> first 20 srj18 samples
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample002 -> one hg07 sample
  • /benchmark --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --limit 40 --families default+deep -> first 40 hg07 samples with deeper candidate families

Any PR whose title contains [BENCHMARK TEST] will automatically run the benchmark workflow on PR updates.

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