Skip to content

docs: ENS Resolutions page#2273

Open
sevenzing wants to merge 5 commits into
mainfrom
ll/docs-ens-resolutions
Open

docs: ENS Resolutions page#2273
sevenzing wants to merge 5 commits into
mainfrom
ll/docs-ens-resolutions

Conversation

@sevenzing

@sevenzing sevenzing commented Jun 8, 2026

Copy link
Copy Markdown
Member

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx -- main file to review

Why

  • Why this change exists. Link to related GitHub issues where relevant.

Testing

  • How this was tested.
  • If you didn't test it, say why.

Notes for Reviewer (Optional)

  • Anything non-obvious or worth a heads-up.

Pre-Review Checklist (Blocking)

  • This PR does not introduce significant changes and is low-risk to review quickly.
  • Relevant changesets are included (or are not required)

@changeset-bot

changeset-bot Bot commented Jun 8, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: c554d83

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
enskit-react-example.ensnode.io Ready Ready Preview, Comment Jun 8, 2026 4:56pm
ensnode.io Ready Ready Preview, Comment Jun 8, 2026 4:56pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
admin.ensnode.io Skipped Skipped Jun 8, 2026 4:56pm
ensrainbow.io Skipped Skipped Jun 8, 2026 4:56pm

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

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

More reviews will be available in 52 minutes and 13 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ 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: 1b992ee8-3441-43c4-81ad-af979612d5f1

📥 Commits

Reviewing files that changed from the base of the PR and between 3164af3 and c554d83.

📒 Files selected for processing (1)
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name-records.mdx
📝 Walkthrough

Walkthrough

Adds an "ENS Resolution" documentation page, embeds example sets, updates example fixtures and SDK example queries, extends the GraphQL schema (UnindexedDomain, resolver fields), tweaks example description rendering, and updates sidebar/frontmatter to surface the new content.

Changes

ENS Resolution Documentation & Examples

Layer / File(s) Summary
ENS Resolution documentation page
docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx
New documentation page titled "ENS Resolution" describing forward resolution via domain.resolve.profile, raw protocol records via resolve.records, reverse resolution for primary names, and identity composition. Embeds OmnigraphStaticExampleSet components for related examples.
OmnigraphStaticExampleSet rendering improvement
docs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astro
Renders example description inside a Starlight markdown container (sl-markdown-content) using set:html for richer formatted descriptions.
Sidebar navigation and frontmatter cleanup
docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts, docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/*.mdx
Adds "ENS Resolution" under "ENS Omnigraph API" and removes sidebar.* frontmatter entries from many example pages to centralize sidebar ordering while preserving content.
GraphQL schema type and field additions
docs/ensnode.io/src/data/omnigraph-examples/schema.graphql
Adds UnindexedDomain implements Domain, DomainResolver.effective: Resolver, and Resolver.extended: Boolean!; updates parent/registry field docs across Domain types.
Examples config text updates
docs/ensnode.io/src/data/omnigraph-examples/config.ts
Rephrases and reformats many OMNIGRAPH_EXAMPLES_CONFIG description fields to multi-line "This query below …" wording and clarifies returned data semantics.
New example JSON entries
docs/ensnode.io/src/data/omnigraph-examples/examples.json
Adds domain-profile-and-records and account-primary-name-records example entries with combined queries and example variables.
Example response fixtures
docs/ensnode.io/src/data/omnigraph-examples/responses.json
Updates many protocol-tracing span ids/timestamps/durations, rewires parentSpanContext, reorders some namegraph fields, and adds response sections for account-primary-names and domain-profile-and-records.
Snapshot metadata
docs/ensnode.io/src/data/omnigraph-examples/snapshot.json
Bumps snapshot commit and snapshottedAt to a newer revision/timestamp.
SDK example queries
packages/ensnode-sdk/src/omnigraph-api/example-queries.ts
Introduces GREG_ADDRESS, adds domain-profile-and-records example query, and replaces account-primary-name with account-primary-names.
Skill documentation updates
packages/ensskills/skills/omnigraph/SKILL.md
Documents the domain-profile-and-records example and updates the account-primary-names example and variables snippet.

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant OmnigraphAPI as Omnigraph API
  participant DomainResolver as DomainResolver
  participant AddressResolver as AddressResolver

  Client->>OmnigraphAPI: domain.resolve.profile(name)
  activate OmnigraphAPI
  OmnigraphAPI->>DomainResolver: forward resolve name -> profile
  DomainResolver-->>OmnigraphAPI: avatar, addresses, socials, website
  OmnigraphAPI-->>Client: structured profile (null for missing)
  deactivate OmnigraphAPI

  Client->>OmnigraphAPI: resolve.primaryNames(address, chain)
  activate OmnigraphAPI
  OmnigraphAPI->>AddressResolver: reverse resolve -> primary name (or null)
  AddressResolver-->>OmnigraphAPI: primary name
  OmnigraphAPI->>DomainResolver: forward resolve primary name -> profile
  DomainResolver-->>OmnigraphAPI: profile data
  OmnigraphAPI-->>Client: chained identity response (null-safe)
  deactivate OmnigraphAPI
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Possibly related PRs

  • namehash/ensnode#2209: Also updates integrateSidebarTopic sidebar config and Omnigraph integrate navigation entries.
  • namehash/ensnode#2265: Related schema/resolver field additions overlapping on DomainResolver.effective.
  • namehash/ensnode#2171: Another change that restructures the Integrate sidebar and Omnigraph entries.

Poem

🐰 I hopped through docs at break of dawn,
New resolution paths to lean upon.
Profiles, records, reverse and chain,
Examples, schema — all now plain.
Sidebar set, the knowledge grows — hooray!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description follows the template structure but is mostly empty; critical sections (Why, Testing, Notes) lack substantive content, containing only template prompts. Complete the Why section with rationale and relevant issue links, add Testing details (or explanation if untested), and include any reviewer notes about the main ens-resolution.mdx file changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: ENS Resolutions page' accurately describes the main change: adding comprehensive documentation for ENS resolution workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ll/docs-ens-resolutions

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.

{
!hideDescription && (
<div class="sl-markdown-content">
<p set:html={description} />

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

to render segments of Example's description

title: Account Events
description: Indexed events involving an address across ENS contracts.
sidebar:
order: 11

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

looks like it's redundant since we define order in sidebar config already

title: "Hello World",
description:
"From a wallet address: Ethereum primary name and interpreted profile, plus ENSv1 and ENSv2 ownership counts.",
"This query below loads, from a wallet address, the Ethereum primary name and interpreted profile, plus ENSv1 and ENSv2 ownership counts.",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

for description to better fit into page content

@greptile-apps

greptile-apps Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a new ENS Resolution documentation page explaining forward, reverse, and identity resolution via the Omnigraph API. It also introduces two new example queries (account-primary-names, account-primary-name-records) and a side-by-side domain-profile-and-records example, refreshes all response snapshots, and updates description strings to use HTML <code> tags now that the component renders them via set:html.

  • New ENS Resolution page (ens-resolution.mdx) covers the three resolution modes with embedded example cards, sidebar entry, and a link to the AI/LLM tooling page.
  • New example queries (account-primary-names, account-primary-name-records, domain-profile-and-records) added across config.ts, examples.json, responses.json, example-queries.ts, and SKILL.md.
  • Schema updates introduce UnindexedDomain, DomainResolver.effective, and Resolver.extended; response snapshots refreshed to the June 8 snapshot.

Confidence Score: 4/5

Safe to merge after fixing one broken sidebar link caused by a missing page file.

The account-primary-names example is configured with hostSeparatePage: true, which inserts it into the auto-generated sidebar, but no account-primary-names.mdx content file was added alongside account-primary-name-records.mdx. That sidebar entry will 404 for every reader who clicks it until the file is added (or hostSeparatePage is set to false).

docs/ensnode.io/src/data/omnigraph-examples/config.ts — the account-primary-names entry needs either a matching .mdx page file or hostSeparatePage: false.

Important Files Changed

Filename Overview
docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx New ENS Resolution page covering forward, reverse, and identity resolution modes with embedded example cards — content is clear and complete.
docs/ensnode.io/src/data/omnigraph-examples/config.ts Adds account-primary-names and account-primary-name-records examples and rewrites all descriptions to use <code> HTML tags; account-primary-names has hostSeparatePage: true but its .mdx page file is missing, producing a broken sidebar link.
docs/ensnode.io/src/data/omnigraph-examples/responses.json Refreshed response snapshots for all examples, including new entries for domain-profile-and-records, account-primary-names, and account-primary-name-records.
packages/ensnode-sdk/src/omnigraph-api/example-queries.ts Adds domain-profile-and-records, account-primary-names, and account-primary-name-records example queries with appropriate variables; uses a GREG_ADDRESS constant for the new reverse-resolution examples.
packages/ensskills/skills/omnigraph/SKILL.md Adds domain-profile-and-records, account-primary-names, and account-primary-name-records example sections to the AI agent skill doc.
docs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astro Wraps the description <p> in a sl-markdown-content div and switches to set:html to allow inline <code> tags in descriptions.
docs/ensnode.io/src/data/omnigraph-examples/schema.graphql Adds UnindexedDomain type, DomainResolver.effective field, Resolver.extended field, and expands doc comments for parent/registry on all domain types.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[ENS Resolution Page] --> B[Forward Resolution]
    A --> C[Reverse Resolution]
    A --> D[Identity Resolution]

    B --> B1["domain-profile\n(interpreted profile)"]
    B --> B2["domain-records\n(raw protocol records)"]
    B --> B3["domain-profile-and-records\n(side-by-side comparison)"]

    C --> C1["account-primary-names\n(multi-chain primary names)"]

    D --> D1["account-primary-name-records\n(primary name + profile in one query)"]

    B1 & B2 & B3 & C1 & D1 --> E[OmnigraphStaticExampleSet]
    E --> F[config.ts / examples.json / responses.json]

    C1 -.->|hostSeparatePage:true but NO .mdx file| G["⚠️ Broken sidebar link\n/examples/account-primary-names"]
Loading

Reviews (4): Last reviewed commit: "rename" | Re-trigger Greptile

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 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 `@docs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astro`:
- Around line 42-44: The template in OmnigraphStaticExampleSet uses a <p
set:html={description}/> which can produce invalid HTML when description
contains block-level elements; replace the <p> wrapper with a block-level
container (e.g., a plain <div> or another suitable block element) and apply
set:html to that element so injected HTML is not nested inside a
paragraph—update the element around the description variable accordingly.

In `@docs/ensnode.io/src/data/omnigraph-examples/schema.graphql`:
- Around line 610-613: The current description for DomainResolver.effective
conflates behavior for UnindexedDomain and indexed domains; update the comment
to state that effective: Resolver is null when no active Resolver exists, and
add a clarifying clause that the "Domain is not in the Canonical Nametree"
condition specifically applies to lookup via getDomainEffectiveResolver (used
for indexed domains that may lack canonicalName), while noting UnindexedDomain
resolves resolver.effective directly from domain.effectiveResolverId and can
return the wildcard ancestor’s resolver even when resolver.assigned is null (see
UnindexedDomain, domain.effectiveResolverId, resolver.assigned, and
getDomainEffectiveResolver).
🪄 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: ASSERTIVE

Plan: Pro

Run ID: 73d593cf-cfe5-4329-8f5a-87182963124b

📥 Commits

Reviewing files that changed from the base of the PR and between 83ed372 and 1aa7883.

📒 Files selected for processing (29)
  • docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts
  • docs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astro
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-events.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-migrated-names.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-resolver-permissions.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-by-name.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-events.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-profile.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-records.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-resolver.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains-recently-registered.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domains-by-address.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/eth-by-version.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/find-domains.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/index.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/namegraph.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-contract.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-user.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/registry-domains.mdx
  • docs/ensnode.io/src/data/omnigraph-examples/config.ts
  • docs/ensnode.io/src/data/omnigraph-examples/examples.json
  • docs/ensnode.io/src/data/omnigraph-examples/responses.json
  • docs/ensnode.io/src/data/omnigraph-examples/schema.graphql
  • docs/ensnode.io/src/data/omnigraph-examples/snapshot.json
  • packages/ensnode-sdk/src/omnigraph-api/example-queries.ts
  • packages/ensskills/skills/omnigraph/SKILL.md
💤 Files with no reviewable changes (19)
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-records.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/registry-domains.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-by-name.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-resolver-permissions.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-user.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-profile.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-resolver.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains-recently-registered.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/eth-by-version.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/find-domains.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/namegraph.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-events.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-events.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-contract.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domains-by-address.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-migrated-names.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/index.mdx

Comment thread docs/ensnode.io/src/data/omnigraph-examples/schema.graphql
title: "Account Domains",
description: "Load domains owned by an address via the Omnigraph `account` root field.",
description:
"This query below loads domains owned by an address via the Omnigraph `account` root field.",

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 Three descriptions still use markdown backtick syntax on lines 99, 187, and 196. Since OmnigraphStaticExampleSet.astro now renders description via set:html, Astro bypasses markdown processing and emits the string as raw HTML. Backticks render as literal ` characters in the browser instead of <code>-styled elements. The other descriptions updated in this PR already use <code> tags — these three need the same treatment.

Suggested change
"This query below loads domains owned by an address via the Omnigraph `account` root field.",
"This query below loads domains owned by an address via the Omnigraph <code>account</code> root field.",

@shrugs shrugs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

unindexed domain seems to have snuck in

@shrugs

shrugs commented Jun 8, 2026

Copy link
Copy Markdown
Member

main has my version; if you can have claude remove your unindexed domain changes and merge mine you shouldn't have any issues

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 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/ensnode-sdk/src/omnigraph-api/example-queries.ts`:
- Line 518: The GraphQL operation name `AccountPrimaryName` should be renamed to
the plural form `AccountPrimaryNames` to match the example ID
`account-primary-names` and the `primaryNames` field that returns an array;
update the operation declaration (change `query AccountPrimaryName(...)` to
`query AccountPrimaryNames(...)`) and update any references or example metadata
that reference the operation name so they remain consistent with
`account-primary-names` and the `primaryNames` field.

In `@packages/ensskills/skills/omnigraph/SKILL.md`:
- Line 724: The GraphQL operation name AccountPrimaryName should be renamed to
the plural form (e.g., AccountPrimaryNames) to match the section ID
account-primary-names and the returned field primaryNames; update the operation
declaration in the SKILL.md query and any corresponding usages in
example-queries.ts to use the new operation name so names are consistent across
docs and examples.
🪄 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: ASSERTIVE

Plan: Pro

Run ID: fb460eb6-21a6-4b0f-b67b-c16d38d4927a

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa7883 and 3164af3.

📒 Files selected for processing (8)
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdx
  • docs/ensnode.io/src/data/omnigraph-examples/config.ts
  • docs/ensnode.io/src/data/omnigraph-examples/examples.json
  • docs/ensnode.io/src/data/omnigraph-examples/responses.json
  • docs/ensnode.io/src/data/omnigraph-examples/snapshot.json
  • packages/ensnode-sdk/src/omnigraph-api/example-queries.ts
  • packages/ensskills/skills/omnigraph/SKILL.md

id: "account-primary-name",
id: "account-primary-names",
query: `
query AccountPrimaryName($address: Address!) {

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.

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Rename query operation to match plural semantics.

The operation name is AccountPrimaryName (singular) but the example ID is account-primary-names (plural) and the field being queried is primaryNames which returns an array. This mismatch could confuse users.

♻️ Rename to match plural convention
-query AccountPrimaryName($address: Address!) {
+query AccountPrimaryNames($address: Address!) {
   account(by: { address: $address }) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
query AccountPrimaryName($address: Address!) {
query AccountPrimaryNames($address: Address!) {
account(by: { address: $address }) {
🤖 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/ensnode-sdk/src/omnigraph-api/example-queries.ts` at line 518, The
GraphQL operation name `AccountPrimaryName` should be renamed to the plural form
`AccountPrimaryNames` to match the example ID `account-primary-names` and the
`primaryNames` field that returns an array; update the operation declaration
(change `query AccountPrimaryName(...)` to `query AccountPrimaryNames(...)`) and
update any references or example metadata that reference the operation name so
they remain consistent with `account-primary-names` and the `primaryNames`
field.

### account-primary-names

```graphql
query AccountPrimaryName($address: Address!) {

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.

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Rename query operation to match plural semantics.

The operation name is AccountPrimaryName (singular) but the section ID is account-primary-names (plural) and the field being queried is primaryNames which returns an array. This mismatch mirrors the issue in example-queries.ts and should be fixed consistently.

♻️ Rename to match plural convention
-query AccountPrimaryName($address: Address!) {
+query AccountPrimaryNames($address: Address!) {
   account(by: { address: $address }) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
query AccountPrimaryName($address: Address!) {
query AccountPrimaryNames($address: Address!) {
account(by: { address: $address }) {
🤖 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/ensskills/skills/omnigraph/SKILL.md` at line 724, The GraphQL
operation name AccountPrimaryName should be renamed to the plural form (e.g.,
AccountPrimaryNames) to match the section ID account-primary-names and the
returned field primaryNames; update the operation declaration in the SKILL.md
query and any corresponding usages in example-queries.ts to use the new
operation name so names are consistent across docs and examples.

title: "Account Domains",
description: "Load domains owned by an address via the Omnigraph `account` root field.",
description:
"This query below loads domains owned by an address via the Omnigraph `account` root field.",

@vercel vercel Bot Jun 8, 2026

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.

Inconsistent code formatting in omnigraph example descriptions: markdown backticks used instead of HTML <code> tags

Fix on Vercel

namespace: ENSNamespaceIds.Mainnet,
hostSeparatePage: true,
},
{

@vercel vercel Bot Jun 8, 2026

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.

The config.ts file references two example IDs (account-primary-names and account-primary-name-records) that don't have properly configured .mdx files

Fix on Vercel

Comment on lines +104 to 111
{
id: "account-primary-names",
title: "Account Primary Names",
description: "This query loads the primary names for an account on Ethereum and Base.",
category: "Accounts",
namespace: ENSNamespaceIds.Mainnet,
hostSeparatePage: true,
},

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 .mdx page for account-primary-names

account-primary-names has hostSeparatePage: true, which causes OMNIGRAPH_EXAMPLES_SIDEBAR_ITEMS to include a sidebar entry pointing to /docs/integrate/omnigraph/examples/account-primary-names. No corresponding .mdx file exists at that path (compare: account-primary-name-records.mdx was added, but account-primary-names.mdx was not). Any reader who clicks that sidebar link will get a 404. Either set hostSeparatePage: false or add the missing page 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