Skip to content

Ponder Migration Guide#835

Open
nikbhintade wants to merge 4 commits intomainfrom
nb/ponder-migrations
Open

Ponder Migration Guide#835
nikbhintade wants to merge 4 commits intomainfrom
nb/ponder-migrations

Conversation

@nikbhintade
Copy link
Member

@nikbhintade nikbhintade commented Mar 25, 2026

Migration guide which can work for both users and LLMs (tried with examples from ponder and gave this guide to Claude which migrate it correctly)

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive migration guide from Ponder to HyperIndex, covering config and schema conversion, handler migration, entity operations, examples, validation, and tooling/bootstrapping tips.
    • Updated documentation navigation to include the new migration guide for easier discovery.

@nikbhintade nikbhintade requested a review from keenbeen32 March 25, 2026 10:13
@nikbhintade nikbhintade self-assigned this Mar 25, 2026
@vercel
Copy link

vercel bot commented Mar 25, 2026

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

Project Deployment Actions Updated (UTC)
envio-docs Ready Ready Preview, Comment Mar 25, 2026 10:59am

Request Review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 25, 2026

Warning

Rate limit exceeded

@nikbhintade has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 45 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, 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 have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 47ea3e37-b140-4e77-bf5c-ffcbf07eaec8

📥 Commits

Reviewing files that changed from the base of the PR and between e10d898 and e72f4bd.

📒 Files selected for processing (1)
  • docs/HyperIndex/migrate-from-ponder.md
📝 Walkthrough

Walkthrough

Adds a new HyperIndex migration doc that guides converting Ponder projects to HyperIndex (config, schema, handlers, field_selection, factory contracts, validation, and bootstrap commands) and updates the HyperIndex sidebar to include the new page.

Changes

Cohort / File(s) Summary
Migration doc
docs/HyperIndex/migrate-from-ponder.md
New end-to-end migration guide from Ponder to HyperIndex: config and schema conversion examples, handler rewrite patterns, field_selection notes, entity ID/relations mapping, factory contract registration, Effect API guidance, validation CLI usage, and bootstrap suggestions.
Sidebar update
sidebarsHyperIndex.js
Inserted migrate-from-ponder into the "Migrate to Envio" category items array to expose the new migration doc in the navigation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • Jordy-Baby
  • DenhamPreen

Poem

🐰 Hopping docs in paw, I bring the light,
From Ponder's burrow to HyperIndex's height,
Configs and schemas, rewritten with cheer,
Handlers reborn — migration is near! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'Ponder Migration Guide' accurately summarizes the main change: adding a new documentation page for migrating from Ponder to HyperIndex, along with related sidebar navigation updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 nb/ponder-migrations

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/HyperIndex/migrate-from-ponder.md (1)

353-355: Consider recommending this ID pattern in the main handler example.

This multichain ID pattern ${event.chainId}_${event.params.tokenId} doesn't require field_selection (unlike transaction.hash) and is more deterministic. It would be a better choice for the main handler example on line 286, especially since field_selection wasn't explained in that context.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/HyperIndex/migrate-from-ponder.md` around lines 353 - 355, Update the
main handler example to recommend and show using a deterministic multichain ID
pattern by constructing id from event.chainId and event.params.tokenId (e.g.,
the `${event.chainId}_${event.params.tokenId}` pattern) instead of relying on
transaction.hash; modify the example handler where the ID is created (the
variable named id) to use that interpolation and add a short note that this
pattern avoids needing field_selection and is more deterministic across chains.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/HyperIndex/migrate-from-ponder.md`:
- Around line 205-209: The `@derivedFrom` relation on Token (transfers:
[TransferEvent!]! `@derivedFrom`(field: "token_id")) is invalid because the
TransferEvent type is missing the referenced token_id field; update the
TransferEvent type definition to include the corresponding token_id field (e.g.,
token_id: ID! or token_id: String! depending on the ID type used) so the
`@derivedFrom`(field: "token_id") points to an existing field.
- Around line 282-299: The handler example for MyToken.Transfer.handler uses
event.transaction.hash but the docs earlier require adding field_selection to
request transaction.hash; update the example by either (A) adding a note
instructing readers to include a field_selection under the Transfer event that
requests transaction_fields -> hash so event.transaction.hash will be populated,
or (B) change the ID construction inside the MyToken.Transfer.handler to a safe
alternative that does not rely on transaction.hash (e.g., use event.chainId,
event.block.number and event.logIndex). Ensure the instruction references the
handler example and the field_selection configuration so readers know where to
make the change.

---

Nitpick comments:
In `@docs/HyperIndex/migrate-from-ponder.md`:
- Around line 353-355: Update the main handler example to recommend and show
using a deterministic multichain ID pattern by constructing id from
event.chainId and event.params.tokenId (e.g., the
`${event.chainId}_${event.params.tokenId}` pattern) instead of relying on
transaction.hash; modify the example handler where the ID is created (the
variable named id) to use that interpolation and add a short note that this
pattern avoids needing field_selection and is more deterministic across chains.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9b14dd70-7f86-4731-9d4d-6e99ca068cde

📥 Commits

Reviewing files that changed from the base of the PR and between 7be74e1 and 0196af1.

📒 Files selected for processing (2)
  • docs/HyperIndex/migrate-from-ponder.md
  • sidebarsHyperIndex.js

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