docs: add sandbox and ensv2readiness#2103
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds interactive StackBlitz playground infrastructure, Omnigraph example metadata/pages and response-fetching, UI components to embed and display examples (query/variables/response/curl), Starlight llms-txt plugin + patch to exclude examples from llms outputs, and docs package wiring (aliases, tsconfig, Vitest). ChangesOmnigraph Examples & Example Query Infrastructure
StackBlitz Playground Runtime Infrastructure
Interactive Playground UI Components
Docs pages, sidebar, redirects, and styling
Starlight llms-txt plugin & pnpm patch
Docs package config and helpers
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related issues
Possibly related PRs
Suggested labels
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
|
Greptile SummaryThis PR adds interactive StackBlitz-based code playgrounds for
Confidence Score: 4/5Safe to merge for the docs site; one package export declaration needs to be reconciled before the next SDK publish. The
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[MDX Page] --> B[EnskitExampleInteractivePlayground or EnssdkExampleInteractivePlayground]
B --> C[loadEnskitExampleProject or loadEnssdkExampleProject]
C --> D[fetchRawExampleProjectFromGlob import.meta.glob eager]
C --> E[replaceEnvWithValues substitute ENSNODE_URL literal]
C --> F[resolveEnskitExamplePackageManifest or resolveEnssdkExamplePackageManifest]
F --> G[resolveMonorepoSpecifier catalog: / workspace: to version]
F --> H[resolvePeerSpecifier peer deps from devDependencies or catalog]
C --> I[buildPlaygroundTsconfig vite-react or node tsconfig]
D & E & F & I --> J[assemblePlaygroundProject PlaygroundProject]
J --> K[CodePlayground React component]
K --> L[sdk.embedProject StackBlitz WebContainers iframe]
Reviews (17): Last reviewed commit: "final fixes" | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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/molecules/CodePlayground.tsx`:
- Around line 25-79: The useEffect that calls sdk.embedProject is missing
dependencies and a cleanup: include title, description, files, dependencies,
entryFileName, height, and terminalHeight in the effect dependency array (or
compute stable values via useMemo for packageJson/tsconfig/projectFiles if the
embed should remain static) so prop changes re-embed correctly, and return a
cleanup function that disposes or unmounts the embed (call the SDK's
cleanup/unmount method or remove the iframe/container referenced by ref) to
avoid leaks; update the effect around useEffect, ref, and sdk.embedProject
accordingly and add a brief comment if you intentionally keep an empty deps
array after memoizing values.
In `@docs/ensnode.io/src/components/playgrounds/common.ts`:
- Around line 1-2: The ENSNODE_URL constant in common.ts currently points at a
Sepolia testnet endpoint; update it to the production ENSNode URL and remove the
TODO. Locate the exported constant ENSNODE_URL in
docs/ensnode.io/src/components/playgrounds/common.ts and replace the testnet
string with the official production endpoint (or make ENSNODE_URL read from an
environment variable like process.env.ENSNODE_URL with a production default) so
the live playground queries mainnet data.
In `@docs/ensnode.io/src/components/playgrounds/EnssdkResolutionApi.tsx`:
- Around line 4-29: The playground snippet imports createEnsNodeClient,
omnigraph, graphql and asInterpretedName from packages `enssdk/core`,
`enssdk/omnigraph`, and `enssdk`, but the EnssdkPlayground dependency is
declared as `@ensnode/ensnode-sdk` which does not export those modules; update
the playground dependency to use "enssdk": "latest" (so imports like
createEnsNodeClient, omnigraph, graphql, asInterpretedName resolve) or
alternatively rewrite the snippet to only use exports provided by
`@ensnode/ensnode-sdk` (e.g., replace imports and calls in the snippet such as
createEnsNodeClient, omnigraph, graphql, asInterpretedName to their equivalents
from the installed package).
🪄 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: 27c8010f-9a94-4ed0-b672-0cadddfc4a35
⛔ Files ignored due to path filters (2)
docs/ensnode.io/public/ensomnigraph.pngis excluded by!**/*.pngpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (7)
docs/ensnode.io/package.jsondocs/ensnode.io/src/components/molecules/CodePlayground.tsxdocs/ensnode.io/src/components/molecules/EnssdkPlayground.tsxdocs/ensnode.io/src/components/playgrounds/EnssdkResolutionApi.tsxdocs/ensnode.io/src/components/playgrounds/common.tsdocs/ensnode.io/src/content/docs/docs/integrate/ensv2-readiness.mdxdocs/ensnode.io/src/content/docs/docs/integrate/index.mdx
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@patches/starlight-llms-txt`@0.5.1.patch:
- Around line 1-18: You added use of starlightLllmsTxtContext.exclude in
llms-full.txt.ts (inside the GET handler that calls generateLlmsTxt), which is a
fragile local patch to starlight-llms-txt@0.5.1; to make this maintainable, add
a clear inline comment in llms-full.txt.ts above the import/use of
starlightLllmsTxtContext stating the patch intent and target version
(starlight-llms-txt@0.5.1) and whether it’s temporary, open a short upstream PR
against starlight-llms-txt to request official exclude support (reference
generateLlmsTxt API and the exclude option), and add a note in the repo
docs/changelog describing the patch with instructions to remove/update it when
the upstream releases a fix.
🪄 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: 620b72a5-0759-47ee-ad68-6925791c0548
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
docs/ensnode.io/config/integrations/llms-txt.tsdocs/ensnode.io/config/integrations/starlight/index.tspackage.jsonpatches/starlight-llms-txt@0.5.1.patch
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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/docs/EnssdkExamplePanels.astro`:
- Line 14: The "TypeScript (enssdk)" label paragraph in
EnssdkExamplePanels.astro uses a hardcoded class "text-gray-900" which is too
dark for dark mode—update the class on the <p> element (the element containing
the "TypeScript (enssdk)" text) to use dark-mode variants or semantic colors,
e.g. replace "text-gray-900" with "text-gray-900 dark:text-gray-100" or with a
semantic token like "text-neutral-900 dark:text-neutral-100" so the label
remains readable in both themes; apply the same change to the other similar
label instance.
In `@docs/ensnode.io/src/components/docs/OmnigraphRecipePanels.astro`:
- Around line 245-250: navigator.clipboard.writeText call lacks error handling
so failures give no user feedback; wrap the writeText call in a promise catch
(or use async/await with try/catch) and on error set copyBtn.textContent to a
failure message (e.g., "Copy failed" or "Permission denied"), optionally log the
error (console.error) and revert to defaultLabel after the same timeout; update
the branch that currently sets "Copied!" to also handle and display failures,
referencing navigator.clipboard.writeText, copyBtn and defaultLabel so users get
visible feedback when the copy operation fails.
In `@packages/ensnode-sdk/package.json`:
- Line 23: The package.json currently lists subpath exports ("./internal" and
"./omnigraph-api/example-queries") at the top-level exports but
publishConfig.exports only publishes the root ("."); update
publishConfig.exports to mirror the top-level "exports" entries so those
subpaths are included in the published package. Specifically, add entries for
"./internal" and "./omnigraph-api/example-queries" (pointing to the same targets
as the top-level exports) into the publishConfig.exports object, ensuring the
published artifact exposes the same subpath mappings as the development package.
🪄 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: ad387b8f-414a-4e38-8623-e904d04a5b95
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (30)
apps/ensapi/src/omnigraph-api/schema/example-queries.integration.test.tsapps/ensapi/src/omnigraph-api/schema/example-queries.test.tsdocs/ensnode.io/config/integrations/llms-txt.tsdocs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.tsdocs/ensnode.io/package.jsondocs/ensnode.io/src/components/docs/EnssdkExamplePanels.astrodocs/ensnode.io/src/components/docs/OmnigraphRecipeExample.astrodocs/ensnode.io/src/components/docs/OmnigraphRecipePanels.astrodocs/ensnode.io/src/components/organisms/ExampleCard.astrodocs/ensnode.io/src/components/playgrounds/EnssdkResolutionApi.tsxdocs/ensnode.io/src/components/playgrounds/common.tsdocs/ensnode.io/src/components/playgrounds/quickstartResolveDomainSnippet.tsdocs/ensnode.io/src/content.config.tsdocs/ensnode.io/src/content/docs/docs/integrate/index.mdxdocs/ensnode.io/src/content/docs/docs/integrate/integration-options/enssdk.mdxdocs/ensnode.io/src/content/docs/docs/integrate/integration-options/enssdk/cookbook/index.mdxdocs/ensnode.io/src/content/docs/docs/integrate/integration-options/enssdk/cookbook/resolution-api.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/cookbook.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/cookbook/account-domains.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/cookbook/domain-by-name.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/cookbook/index.mdxdocs/ensnode.io/src/content/snippets/omnigraphAdmin.tsdocs/ensnode.io/src/data/ens-v1-examples-queries.tsdocs/ensnode.io/src/data/ens-v2-examples-queries/account-domains.tsdocs/ensnode.io/src/data/ens-v2-examples-queries/common.tsdocs/ensnode.io/src/data/ens-v2-examples-queries/domain-by-name.tsdocs/ensnode.io/src/data/ens-v2-examples-queries/index.tsdocs/ensnode.io/src/lib/omnigraph-recipe.tspackages/ensnode-sdk/package.jsonpackages/ensnode-sdk/src/omnigraph-api/example-queries.ts
💤 Files with no reviewable changes (1)
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/cookbook.mdx
lightwalker-eth
left a comment
There was a problem hiding this comment.
@sevenzing Please take the lead to merge after you've completed your own review and feel good about merging 👍 Thanks!
…!! i found some shit
lightwalker-eth
left a comment
There was a problem hiding this comment.
@sevenzing Awesome updates in this PR! Great work 🚀 Reviewed and shared some suggestions. Could you action these suggestions in a new and separate PR tomorrow? Thanks!
| :::note[First load may take a moment] | ||
| The editor runs entirely in your browser. Downloading of **enskit**, **enssdk** and their heavy dependencies may take 30-60 seconds. | ||
| ::: |
There was a problem hiding this comment.
| :::note[First load may take a moment] | |
| The editor runs entirely in your browser. Downloading of **enskit**, **enssdk** and their heavy dependencies may take 30-60 seconds. | |
| ::: | |
| :::note[First load may take a few minutes] | |
| The embedded StackBlitz editor runs entirely in your browser. Downloading and installing all npm packages may take a few minutes. Watch the install progress in the terminal of the StackBlitz editor. | |
| ::: |
| /** Starlight heading anchor on the hosted instances page (e.g. `ensnode-v2-sepolia`). */ | ||
| hostedInstanceAnchor: string; | ||
| /** ENS namespace label for the hosted instance (e.g. `sepolia-v2`). */ | ||
| hostedInstanceNamespace: string; |
There was a problem hiding this comment.
We have a type alias for these in the datasources package 👍
Lite PR
Tip: Review docs on the ENSNode PR process
Summary
Why
Testing
Notes for Reviewer (Optional)
Pre-Review Checklist (Blocking)