Repository navigation
Report shared-hub peers for types and contracts - #91
Draft
pranayVyas wants to merge 2 commits into
Draft
pranayVyas wants to merge 2 commits into
pranayVyas wants to merge 2 commits into
Conversation
Record the Rust Aeron observation and the two proposed query gaps. No indexer or MCP behavior change. Co-authored-by: Pranay Vyas <[email protected]>
Two sites that point at one declared type or one contract hub are peers. The result states only the stored roles. verification is attached only when those edges do not record a direction, and it tells the reader to check the code. Search stays a name lookup. Co-authored-by: Pranay Vyas <[email protected]>
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
Implements the two query gaps from the HAS_TYPE peer-link spec. The hop is the graph shape "two sites point at one hub", for any declared type and any contract kind the adapter already stored. It is not a detector for one framework, and it does not add a contract kind.
An entry states only what the edges record.
verification, which says to read the code at both sites.EXPOSESand oneCONSUMESstates those roles and the weaker evidence tier. It has noverificationfield.verification.peer_fan_inorpeer_undeclared_type.service_relation: same_service. They are not placed incross_service. A missing service id isunknown.impact_ofadds apeerslist after the dependent walk.explainreports the inward hub path when no direct edge exists.find_pathsreports ashared_hubresult only when the forward walk found nothing, so a type share cannot outrank a call chain.searchstays a name lookup.Decisions are recorded in
docs/aeron-has-type-links-spec.md.Test plan
tests/test_peers.pycovers a declared type (enum, struct, and class), fan-in, an undeclared type, complementary contract roles fortopicandhttp_route, same-service, same-role, a missing service id, explain, and find_paths.tests/test_query.pystill passes, including the existing cross-service contract assertion.verificationfield is absent on a recorded exposes/consumes pair and present only when the direction is not recorded.