Skip to content

docs: add tutorials [skip-line-limit]#1521

Merged
0xjei merged 4 commits into
mainfrom
docs/tutorials
Apr 20, 2026
Merged

docs: add tutorials [skip-line-limit]#1521
0xjei merged 4 commits into
mainfrom
docs/tutorials

Conversation

@ctrlc03

@ctrlc03 ctrlc03 commented Apr 16, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Release Notes

  • Documentation
    • Added comprehensive "Tutorials" section to documentation with step-by-step guides covering E3 program development, deployment to testnet, encrypted data submission, custom circuit integration, and node operations.
    • Updated hardware requirements: minimum CPU increased to 8+ cores and RAM to 16GB+.
    • Added troubleshooting guides for common ciphernode issues and dashboard monitoring instructions.

@vercel

vercel Bot commented Apr 16, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
enclave-docs Ready Ready Preview, Comment Apr 17, 2026 1:05pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
crisp Skipped Skipped Apr 17, 2026 1:05pm

Request Review

@coderabbitai

coderabbitai Bot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

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

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 49 minutes and 5 seconds.

⌛ 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a54550a2-8bc5-4440-a77b-c09c27163f6b

📥 Commits

Reviewing files that changed from the base of the PR and between fec2f01 and 4b0ec62.

📒 Files selected for processing (3)
  • docs/pages/ciphernode-operators/index.mdx
  • docs/pages/tutorials/deploy-to-testnet.mdx
  • docs/pages/tutorials/operator-troubleshooting.mdx
📝 Walkthrough

Walkthrough

The PR introduces a comprehensive tutorials section to the documentation site, adding metadata navigation and eight new tutorial pages covering topics including custom Noir circuits, testnet deployment, encryption workflows, ticket management, operator troubleshooting, dashboard usage, and E3 program development. Additionally, it updates documented hardware requirements for ciphernode operators.

Changes

Cohort / File(s) Summary
Documentation Navigation
docs/pages/_meta.json, docs/pages/tutorials/_meta.json
Added "Tutorials" section navigation metadata with separator entry and page reference. Created tutorials navigation map organizing eight child tutorial pages under two groupings ("Build an E3" and "Operate a Node").
Ciphernode Documentation
docs/pages/ciphernode-operators/index.mdx
Updated hardware requirements table: increased minimum CPU from 4+ cores to 8+ cores and minimum RAM from 8GB+ to 16GB+.
Tutorial Pages
docs/pages/tutorials/write-e3-program.mdx, docs/pages/tutorials/custom-zk-circuits.mdx, docs/pages/tutorials/deploy-to-testnet.mdx, docs/pages/tutorials/encrypt-and-submit.mdx, docs/pages/tutorials/manage-tickets.mdx, docs/pages/tutorials/operator-troubleshooting.mdx, docs/pages/tutorials/using-the-dashboard.mdx
Added seven comprehensive tutorial pages covering E3 program development, circuit design, testnet deployment, client-side encryption workflows, ticket management, operator troubleshooting, and dashboard monitoring.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • cedoor
  • 0xjei

Poem

🐰 A warren of tutorials now blooms,
From circuits to dashboards to deployment rooms,
Eight paths for the curious to explore,
With troubleshooting wisdom galore—
The docs are now richer, the knowledge more sure! 📚✨

🚥 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 accurately describes the main change: adding tutorial documentation to the repository. The title is concise, clear, and directly reflects the substantial tutorial content additions across multiple files.
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 docs/tutorials

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.

@ctrlc03 ctrlc03 changed the title docs: add tutorials docs: add tutorials [skip-line-limit] Apr 17, 2026
@ctrlc03 ctrlc03 marked this pull request as ready for review April 17, 2026 10:02
@vercel vercel Bot temporarily deployed to Preview – crisp April 17, 2026 10:02 Inactive
@ctrlc03 ctrlc03 requested review from 0xjei and cedoor April 17, 2026 10:03
@ctrlc03

ctrlc03 commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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: 3

🧹 Nitpick comments (3)
docs/pages/tutorials/_meta.json (1)

22-26: Minor title inconsistencies in the nav.

  • using-the-dashboard → labeled "Node Dashboard" (the page itself is titled accordingly, fine).
  • manage-tickets → labeled "Manage Tickets" here, but the page front‑matter title is "Manage Tickets & Optimise Selection". Not strictly a bug (nav labels can be shorter), but worth aligning if you want consistent breadcrumbs/titles.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pages/tutorials/_meta.json` around lines 22 - 26, The nav JSON has
inconsistent titles for keys "using-the-dashboard" and "manage-tickets"; update
the "manage-tickets" entry in docs/pages/tutorials/_meta.json so its "title"
matches the page front‑matter ("Manage Tickets & Optimise Selection") (or
alternatively change the page front‑matter to the shorter "Manage Tickets" if
you prefer the short nav label) to keep breadcrumbs and displayed titles
consistent across the site.
docs/pages/tutorials/manage-tickets.mdx (1)

97-99: Heads-up on field naming shown by enclave ciphernode status.

Per crates/cli/src/ciphernode/lifecycle.rs, the human-readable output prints minTickets=..., not minTicketBalance. The tutorial consistently uses minTicketBalance (which matches the contract method name), which can confuse readers grepping the CLI output. Consider calling this out, or using the CLI label in examples.

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

In `@docs/pages/tutorials/manage-tickets.mdx` around lines 97 - 99, The tutorial
uses the contract field name "minTicketBalance" but the CLI command output from
the lifecycle code prints the label "minTickets", which can confuse readers;
update the tutorial text around the `enclave ciphernode status` example to
either (a) mention this naming mismatch explicitly (state that the CLI displays
minTickets while the contract method is minTicketBalance) or (b) change the
example to use the CLI label "minTickets" so it matches `enclave ciphernode
status` output; reference the CLI output example and the lifecycle label
(minTickets) when making the change so readers can grep the CLI output
successfully.
docs/pages/tutorials/using-the-dashboard.mdx (1)

32-36: Clarify environment-variable usage to avoid ambiguity.

E3_DASHBOARD_PORT=8080 alone can be read as a no-op unless paired with a command or exported/persisted via the service manager. Consider showing export E3_DASHBOARD_PORT=8080 (interactive shell) or a brief note that this should be set in the node’s runtime/service environment.

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

In `@docs/pages/tutorials/using-the-dashboard.mdx` around lines 32 - 36, Update
the docs snippet to make environment-variable usage explicit by replacing the
bare `E3_DASHBOARD_PORT=8080` example with guidance for interactive shells and
long-lived service environments: show the interactive-shell form `export
E3_DASHBOARD_PORT=8080` and add a short note that this variable must be set in
the node/service runtime or configured via the platform’s service manager
(systemd, container env, etc.) so it is persisted for the dashboard process.
🤖 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/pages/ciphernode-operators/index.mdx`:
- Line 105: The operator troubleshooting doc still says "4+ modern cores" while
the operators index now requires "8+ cores, 16GB+ RAM"; open the
operator-troubleshooting.mdx file and replace the "4+ modern cores" CPU
requirement with "8+ cores" (and ensure the RAM line matches "16GB+ RAM" or the
project's canonical phrasing), preserving surrounding context and formatting for
the requirements table or bullet list so both pages are consistent.

In `@docs/pages/tutorials/deploy-to-testnet.mdx`:
- Around line 129-137: The example call to sdk.requestE3 uses the wrong
parameter names and shape; update the object to match the enclave-sdk.ts
signature: replace threshold with committeeSize (a single number), remove the
non-existent e3ProgramParams key, add the required paramSet numeric field, keep
inputWindow as [startTime, endTime], and ensure computeProviderParams remains a
hex string; optionally include customParams, proofAggregationEnabled, or
gasLimit only if needed. Use the exact property names: committeeSize,
inputWindow, e3Program, paramSet, computeProviderParams (and optional
customParams/proofAggregationEnabled/gasLimit) when calling sdk.requestE3.

In `@docs/pages/tutorials/operator-troubleshooting.mdx`:
- Around line 160-173: The docs use the wrong subcommand `enclave config print`
— update both occurrences to the actual CLI subcommand `enclave config get
log_file` (replace the command at the top and inside the tail substitution:
`tail -f "$(enclave config get log_file)"`) so the examples match the `Get`
subcommand implemented in crates/cli/src/config.rs.

---

Nitpick comments:
In `@docs/pages/tutorials/_meta.json`:
- Around line 22-26: The nav JSON has inconsistent titles for keys
"using-the-dashboard" and "manage-tickets"; update the "manage-tickets" entry in
docs/pages/tutorials/_meta.json so its "title" matches the page front‑matter
("Manage Tickets & Optimise Selection") (or alternatively change the page
front‑matter to the shorter "Manage Tickets" if you prefer the short nav label)
to keep breadcrumbs and displayed titles consistent across the site.

In `@docs/pages/tutorials/manage-tickets.mdx`:
- Around line 97-99: The tutorial uses the contract field name
"minTicketBalance" but the CLI command output from the lifecycle code prints the
label "minTickets", which can confuse readers; update the tutorial text around
the `enclave ciphernode status` example to either (a) mention this naming
mismatch explicitly (state that the CLI displays minTickets while the contract
method is minTicketBalance) or (b) change the example to use the CLI label
"minTickets" so it matches `enclave ciphernode status` output; reference the CLI
output example and the lifecycle label (minTickets) when making the change so
readers can grep the CLI output successfully.

In `@docs/pages/tutorials/using-the-dashboard.mdx`:
- Around line 32-36: Update the docs snippet to make environment-variable usage
explicit by replacing the bare `E3_DASHBOARD_PORT=8080` example with guidance
for interactive shells and long-lived service environments: show the
interactive-shell form `export E3_DASHBOARD_PORT=8080` and add a short note that
this variable must be set in the node/service runtime or configured via the
platform’s service manager (systemd, container env, etc.) so it is persisted for
the dashboard process.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c2c3ab6f-eef2-40ad-a42b-743bbe3fb73d

📥 Commits

Reviewing files that changed from the base of the PR and between b147924 and fec2f01.

📒 Files selected for processing (10)
  • docs/pages/_meta.json
  • docs/pages/ciphernode-operators/index.mdx
  • docs/pages/tutorials/_meta.json
  • docs/pages/tutorials/custom-zk-circuits.mdx
  • docs/pages/tutorials/deploy-to-testnet.mdx
  • docs/pages/tutorials/encrypt-and-submit.mdx
  • docs/pages/tutorials/manage-tickets.mdx
  • docs/pages/tutorials/operator-troubleshooting.mdx
  • docs/pages/tutorials/using-the-dashboard.mdx
  • docs/pages/tutorials/write-e3-program.mdx

Comment thread docs/pages/ciphernode-operators/index.mdx Outdated
Comment thread docs/pages/tutorials/deploy-to-testnet.mdx
Comment thread docs/pages/tutorials/operator-troubleshooting.mdx

@0xjei 0xjei 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.

untested but lgtm

@0xjei 0xjei merged commit 51dfba4 into main Apr 20, 2026
28 checks passed
@github-actions github-actions Bot deleted the docs/tutorials branch April 28, 2026 03:22
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