spec: /v1/identity/resolve (directory:read) - #57
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_07afca06-a127-4883-85f8-ceda0fc03332) |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 12 minutes Limit details: You’ve used the included review currently available. Your 103 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. 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 within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Comment |
PR Summary by QodoPublish identity resolve endpoint in OpenAPI contract
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
|
Note Automatic reviews are paused because your team has used its included automatic processing for this billing period (headroom scales with your seat count). You can still comment "Gitar review" to run one anytime, and automatic reviews resume on their own by September 1. Add seats for more headroom. Code Review ✅ ApprovedAdds the OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
Code Review by Qodo
1.
|
There was a problem hiding this comment.
Risk: medium. Left a non-blocking comment and did not approve because Cursor Bugbot skipped after hitting a usage limit, so the required automated-review signal did not complete. Human review is needed; no reviewers were assigned (only the PR author is assignable).
Sent by Cursor Approval Agent: Pull Request Router and Approver
ApprovabilityVerdict: Would Approve Macroscope's review found this PR approvable — Additive API specification change adding a new read-only endpoint ( Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
|
Code review by qodo was updated up to the latest commit 3a2781c |
Qodo Fixer🍒 Ready to be cherry-picked — ✅ Merged (0) · ☑ Fixed (3) 🔗 Fix PR: #58 This fix PR was closed automatically. Its branch is preserved so you can cherry pick the changes into the original PR. Prompt for coding agent Process — 3 fixed
|
…chemas, E.164 + error-code enums)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_a376e5ca-eea4-4bb6-9450-d2cae1014689) |


What
Adds
GET /identity/resolveto the published machine contract — the fleet agent directory read pane that ships in wave-gateway PR #1170 (API-FIRST-MATRIX gap 2, identity-fabric E1; contract: claude-workstationgovernance/plans/fleet-epic-queue/QUEUE-V2.mdrow 6). Without this entry the route exists at runtime but is invisible to OpenAPI-generated clients and route-method discovery (qodo finding on #1170).Contents
Identitytag — fleet agent directory: resolve a WAVE agent id to its public channel map.identityResolveoperation —agentquery param (pattern^[a-z0-9-]{1,64}$), optionalorgself-assertion (must equal the authenticated principal; mismatch →400 ORG_MISMATCH). Responses: 200 (IdentityResolveResponse), 400 (MISSING_AGENT/BAD_AGENT/ORG_MISMATCH), 401/403 (Unauthorized/Forbiddenrefs), 404 (UNKNOWN_AGENT), 429 (RateLimitErrorref).IdentityResolveResponse={ agent, identity }withidentityas aoneOf:AgentIdentity(email/key/org/channels) |TelephonyIdentity(org/channels/numbers/keys— the one documented variation, resolve.mjs parity). Both markkey/keysas Doppler key NAMES (^[A-Z0-9_]+$), never values — the directory carries no secret material.generated/api-types.d.tsregenerated (openapi-typescript@7.13.0) so thesdk-typesdrift gate stays green.Gateway-side posture (already in wave-gateway#1170)
Scope
directory:read— separately grantable, DISTINCT from the complianceidentity:readscope (which gates Stripe verification-session reads and is never in the #19 uniform customer grant). Nested-exact scope rule (/v1/identity/resolveonly); errors use the gateway-wide{ error: { code, message } }envelope, matching this spec'sErrorschema.Gates
redocly lint openapi.yaml— valid (warnings pre-existing).After merge: wave-gateway bumps
vendor/api-spec/pin.jsonto the new SHA + regeneratessrc/openapi-spec.generated.ts(the pin-verified vendoring flow), closing the loop.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Note
Low Risk
Pure additive OpenAPI surface with no runtime logic changes; public-directory fields only and no secret material in schemas.
Overview
Documents
GET /identity/resolveso OpenAPI clients and gateway route discovery match the runtime identity-fabric read pane (wave-gateway #1170).Adds the
Identitytag andidentityResolve: requiredagentquery (^[a-z0-9-]{1,64}$), optionalorgself-assertion (mismatch →ORG_MISMATCH). Success isIdentityResolveResponse, aoneOfdiscriminated onagent— default agents returnAgentIdentity(email, Dopplerkeyname,org,channels);telephonyreturnsTelephonyIdentity(numbers, pluralkeys, no email).key/keysare names only, never secret values. Errors are typed forMISSING_AGENT,BAD_AGENT,ORG_MISMATCH, andUNKNOWN_AGENT. Auth failures use the sharedUnauthorized/Forbiddenrefs; access is gated bydirectory:read(not complianceidentity:read).CHANGELOG Unreleased entry and
generated/api-types.d.tsregenerated so thesdk-typesdrift gate stays green.Reviewed by Cursor Bugbot for commit 4b75424. Bugbot is set up for automated code reviews on this repo. Configure here.