feat(#4520): DIR SearchService + RoutingService — complete the directory client#225
Merged
Merged
Conversation
…ory client
Adds the discovery half of DirClient on top of the StoreService slice, completing
the AGNTCY epic (#4517).
- SearchService (local content search): searchRecords / searchCids by typed DirQuery
(DirQueryType mirrors the OASF facets DIR indexes — SKILL_NAME, DOMAIN_NAME, AUTHOR, ...).
- RoutingService (network publish + discovery): publish / unpublish (by CID) and
routeSearch -> DirRouteMatch{cid, peer, score}. Routing facets are coarse
(skill/locator/domain/module); non-routable DirQueryTypes are rejected.
- All three services share one ManagedChannel (bearer interceptor applied to each).
- Vendored 5 more trimmed, wire-compatible protos (search/v1 + routing/v1) — no
buf/validate imports upstream, so faithful. No new external deps (lockfile +
verification-metadata unchanged).
- 7 tests total (in-process gRPC fakes for Store/Search/Routing). README + CHANGELOG
+ PRD §12.6 + internals adjunct updated. Remaining DIR: RoutingService.List + OCI referrers.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Completes the DIR client (#4520) — adds the discovery half on top of the StoreService slice, finishing the AGNTCY epic (#4517).
DirClientnow wraps three DIR services over one channel:push/pull/lookup/delete(content-addressed CRUD; from the prior PR).searchRecords/searchCidsby typedDirQuery(DirQueryType, value)— the OASF facets DIR indexes (SKILL_NAME,DOMAIN_NAME,AUTHOR, …;DirQueryTypemaps by name to the proto enum).publish/unpublish(announce by CID) +routeSearch→DirRouteMatch{cid, peer, matchScore}(cross-peer discovery). Routing facets are coarse (skill/locator/domain/module); non-routableDirQueryTypes are rejected with a clear error.Notes
ManagedChannel(bearer interceptor applied to each).search/v1+routing/v1) — these have nobuf/validateimports upstream, so theyre faithful. No new external deps → lockfile + verification-metadata unchanged.Gates
7 tests total (in-process gRPC fakes for Store/Search/Routing — hermetic). Full
./gradlew buildgreen (dir module + detekt + DocsConsistency + verification). README + CHANGELOG + PRD §12.6 + internals adjunct updated. Closes #4520. Remaining DIR:RoutingService.List+ OCI referrers (thin follow-ups).🤖 Generated with Claude Code