Skip to content

Prune component ports without erasing boundaries - #1972

Closed
ShiboSoftwareDev wants to merge 3 commits into
agent/repro-component-boundary-pruningfrom
agent/fix-component-boundary-pruning
Closed

Prune component ports without erasing boundaries#1972
ShiboSoftwareDev wants to merge 3 commits into
agent/repro-component-boundary-pruningfrom
agent/fix-component-boundary-pruning

Conversation

@ShiboSoftwareDev

@ShiboSoftwareDev ShiboSoftwareDev commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Problem

Pipeline 7 keeps every cramped component-local port-point. This preserves reachability, but it makes dense components expand into an unnecessarily large detailed-routing graph.

Simply pruning those points is not sufficient: if every point on a boundary is removed, that real adjacency disappears from the hypergraph and routes can fail static reachability.

Fix

  • Run the existing necessary-cramped-port solver uniformly across global and component-local regions.
  • Prune unused multilayer port-points in Pipeline 7.
  • If pruning would empty a real boundary, retain its centermost existing port-point with the existing cramped-port penalty.
  • Enable the capacity-aware region corridors from tiny-hypergraph#154.

This does not create ports or regions. It keeps one real, expensive port only to preserve the topology edge; the region planner then treats that edge as a one-lane cut and moves flexible nets to other real paths.

Snapshot

This is the unchanged fixture from #1971. Five unused cramped points are reduced to one real connectivity point, while the shared boundary remains present.

One real connectivity port remains

Validation

bun test tests/features/component-boundary-port-pruning.test.ts tests/bugs/necessary-cramped-port-point-solver-no-duplicate-explosion.test.ts --timeout 9999999
2 pass, 0 fail

A focused srj24 sample 4 run completed all 841 port-point routes with 0 unresolved routes and advanced to uniform port distribution. The full Pipeline 7 benchmark will be run below through GitHub Actions.

Benchmark

GitHub Actions run 31178560219

Pipeline: 7
Dataset: srj24
Sample: 4
Effort: 1x
Concurrency: 1
Status: running

@vercel

vercel Bot commented Aug 7, 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 Aug 7, 2026 1:12pm

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.

@tscircuitbot

tscircuitbot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

srj24 Failed

Benchmark workflow ended with cancelled before completion.

This can happen during setup, dependency installation, or benchmark execution.

Previous main run

No previous main run is available for srj24.

(benchmark results were not produced)

Workflow: View run
Artifact: https://github.com/tscircuit/tscircuit-autorouter/actions/runs/31178200280

@tscircuitbot

tscircuitbot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

srj24 Results

Previous main run

No previous main run is available for srj24.

Dataset: srj24
Scenarios: 1
Effort: 1x effort

Solver Completed % Relaxed DRC Pass % Timed Out P50 Time P95 Time Avg Via
Pipeline7 100.0% 0.0% 0/1 3196.9s 3196.9s 741.00
PR run details
Solver Sample Status Via Time Relaxed DRC Error Delta
Pipeline7 4 Solved 741 3196.9s Failed

Workflow: View run
Artifact: https://github.com/tscircuit/tscircuit-autorouter/actions/runs/31178560219

@github-actions

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.

@github-actions

Copy link
Copy Markdown

This PR was closed because it has been inactive for 1 day since being marked as stale.

@github-actions github-actions Bot closed this Aug 14, 2026
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.

2 participants