Harden C# resolution and ASP.NET graph extraction - #244
Merged
Conversation
forhappy
marked this pull request as ready for review
August 14, 2026 14:07
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.
Summary
Why
The universal C# cutover exposed concrete gaps on the real dotnet/aspnetcore repository: zero-width recovery nodes caused 116 whole-file validation failures, hierarchy matching was not namespace-aware, typed receiver dispatch covered too few C# binding forms, Minimal API argument parsing was comma-sensitive, and generic role names could outrank reviewed ASP.NET implementation anchors. The first persistent-store discovery profile also hydrated up to 12,801 speculative accelerator candidates and exceeded the 30-second query deadline.
Compass does not yet promise compatibility for these internal pre-release identities, so carrying provisional version numbers forward only created unnecessary legacy surface. Existing pre-release artifacts must be discarded or rebuilt; disposable query indexes rebuild automatically.
Impact
C# graphs retain valid partial evidence from malformed or unsupported syntax, resolve hierarchy/member relationships with stronger language-safe evidence, and represent more modern ASP.NET endpoint registrations. Natural search removes question noise and canonicalizes inflections while preserving literal symbol-shaped typo resolution. Discovery caps speculative accelerator reads, recalls exact predicate names as one bounded ranked channel, and reports equal callable-name alternatives as ambiguity. Existing unresolved cases remain explicit. The change is native and deterministic and adds no Graphify runtime dependency.
Real-repository qualification
The real dotnet/aspnetcore qualification was produced with the same extraction logic before the identity-only reset to v1:
The persistent-store build comparison used 3.69 GB peak RSS versus 4.93 GB for the original Compass JSON run, a 25.2% reduction. On its 239,376-node, 344,359-edge ASP.NET Core snapshot, the final persistent-store discovery runs complete within the 30-second contract:
Validation
Fixture qualification passed all semantic, deterministic-byte, scale, and framework assertions.