feat(a2a): add unified queryable team directory - #295
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Warning Review limit reached
Next review available in: 41 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughChangesA2A directory delivery
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant A2aRoute
participant A2aEngine
participant AgentSources
Client->>A2aRoute: GET /v1/a2a/directory with filters
A2aRoute->>A2aEngine: listA2aDirectory(query)
A2aEngine->>AgentSources: Load native agents, registered agents, certifications
AgentSources-->>A2aEngine: Directory source data
A2aEngine-->>A2aRoute: Filtered entries
A2aRoute-->>Client: Directory response
Client->>A2aRoute: POST /a2a/rpc message/send
A2aRoute-->>Client: JSON-RPC response
Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/engine/src/engine/__tests__/a2a.test.ts (1)
567-611: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winConsider covering the certification fallback heuristic.
All directory tests exercise the
certificationByUrl.get(...)path (a realcertificationsrow exists forext-infra-watch). The health-based fallback inlistA2aDirectory(agent.last_health && agent.health_failures === 0 ? 'level_1' : 'level_0') has no dedicated test here — worth adding a proxy without a certification row to lock in that behavior.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/engine/src/engine/__tests__/a2a.test.ts` around lines 567 - 611, The A2A directory tests do not cover certification fallback when no certification row exists. Extend the setup used by listA2aDirectory/getDirectory with a registered proxy lacking a certifications entry, then add assertions verifying it receives level_1 when last_health is present and health_failures is zero (or level_0 otherwise), while preserving the existing certified-agent coverage.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/engine/src/engine/a2a.ts`:
- Around line 492-543: Filter the workspaceAgents query in the
directory-building flow to select only agent-typed identities, excluding human
and system rows before searchableEntries are constructed. Update the query
associated with workspaceAgents, while preserving the existing registered-relay
and removed-proxy exclusions for valid agents.
---
Nitpick comments:
In `@packages/engine/src/engine/__tests__/a2a.test.ts`:
- Around line 567-611: The A2A directory tests do not cover certification
fallback when no certification row exists. Extend the setup used by
listA2aDirectory/getDirectory with a registered proxy lacking a certifications
entry, then add assertions verifying it receives level_1 when last_health is
present and health_failures is zero (or level_0 otherwise), while preserving the
existing certified-agent coverage.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 86c5ccad-8a68-4e2b-ba33-586e86a2a28b
📒 Files selected for processing (16)
.agentworkforce/trajectories/completed/2026-07/traj_q5iazxzqfyop/summary.md.agentworkforce/trajectories/completed/2026-07/traj_q5iazxzqfyop/trajectory.jsonCHANGELOG.mdREADME.mdopenapi.yamlpackages/a2a/README.mdpackages/a2a/package.jsonpackages/engine/CHANGELOG.mdpackages/engine/src/engine/__tests__/a2a.test.tspackages/engine/src/engine/a2a.tspackages/engine/src/routes/a2a.tspackages/sdk-typescript/CHANGELOG.mdpackages/sdk-typescript/src/__tests__/relay.test.tspackages/sdk-typescript/src/relay.tspackages/sdk-typescript/src/types.tsscripts/e2e.ts
|
Also addressed the review’s certification-fallback coverage note in |
Factory handoffReady for human review on
I have not merged this PR. Happy to discuss status, trade-offs, or any open question during human review. |
Closes #294
Summary
@relaycast/a2aas the documented shared agent-card contract/v1/a2a/directoryValidation
npx turbo test --output-logs=errors-onlynpx turbo lint --output-logs=errors-onlynpx turbo build --output-logs=errors-onlynpm run e2e -- --ci(109 passed, 0 failed)npm pack --workspace @relaycast/a2a --dry-run --jsonThis PR is ready for human review once the fresh-head checks complete.