Keep trace-layer candidate scoring consistent across repair stages - #97
Open
seveibar wants to merge 2 commits into
Open
Keep trace-layer candidate scoring consistent across repair stages#97seveibar wants to merge 2 commits into
seveibar wants to merge 2 commits into
Conversation
Benchmark This PRRun benchmarks by commenting on this PR: Everything after Examples:
Any PR whose title contains |
This was referenced Sep 5, 2026
This was referenced Sep 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The branch portfolio can discard a trace-layer repair that its inner solver accepted. After enabling inclusive via-span checks, SRJ18 sample 12 produces a trace-clean candidate with a remaining via-to-pad issue, but the outer acceptance guard counts that deferred issue as a hard via regression and restores the trace collisions. The same-machine autorouter benchmark changes from DRC pass to five reported errors.
Use the same staged scoring at both levels: exclude via-to-pad issues from the hard via regression count and pass the complete input snapshot to the existing candidate comparator. Remaining via-to-pad errors stay in the snapshot and are passed to the dedicated repair phase; via-to-trace and via-pair protections remain in place.
Add a two-route regression that fails on main. It checks acceptance of the deferred via-pad case, rejection of a new via-trace collision, visibility of the remaining error, and unchanged input routes.
Validation: all 89 tests pass (595 assertions), typecheck passes, and existing snapshots are unchanged. The consumer integration and full SRJ18 regression are in tscircuit/tscircuit-autorouter#2402; final same-machine benchmarks on consumer commit
239d57frestore sample 12 to zero DRC errors, with no pass/fail outcome regressions across dataset01 or SRJ18. The consumer’s full CI also passes.