Skip to content

docs: next version#2288

Open
shrugs wants to merge 4 commits into
mainfrom
docs/next
Open

docs: next version#2288
shrugs wants to merge 4 commits into
mainfrom
docs/next

Conversation

@shrugs

@shrugs shrugs commented Jun 11, 2026

Copy link
Copy Markdown
Member

this pr tracks updates to the docs site that should be merged when the next version is released to production

Promotes enssdk and enskit from reserved stubs to documented skills on the
integration-options page. Held on docs/next until the skill packages publish.
Copilot AI review requested due to automatic review settings June 11, 2026 17:21
@changeset-bot

changeset-bot Bot commented Jun 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: dcbd14c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 24 packages
Name Type
ensapi Minor
@ensnode/ensdb-sdk Minor
ensindexer Minor
@ensnode/integration-test-env Minor
@ensnode/ensnode-sdk Minor
ensadmin Minor
ensrainbow Minor
fallback-ensapi Minor
enssdk Minor
enscli Minor
enskit Minor
ensskills Minor
@ensnode/datasources Minor
@ensnode/ensrainbow-sdk Minor
@ensnode/ponder-sdk Minor
@ensnode/ponder-subgraph Minor
@ensnode/shared-configs Minor
@docs/ensnode Minor
@docs/ensrainbow Minor
@namehash/ens-referrals Minor
@namehash/namehash-ui Minor
@ensnode/ensindexer-perf-testing Minor
@ensnode/enskit-react-example Patch
@ensnode/enssdk-example Patch

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

@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Jun 13, 2026 3:37pm
enskit-react-example.ensnode.io Ready Ready Preview, Comment Jun 13, 2026 3:37pm
ensnode.io Ready Ready Preview, Comment Jun 13, 2026 3:37pm
ensrainbow.io Ready Ready Preview, Comment Jun 13, 2026 3:37pm

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@shrugs, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3d0446ee-cb47-45cb-a033-3a8d1a3cbd61

📥 Commits

Reviewing files that changed from the base of the PR and between 4ecd8d9 and dcbd14c.

⛔ Files ignored due to path filters (3)
  • packages/enssdk/src/omnigraph/generated/introspection.ts is excluded by !**/generated/**
  • packages/enssdk/src/omnigraph/generated/schema.graphql is excluded by !**/generated/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (20)
  • .changeset/name-references-ensapi.md
  • .changeset/name-references-ensdb-sdk.md
  • AGENTS.md
  • apps/ensapi/src/lib/protocol-acceleration/get-primary-name-from-index.ts
  • apps/ensapi/src/omnigraph-api/context.ts
  • apps/ensapi/src/omnigraph-api/lib/find-name-references/find-name-references-resolver.ts
  • apps/ensapi/src/omnigraph-api/schema.ts
  • apps/ensapi/src/omnigraph-api/schema/account.integration.test.ts
  • apps/ensapi/src/omnigraph-api/schema/account.ts
  • apps/ensapi/src/omnigraph-api/schema/name-reference.ts
  • apps/ensapi/src/omnigraph-api/schema/resolver-records.ts
  • apps/ensindexer/src/lib/protocol-acceleration/resolver-db-helpers.ts
  • apps/ensindexer/src/plugins/protocol-acceleration/handlers/StandaloneReverseRegistrar.ts
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensskills.mdx
  • examples/enskit-react-example/package.json
  • examples/enskit-react-example/src/App.tsx
  • examples/enskit-react-example/src/NamegraphView.tsx
  • examples/enskit-react-example/src/ensnode.ts
  • packages/ensdb-sdk/src/ensindexer-abstract/protocol-acceleration.schema.ts
  • packages/ensskills/skills/omnigraph/SKILL.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/next

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 enssdk and enskit into the “Skills included” list with fuller descriptions.
  • Remove enssdk / enskit from 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.

@shrugs shrugs changed the title docs: announce enssdk & enskit skills as available docs: next version Jun 11, 2026
@shrugs shrugs marked this pull request as ready for review June 12, 2026 15:28
@shrugs shrugs requested a review from a team as a code owner June 12, 2026 15:28
@greptile-apps

greptile-apps Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces Account.nameReferences, a new Omnigraph API field that returns the Names whose indexed addr() record points at a given account address, with optional coinType scoping and a match field indicating whether that Name is the account's ENSIP-19 Primary Name. It also adds a large vibe-coded Namegraph Explorer demo to the enskit-react-example, promotes the enssdk and enskit skills from stubs to full descriptions, and documents changeset conventions in AGENTS.md.

  • Account.nameReferences: Backed by a new cursor-paginated resolver that INNER JOINs resolver_address_records to canonical Domains; NameReference.match is resolved via a per-request DataLoader that deduplicates reverse-resolution calls across a page. A new composite index on (value, coinType) is declared in the schema to support this reverse lookup, but no migration file was generated — see the inline comment.
  • Namegraph Explorer example: A 1154-line React component using @pierre/trees that lazy-loads subregistries on expand, auto-pages via a scroll sentinel, and renders a forward-resolution detail panel per selection. Explicitly flagged as vibe-coded / not production-grade.
  • Schema + generated files: The GraphQL schema, introspection file, and SKILL.md are all updated to reflect the new NameReference type and its four fields.

Confidence Score: 4/5

The 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

Filename Overview
packages/ensdb-sdk/src/ensindexer-abstract/protocol-acceleration.schema.ts Adds a composite index on (value, coinType) to resolver_address_records and two inline TODO comments for a bigint-to-CoinType migration tracked in #2293 — but no new Drizzle migration SQL file accompanies the schema change.
apps/ensapi/src/omnigraph-api/lib/find-name-references/find-name-references-resolver.ts New cursor-based paginator for Account.nameReferences: INNER JOINs resolver_address_records to canonical Domains, uses a 4-column keyset cursor matching the PK order, and documents BigInt conversion TODOs scoped to #2293.
apps/ensapi/src/omnigraph-api/schema/name-reference.ts Defines the NameReference GraphQL object type; match field resolves via a per-request DataLoader that deduplicates reverse-resolution calls across a page of results.
apps/ensapi/src/omnigraph-api/context.ts Adds a reverseResolutionLoader DataLoader keyed by (account, coinType) to deduplicate reverse-resolution calls within a single GraphQL request; cache key is an account:coinType string.
apps/ensapi/src/omnigraph-api/schema/account.ts Wires up Account.nameReferences connection field with an optional AccountNameReferencesWhereInput, delegating pagination to resolveAccountNameReferences.
apps/ensapi/src/omnigraph-api/schema/account.integration.test.ts Adds four integration tests for Account.nameReferences: coinType-scoped lookup, match:true when the name is the ENSIP-19 Primary Name, negative scoping, and unscoped cross-coinType search.
examples/enskit-react-example/src/NamegraphView.tsx New 1154-line vibe-coded Namegraph Explorer demo: virtualized file-tree backed by @pierre/trees, lazy-loads subregistries on expand, auto-loads next pages, and renders a forward-resolution panel per selection. Explicitly marked as not production-grade.
examples/enskit-react-example/src/ensnode.ts Extracts the EnsNodeClient construction (previously inline in App.tsx) into a shared module so both OmnigraphProvider and imperative callers share the same client instance.
packages/enssdk/src/omnigraph/generated/schema.graphql Auto-generated GraphQL schema update adding the NameReference type, AccountNameReferencesConnection, and AccountNameReferencesWhereInput.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensskills.mdx Promotes enssdk and enskit skills from stub descriptions to full descriptions, reflecting new SKILL.md content.

Sequence Diagram

sequenceDiagram
    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)"
Loading

Reviews (2): Last reviewed commit: "feat(ensapi): add Account.nameReferences..." | Re-trigger Greptile

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 23 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

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),
Comment on lines 217 to +220
}),
(t) => ({
pk: primaryKey({ columns: [t.chainId, t.address, t.node, t.coinType] }),
// supports the reverse lookup powering `Account.nameReferences`:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants