resolve turns a matched URL into a description of the object behind it. Reintersect calls it when a
URL first appears, when a member views a restricted reference whose answer for them is out of date,
and when you ask for a refresh.
Context
search receives query and limit instead of params, patternId and url.
Core fields
Return an object with the core fields. Reintersect builds the chip, link title, hover card, default card and agent text from them.
Write the
summary for someone who hasn’t opened the link. “Deployment of web from main, ready
since 14:02” tells an agent and a hovering member more than “Vercel deployment”.
Access results
When the object doesn’t exist or can’t be shown, return an access result instead of the core fields:
A withheld answer never replaces fields another member was granted. Agents receive only the URL and
the access result.
If
resolve throws, the SDK logs the error and answers unavailable for that URL: Reintersect keeps
the link as it is, caches nothing, and tries again later. The other URLs in the batch are unaffected.
A timeout of the whole batch behaves the same way.
Visibility
visibility decides whether the shared record is shown to everyone or checked per member:
Use
actor in resolve to decide whether the member may see the object in your system, and return
{ access: "forbidden" } when they may not. Return "public" only for objects everyone in the
workspace is allowed to see, because a public answer is shown to all of them.
Share pages and connected workspaces never call your app; they show the stored record read-only.
Custom cards
The default card shows the core fields. To show more, such as a deployment’s checks or a ticket’s assignees, give the kind ablock and return that block’s props, and optionally its state:
resolve. The SDK renders the block during the resolve and Reintersect stores the tree with
the record. The card uses the same components, limits and read-only modes as any other block, and
replaces only the card body: the chip, link title, hover card and agent text still come from the
core fields.
Leave insertable off (its default) on blocks that only exist as reference cards, so they don’t
appear in the slash menu or as agent insert tools. The app must still include the block with
.addBlock(DeploymentCard); TypeScript reports it as missing otherwise.
Timing and batching
Resolving is an interactive call: Reintersect waits up to 5 seconds for your answer and doesn’t retry. When several of your links arrive at once, for example in a pasted list, one delivery carries up to 20 URLs. The SDK calls yourresolve for them concurrently and returns the answers together.
If you implement the delivery protocol without the SDK, answer every
item in the batch within the deadline.