Skip to content

feat(grpc): add update-grpc-proto skill and fix benchmark lint#518

Merged
MartianGreed merged 1 commit intomainfrom
feat/grpc-proto-skill
Jan 23, 2026
Merged

feat(grpc): add update-grpc-proto skill and fix benchmark lint#518
MartianGreed merged 1 commit intomainfrom
feat/grpc-proto-skill

Conversation

@MartianGreed
Copy link
Collaborator

@MartianGreed MartianGreed commented Jan 23, 2026

Summary

  • Add /update-grpc-proto skill for updating gRPC proto files from Torii repository
  • Fix lint error in benchmark file (add Bun type declaration)

Test plan

  • Proto files verified up to date
  • All 38 gRPC methods implemented
  • Tests pass (5/5)
  • Lint/format pass
  • Build succeeds

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Added Dojo Integration Test Skill documentation with setup guides, testing procedures, and troubleshooting tips
    • Added gRPC Proto update documentation with synchronization and integration procedures
  • Chores

    • Added automated workflows for integration testing and CI assistance
    • Enhanced benchmark infrastructure

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 23, 2026

📝 Walkthrough

Walkthrough

This pull request introduces documentation for Dojo integration testing and gRPC proto synchronization, along with new GitHub Actions workflows to automate Claude-assisted integration testing. A minor benchmark file update adds Bun timing utilities.

Changes

Cohort / File(s) Summary
Dojo Integration Documentation
.claude/skills/dojo-integration-test/SKILL.md
New skill guide detailing Dojo stack setup, infrastructure startup (Katana, Torii), contract interaction commands, verification patterns, cleanup procedures, and troubleshooting. Includes concrete shell commands and sample outputs for integration testing workflows.
gRPC Proto Synchronization Guide
.claude/skills/update-grpc-proto/SKILL.md
New skill document describing the process to sync @dojoengine/grpc proto files with Torii, covering proto fetching, TypeScript binding regeneration, RPC implementation, testing, linting, and changelog management.
GitHub Actions Workflows
.github/workflows/claude-assistant.yaml, .github/workflows/integration-test.yaml
Two new workflows: claude-assistant triggers on comments/PRs to invoke Claude for code review; integration-test enables manual workflow dispatch for Claude-driven integration testing with configurable PR number, contract path, and prompt. Both set up Dojo (v1.7.2), Scarb (v2.12.2), and Bun.
Benchmark Type Declaration
packages/grpc/src/benchmarks/effect-functional.bench.ts
Added global Bun type declaration for nanoseconds timing utility used in benchmarking.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Poem

A rabbit hops through docs with glee,
Dojo workflows now set testing free,
Proto syncs and benchmarks timed so neat,
Claude assists where code and logic meet—
Integration testing, hopping to complete! 🐰✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The description covers main changes and test plan but doesn't follow the provided template structure or include all required sections. Follow the template format: include an explicit 'Closes #' section for linked issues, use the 'Introduced changes' section heading, and complete all checklist items with proper status indicators.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: adding a gRPC proto skill and fixing a benchmark lint error.
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 docstrings

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

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

🤖 Fix all issues with AI agents
In @.github/workflows/integration-test.yaml:
- Around line 23-24: The workflow's permissions block only grants "contents:
read" which prevents the Claude action from posting results; update the
permissions block (the permissions key and its child keys) to include write
scopes such as "issues: write" and "pull-requests: write" (and/or "contents:
write" if the action needs to update repository contents) so the action can
create comments or update PR status; ensure the permissions block lists the
added keys: issues, pull-requests (and optionally contents) with "write".
🧹 Nitpick comments (5)
.claude/skills/dojo-integration-test/SKILL.md (1)

284-286: Consider using kill with signal handling instead of kill -9.

Using kill -9 (SIGKILL) doesn't allow processes to clean up gracefully. For troubleshooting docs, consider recommending kill <PID> first (SIGTERM), which allows processes to handle shutdown gracefully, falling back to kill -9 only if needed.

📝 Suggested documentation update
 # Kill by PID
-kill -9 <PID>
+kill <PID>        # Try graceful shutdown first
+kill -9 <PID>     # Force kill if process doesn't respond
.github/workflows/claude-assistant.yaml (2)

21-24: Label trigger condition may fire unexpectedly on non-PR events.

The condition github.event.label.name == 'test-integration' will match when any issue or PR is labeled, but the workflow also triggers on issues: [opened, assigned] which don't have label context. This could cause the job to be skipped silently or behave unexpectedly.

Consider adding event type checks:

📝 Suggested fix
     if: |
       (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
       (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
-      (github.event.label.name == 'test-integration')
+      ((github.event_name == 'issues' || github.event_name == 'pull_request') && github.event.action == 'labeled' && github.event.label.name == 'test-integration')

18-66: Add job timeout to prevent runaway costs.

The Claude action with --max-turns 30 could potentially run for a long time. Adding a timeout-minutes helps prevent excessive API usage and stuck workflows.

📝 Suggested fix
 jobs:
   claude-response:
     runs-on: ubuntu-latest
+    timeout-minutes: 30
     if: |
.github/workflows/integration-test.yaml (2)

40-42: Pin Bun version for reproducible CI builds.

Same recommendation as the other workflow - pin to a specific version.

📝 Suggested fix
       - uses: oven-sh/setup-bun@v1
         with:
-          bun-version: latest
+          bun-version: "1.1.42"

26-65: Add job timeout to prevent runaway execution.

With --max-turns 30 and user-provided prompts, the job could run for extended periods. Add a timeout for cost control and to prevent stuck workflows.

📝 Suggested fix
 jobs:
   integration-test:
     runs-on: ubuntu-latest
+    timeout-minutes: 45
     steps:

Comment on lines +23 to +24
permissions:
contents: read
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Missing write permissions for Claude to post results.

The workflow only grants contents: read, but the Claude action may need to write comments or update PR status to report test results. Compare with the other workflow which grants issues: write and pull-requests: write.

📝 Suggested fix if Claude needs to post results
 permissions:
   contents: read
+  issues: write
+  pull-requests: write
📝 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
permissions:
contents: read
permissions:
contents: read
issues: write
pull-requests: write
🤖 Prompt for AI Agents
In @.github/workflows/integration-test.yaml around lines 23 - 24, The workflow's
permissions block only grants "contents: read" which prevents the Claude action
from posting results; update the permissions block (the permissions key and its
child keys) to include write scopes such as "issues: write" and "pull-requests:
write" (and/or "contents: write" if the action needs to update repository
contents) so the action can create comments or update PR status; ensure the
permissions block lists the added keys: issues, pull-requests (and optionally
contents) with "write".

@MartianGreed MartianGreed merged commit 85cfd91 into main Jan 23, 2026
21 checks passed
@MartianGreed MartianGreed deleted the feat/grpc-proto-skill branch January 23, 2026 08:57
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.

1 participant