Skip to content

Conversation

@0hmX
Copy link
Contributor

@0hmX 0hmX commented Dec 9, 2025

The autorouter was incorrectly rejecting valid paths as "obstacle
intersections." This happened because when a net was split into Minimum
Spanning Tree (MST) segments (e.g., net_mst0), the connectivity solver didn't
link these sub-segments back to the original net name (e.g., net) used by
destination pads.

Solution:

  1. Implemented parentNetId property propagation through the entire solver
    pipeline (NetToPointPairsSolver, CapacityPath, SimpleRouteConnection,
    etc.).
  2. Updated ConnectivityMap generation to explicitly link MST sub-routes to
    their parentNetId and mergedConnectionNames.
  3. Removed fragile regex-based name parsing (_mst stripping) in favor of
    this property-based approach.

This ensures the solver correctly identifies destination pads as valid
connections, not obstacles.

@vercel
Copy link

vercel bot commented Dec 9, 2025

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

Project Deployment Preview Comments Updated (UTC)
capacity-node-autorouter Ready Ready Preview Comment Dec 10, 2025 5:35pm

@0hmX 0hmX changed the title Fix/valid path not accepted fix: prevent false obstacle rejection by linking MST sub-routes to parent nets Dec 9, 2025
Copy link
Contributor

@seveibar seveibar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

everything about this is good except for the name. originalConnectionName or rootConnectionName is far better, net id doesn't exist as a term and increases the complexity of understanding the autorouter

@seveibar
Copy link
Contributor

seveibar commented Dec 9, 2025

traces are now improved for e2e3 ❤️

image

0hmX added 2 commits December 10, 2025 22:28
…prevent false obstacle rejections

fix(autorouter): correctly link merged MST connections to parent nets

docs(report): Add verification section to obstacle rejection bug fix report

chore(debug): add connectivity map logs for verification

feat(svg): Update SVG snapshots

refactor(names): Transitioned to property-based connection naming and updated test snapshot

fix(test): Update repro01-highdensity-drc-failure.test.ts for snapshot change

chore(docs): remove bug fix report

chore(cleanup): remove debug console logs

chore(format): Apply code formatting

WIP

WIP
@0hmX 0hmX force-pushed the fix/valid-path-not-accepted branch from 7f7ed26 to f5660a7 Compare December 10, 2025 17:32
@seveibar seveibar merged commit 111c84a into tscircuit:main Dec 10, 2025
8 checks passed
@tscircuitbot
Copy link


Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

Track your contributions and see the leaderboard at: tscircuit Contribution Tracker


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.

3 participants