Fix selective rerip owner dependency cycles - #168
Draft
0hmX wants to merge 4 commits into
Draft
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Benchmark This PRRun benchmarks by commenting on this PR: Everything after Examples:
Any PR whose title contains |
0hmX
force-pushed
the
agent/bugreport87-portpoint-repro
branch
2 times, most recently
from
August 13, 2026 23:02
3944c9f to
e3d8290
Compare
0hmX
force-pushed
the
agent/fix-repeated-owner-rerip-cycle
branch
from
August 13, 2026 23:02
52dad70 to
e7ba41d
Compare
Contributor
Author
|
/benchmark |
Tiny Hypergraph Same Machine Benchmark ResultsMain
Main Branch Details
PR Details
Workflow: View run |
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.
What
Stacked on #167.
failed_owner_cyclein selective-rerip statistics.Root cause
The bugreport87 graph is valid. One cramped port changes route 32 onto a Z0 path through that port. Later routes rotate blockers and eventually form the directed dependency cycle
51 → 48 → 49 → 50 → 51.Previously, selective rerip only reacted when the same failed-route/owner pair repeated. Each edge in this larger cycle looked new, so the solver kept displacing another route without recognizing that it had returned to the same dependency chain.
The normal global-rerip solver completes the same graph. This fix preserves selective reripping for acyclic conflicts and escalates immediately when the complete owner dependency graph becomes cyclic.
Impact
The exact repro completes instead of running until the CI job timeout. No fixture, snapshot, or test changes are included in this stacked diff.
Validation
bun run typecheckbunx biome format lib/selective-rerip-tiny-hyper-graph-solver.ts tests/solver/bugreport87-unused-port-repro.test.tsbun test tests/selective-rerip-tiny-hyper-graph-solver.test.ts tests/solver/port-chokepoint-repro.test.ts tests/solver/same-net-shared-bottleneck-repro.test.ts tests/solver/bugreport87-unused-port-repro.test.ts