Conversation
Promotes enssdk and enskit from reserved stubs to documented skills on the integration-options page. Held on docs/next until the skill packages publish.
🦋 Changeset detectedLatest commit: dcbd14c The changes in this PR will be included in the next version bump. This PR includes changesets to release 24 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 54 minutes and 46 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (20)
✨ 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.
Pull request overview
Updates the ENSNode docs to reflect that the enssdk and enskit agent skills are now available (no longer “reserved stubs”) on the ensskills integration-options page.
Changes:
- Promote
enssdkandenskitinto the “Skills included” list with fuller descriptions. - Remove
enssdk/enskitfrom the “reserved and ship as stubs” section (leaving only the still-stubbed skills there).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Greptile SummaryThis PR introduces
Confidence Score: 4/5The Account.nameReferences feature logic and its DataLoader plumbing look correct, but the Drizzle migration for the new index is missing — deploying without it leaves every nameReferences query doing a full table scan on resolver_address_records. The new composite index on resolver_address_records(value, coinType) is the explicit purpose of the @ensnode/ensdb-sdk changeset, and the migrations/ directory is committed to the repo and included in the published package. Only two migration files exist (0000, 0001); there is no 0002 file for the index addition. Without it, existing production databases won't have the index after upgrade, making every Account.nameReferences query degrade to a full-table scan. Everything else — the resolver logic, DataLoader deduplication, integration tests, example app, and docs — looks correct and well-structured. packages/ensdb-sdk/src/ensindexer-abstract/protocol-acceleration.schema.ts and the migrations/ directory alongside it. Important Files Changed
Sequence DiagramsequenceDiagram
participant Client
participant OmnigraphAPI
participant FindNameRefsResolver
participant ReverseResolutionLoader
participant DB as ENSDb (PostgreSQL)
Client->>OmnigraphAPI: "query { account(by:{address}) { nameReferences(where:{coinType}) { edges { node { domain coinType match } } } } }"
OmnigraphAPI->>FindNameRefsResolver: "resolveAccountNameReferences({account, coinType, ...connectionArgs})"
FindNameRefsResolver->>DB: "SELECT rar.*, domain.id, domain.canonicalName FROM resolver_address_records rar INNER JOIN domain ON domain.canonicalNode = rar.node WHERE rar.value = account [AND rar.coinType = coinType] ORDER BY (node, coinType, chainId, address) LIMIT n [INDEX: byValueAndCoinType]"
DB-->>FindNameRefsResolver: rows[] → NameReferenceRow[]
FindNameRefsResolver-->>OmnigraphAPI: connection (edges, pageInfo, totalCount)
Note over OmnigraphAPI,ReverseResolutionLoader: For each NameReference.match field (batched by DataLoader)
OmnigraphAPI->>ReverseResolutionLoader: "load({account, coinType})"
ReverseResolutionLoader->>ReverseResolutionLoader: dedupe by account:coinType cache key
ReverseResolutionLoader->>DB: "resolveReverse(account, coinType, {accelerate, canAccelerate})"
DB-->>ReverseResolutionLoader: "ReverseResolutionResult (Name | null)"
ReverseResolutionLoader-->>OmnigraphAPI: "{trace, result: primaryName}"
OmnigraphAPI-->>Client: "match = (primaryName === canonicalName)"
Reviews (2): Last reviewed commit: "feat(ensapi): add Account.nameReferences..." | Re-trigger Greptile |
| pk: primaryKey({ columns: [t.chainId, t.address, t.node, t.coinType] }), | ||
| // supports the reverse lookup powering `Account.nameReferences`: | ||
| // `WHERE value = <address> [AND coin_type = <coinType>]` | ||
| byValueAndCoinType: index().on(t.value, t.coinType), |
| }), | ||
| (t) => ({ | ||
| pk: primaryKey({ columns: [t.chainId, t.address, t.node, t.coinType] }), | ||
| // supports the reverse lookup powering `Account.nameReferences`: |
There was a problem hiding this comment.
Missing migration file for the new index
The byValueAndCoinType index was added to resolverAddressRecord in this schema change, but no new migration SQL file was generated (the migrations/ directory still only has 0000 and 0001). The migrations directory is included in the published package ("files": ["dist", "migrations"] in package.json) and the changeset explicitly calls out this index as the @ensnode/ensdb-sdk change. Without a generated migration, the index will not be applied to any existing database on upgrade, causing full-table scans on resolver_address_records for every Account.nameReferences query — the very feature this index exists to accelerate.
Run pnpm drizzle-kit:generate from packages/ensdb-sdk (or pnpm generate from the monorepo root as noted in AGENTS.md) and commit the resulting 0002_*.sql file.
this pr tracks updates to the docs site that should be merged when the next version is released to production