Skip to content

Release New Version#2278

Merged
shrugs merged 1 commit into
mainfrom
hotfix/lockfile
Jun 9, 2026
Merged

Release New Version#2278
shrugs merged 1 commit into
mainfrom
hotfix/lockfile

Conversation

@shrugs

@shrugs shrugs commented Jun 9, 2026

Copy link
Copy Markdown
Member

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@ensnode/datasources@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - Add contract identification by address. @ensnode/datasources exports identifyDatasourceContracts(namespaceId, query), which finds every well-known contract in a namespace's datasources whose address matches a given address, optionally scoped to a chain.

  • #2191 39cb445 Thanks @tk-o! - Updates the sepolia-v2 ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia.

  • #2267 6165f50 Thanks @shrugs! - Consolidate UniversalResolver onto the IUniversalResolver proxy. Each ENSRoot Datasource now exposes a single UniversalResolver contract pointing at the proxy address (0xeeeeeeee14d718c2b47d9923deab1335e144eeee on mainnet/sepolia), replacing the separate UniversalResolver (V1) and UniversalResolverV2 contracts. The exported UniversalResolverABI is now IUniversalResolver merged with IMulticallable.

  • Updated dependencies [83ed372]:

    • enssdk@1.15.2

@namehash/ens-referrals@1.15.2

Patch Changes

enscli@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - enscli gains datasources identify <address>: an offline command that reports which well-known ENS contract an address corresponds to. It accepts a bare address, a chain-scoped chainId:address, or full CAIP-10 eip155:chainId:address, and --namespace (default mainnet) selects which namespace to search. A miss returns { matches: [] } with exit code 0.

  • #2242 0eec193 Thanks @shrugs! - Introduce enscli, a new agent- and human-friendly CLI for ENS that wraps enssdk and the ENS Omnigraph. It supports raw Omnigraph queries (enscli ensnode omnigraph "<query>" --variables …), offline schema exploration (enscli ensnode omnigraph schema [Type[.field]]), indexing status, ENSRainbow healing, and namehash/labelhash. It defaults to NameHash-hosted instances per --namespace (mainnet, sepolia, sepolia-v2), resolves config from flags/env/.env, outputs JSON when piped and a pretty form in a TTY, and hardens inputs against agent hallucinations.

  • Updated dependencies [0eec193, 83ed372, 0eec193, 83ed372, 39cb445, 04388d2, 6165f50]:

    • @ensnode/datasources@1.15.2
    • @ensnode/ensnode-sdk@1.15.2
    • enssdk@1.15.2
    • @ensnode/ensrainbow-sdk@1.15.2

@ensnode/ensdb-sdk@1.15.2

Patch Changes

  • #2259 5f929d8 Thanks @shrugs! - Index-accelerate REGISTRATION_TIMESTAMP / REGISTRATION_EXPIRY-ordered domain queries (e.g. Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joined domains → latest_registration_indexes → registrations and sorted the full registry partition — ~55s for .eth's subdomains. The latest registration's start/expiry is now mirrored onto the Domain row (__latestRegistrationStart / __latestRegistrationExpiry) with composite indexes (registry_id, <col>, id), turning the query into an index-ordered scan. The sort columns are NOT NULL — an absent value (no registration, or a never-expiring registration) is materialized as a +∞ sentinel — so a single plain composite per column serves both directions with a plain keyset tuple, and the sentinel sorts last for ASC and first for DESC.

  • #2271 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_name.

  • Updated dependencies [83ed372, 0eec193, 83ed372]:

    • @ensnode/ensnode-sdk@1.15.2
    • enssdk@1.15.2

enskit@1.15.2

Patch Changes

  • Updated dependencies [83ed372]:
    • enssdk@1.15.2

@ensnode/ensnode-sdk@1.15.2

Patch Changes

  • #2271 83ed372 Thanks @shrugs! - The EIP-165 supportsInterface probe (used to classify a Resolver's ENSIP-10 extended support at index time) now opts out of Ponder's empty-response retry. A 0x ("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder's context.client previously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving to extended = false).

  • #2242 0eec193 Thanks @shrugs! - getDefaultEnsNodeUrl now returns the hosted default for the sepolia-v2 namespace (https://api.v2-sepolia.ensnode.io).

  • Updated dependencies [0eec193, 83ed372, 39cb445, 6165f50]:

    • @ensnode/datasources@1.15.2
    • enssdk@1.15.2

@ensnode/ensrainbow-sdk@1.15.2

Patch Changes

  • #2186 04388d2 Thanks @djstrong! - Labelhash verification for heal responses now runs in ensrainbow (server) instead of @ensnode/ensrainbow-sdk (client). Malformed rainbow records — where the stored label does not hash back to the requested labelHash — are rejected as NotFound.

  • Updated dependencies [83ed372]:

    • enssdk@1.15.2

enssdk@1.15.2

Patch Changes

  • #2271 83ed372 Thanks @shrugs! - Adds the ResolvableName branded type with isResolvableName/asResolvableName guards — an InterpretedName that can be DNS-encoded and resolved (no Encoded LabelHash segments, every label under 256 bytes). Also adds the UnindexedDomainId type and makeUnindexedDomainId; DomainId now includes UnindexedDomainId.

ensskills@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - The enscli agent skill documents the new datasources identify command.

  • #2242 0eec193 Thanks @shrugs! - Introduce ensskills, a versioned, skills-npm-installable package of ENS agent skills. It ships the ens-protocol skill (a concise, stable, vendor-neutral conceptual model of the ENS protocol — nametree, normalization, hashing, registry/resolver/registrar, resolution, records, multichain — with pull-as-needed reference pages), the omnigraph skill (autogenerated schema reference + vetted example queries, plus prose on the unified ENSv1+ENSv2 datamodel and resolution), and the enscli skill (running Omnigraph queries and the other CLI commands, with the output contract, namespace/URL resolution, and input hardening), with stub skills reserved for enssdk, enskit, migrate-to-omnigraph, and unigraph-sql.

  • #2242 0eec193 Thanks @shrugs! - Point the base skill at the published llms.txt / llms-full.txt docs endpoints so agents can load the full ENSNode documentation when a question reaches beyond the skills.

@namehash/namehash-ui@1.15.2

Patch Changes

@ensnode/ponder-sdk@1.15.2

@ensnode/ponder-subgraph@1.15.2

ensadmin@1.15.2

Patch Changes

ensapi@1.15.2

Patch Changes

  • #2240 7d23ee9 Thanks @sevenzing! - Omnigraph API: Introduces Domain.resolve.profile and PrimaryNameRecord.resolve.profile for resolving semantic record values.

  • #2265 c6f9643 Thanks @shrugs! - Omnigraph API: Adds DomainResolver.effective, the Resolver that ENS Forward Resolution (ENSIP-10) lands on for a Domain. Complements the existing DomainResolver.assigned (the Domain's directly-assigned Resolver).

  • #2267 6165f50 Thanks @shrugs! - Omnigraph API: Resolution now uses the ENSv2-ready stable UniversalResolver proxy address when not accelerated.

  • #2268 ff75f79 Thanks @shrugs! - Forward Resolution now fully delegates to the UniversalResolver whenever records cannot be accelerated, correctly implementing the ENSv2-Readiness check for ur.integration-test.eth. Unaccelerated requests are always delegated to the UniversalResolver.

  • #1974 8a86fb4 Thanks @sevenzing! - Changes related to Omnigraph:

    • add Domain.resolve { records, trace, acceleration, profile? } for forward resolution driven by the GraphQL selection set
    • add Account.resolve { primaryName(by: ...), primaryNames(where: ...) } for reverse (ENSIP-19 primary name) resolution with @oneOf inputs (coinType/chainName, coinTypes/chainNames)
    • add PrimaryNameRecord.resolve { records, ... } for forward resolution of the resolved primary name
  • #2271 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_name.

  • #2271 83ed372 Thanks @shrugs! - Omnigraph API — Resolvable-but-unindexed Domains & Accounts (off-chain / CCIP-Read names, unindexed 3DNS names, wildcard subnames) are now resolvable via Query.domain(by: { name }) and Query.account(by: { address }), instead of returning null. This is supported by an additional concept, the UnindexedDomain, which expands the possible concrete types of the Domain interface.

  • Updated dependencies [0eec193, 83ed372, 0eec193, 83ed372, 39cb445, 5f929d8, 83ed372, c8267e4, 6165f50]:

    • @ensnode/datasources@1.15.2
    • @ensnode/ensnode-sdk@1.15.2
    • enssdk@1.15.2
    • @ensnode/ensdb-sdk@1.15.2
    • @namehash/ens-referrals@1.15.2
    • @ensnode/ponder-subgraph@1.15.2

ensindexer@1.15.2

Patch Changes

  • #2271 83ed372 Thanks @shrugs! - The EIP-165 supportsInterface probe (used to classify a Resolver's ENSIP-10 extended support at index time) now opts out of Ponder's empty-response retry. A 0x ("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder's context.client previously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving to extended = false).

  • #2191 39cb445 Thanks @tk-o! - Updates the sepolia-v2 ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia.

  • #2259 5f929d8 Thanks @shrugs! - Index-accelerate REGISTRATION_TIMESTAMP / REGISTRATION_EXPIRY-ordered domain queries (e.g. Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joined domains → latest_registration_indexes → registrations and sorted the full registry partition — ~55s for .eth's subdomains. The latest registration's start/expiry is now mirrored onto the Domain row (__latestRegistrationStart / __latestRegistrationExpiry) with composite indexes (registry_id, <col>, id), turning the query into an index-ordered scan. The sort columns are NOT NULL — an absent value (no registration, or a never-expiring registration) is materialized as a +∞ sentinel — so a single plain composite per column serves both directions with a plain keyset tuple, and the sentinel sorts last for ASC and first for DESC.

  • #2271 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_name.

  • Updated dependencies [0eec193, 83ed372, 0eec193, 83ed372, 39cb445, 5f929d8, 83ed372, c8267e4, 04388d2, 6165f50]:

    • @ensnode/datasources@1.15.2
    • @ensnode/ensnode-sdk@1.15.2
    • enssdk@1.15.2
    • @ensnode/ensdb-sdk@1.15.2
    • @ensnode/ensrainbow-sdk@1.15.2
    • @ensnode/ponder-sdk@1.15.2

ensrainbow@1.15.2

Patch Changes

  • #2186 04388d2 Thanks @djstrong! - Labelhash verification for heal responses now runs in ensrainbow (server) instead of @ensnode/ensrainbow-sdk (client). Malformed rainbow records — where the stored label does not hash back to the requested labelHash — are rejected as NotFound.

  • Updated dependencies [83ed372, 0eec193, 83ed372, 04388d2]:

    • @ensnode/ensnode-sdk@1.15.2
    • enssdk@1.15.2
    • @ensnode/ensrainbow-sdk@1.15.2

fallback-ensapi@1.15.2

Patch Changes

@docs/ensnode@1.15.2

Patch Changes

  • Updated dependencies [83ed372, 0eec193]:
    • @ensnode/ensnode-sdk@1.15.2
    • @namehash/namehash-ui@1.15.2

@docs/ensrainbow@1.15.2

Patch Changes

  • Updated dependencies []:
    • @namehash/namehash-ui@1.15.2

@ensnode/enskit-react-example@0.0.10

Patch Changes

  • Updated dependencies [83ed372]:
    • enssdk@1.15.2
    • enskit@1.15.2

@ensnode/enssdk-example@0.0.4

Patch Changes

  • Updated dependencies [83ed372]:
    • enssdk@1.15.2

@ensnode/integration-test-env@1.15.2

Patch Changes

@ensnode/ensindexer-perf-testing@1.15.2

@ensnode/shared-configs@1.15.2

Copilot AI review requested due to automatic review settings June 9, 2026 16:28
@shrugs shrugs requested a review from a team as a code owner June 9, 2026 16:28
@vercel

vercel Bot commented Jun 9, 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 9, 2026 4:28pm
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
admin.ensnode.io Skipped Skipped Jun 9, 2026 4:28pm
ensnode.io Skipped Skipped Jun 9, 2026 4:28pm
ensrainbow.io Skipped Skipped Jun 9, 2026 4:28pm

@coderabbitai

coderabbitai Bot commented Jun 9, 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 25 minutes and 59 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: 49d4e1ee-df44-44ff-be7f-30ff4bd39361

📥 Commits

Reviewing files that changed from the base of the PR and between de58330 and d636789.

📒 Files selected for processing (2)
  • examples/enskit-react-example/package.json
  • examples/enssdk-example/package.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hotfix/lockfile

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.

@changeset-bot

changeset-bot Bot commented Jun 9, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: d636789

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

@greptile-apps

greptile-apps Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR rolls back the enskit and enssdk dependency versions in both example apps from 1.15.2 to 1.15.1 so that npm install works against the publicly available npm registry while 1.15.2 remains unpublished.

  • examples/enskit-react-example/package.json: Both enskit and enssdk reverted to 1.15.1.
  • examples/enssdk-example/package.json: enssdk reverted to 1.15.1.

Confidence Score: 5/5

Safe to merge — the only change is pinning example app dependencies to a known-good published version.

Both example apps are private packages that pull enskit/enssdk from the public npm registry rather than via workspace:*. Reverting to 1.15.1 unblocks installation until 1.15.2 is published. The workspace source packages are unaffected and remain at 1.15.2.

No files require special attention. Once 1.15.2 is published to npm, these pins should be updated to keep the examples in sync with the latest release.

Important Files Changed

Filename Overview
examples/enskit-react-example/package.json Downgrades enskit and enssdk from 1.15.2 to 1.15.1 so the example can be installed from npm while 1.15.2 is unpublished.
examples/enssdk-example/package.json Downgrades enssdk from 1.15.2 to 1.15.1 for the same install-from-npm reason.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Example Apps\nenskit-react-example\nenssdk-example] -->|install from npm registry| B{Version available\non npm?}
    B -->|1.15.1 ✅| C[Install succeeds]
    B -->|1.15.2 ❌ not yet published| D[Install fails]
    C --> E[Developers can use examples]
    D --> F[Blocked until 1.15.2 is published]

    subgraph Workspace packages
        G[packages/enssdk v1.15.2]
        H[packages/enskit v1.15.2]
    end
Loading

Reviews (1): Last reviewed commit: "fix: keep example apps on 1.15.1 for ins..." | Re-trigger Greptile

@shrugs shrugs changed the title fix: keep example apps on 1.15.1 for install Release New Version Jun 9, 2026
@shrugs shrugs merged commit a83c910 into main Jun 9, 2026
24 checks passed
@shrugs shrugs deleted the hotfix/lockfile branch June 9, 2026 16:30

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

Pins the example applications’ enssdk/enskit dependencies back to 1.15.1 so the examples can be installed against an available/published package version, independent of the monorepo’s in-repo package versions.

Changes:

  • Downgrade examples/enssdk-example to use enssdk@1.15.1.
  • Downgrade examples/enskit-react-example to use enskit@1.15.1 and enssdk@1.15.1.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
examples/enssdk-example/package.json Pins enssdk dependency to 1.15.1 for installability.
examples/enskit-react-example/package.json Pins enskit/enssdk dependencies to 1.15.1 for installability.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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