feat(gmail): add dryRun operation for template preview without sending#59
Conversation
- Registers gmail.dryRun in listTools.ts for progressive tool discovery
- dryRun renders {{variable}} placeholders in subject and body
- Returns fully rendered email preview (subject, body, to, isHtml, wouldSend: false)
- Does NOT call any Gmail API (pure function, no rate limiting)
- Reuses shared renderTemplate() utility from templates.ts
- All layers already wired: compose.ts, index.ts, sdk/runtime.ts, sdk/types.ts, sdk/spec.ts
- 4 unit tests pass: template rendering, recipient validation, HTML escaping
Closes #49
|
Warning Rate limit exceeded
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 4 minutes and 40 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
📊 Type Coverage ReportType Coverage: 98.61% This PR's TypeScript type coverage analysis is complete. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gdrive-mcp | 9ab5d76 | Commit Preview URL Branch Preview URL |
Mar 28 2026, 07:59 PM |
🔒 Security Scan SummaryGenerated on: Sat Mar 28 20:00:02 UTC 2026 Scan Results
Summary
Recommendations
Security report generated by Claude Code |
Performance Comparison ReportOperation Performance
Memory Usage
Summary
Performance report generated by Claude Code |
Summary
Implements
gmail.dryRunoperation that renders a template with variables and returns the fully rendered email (subject, body, recipients) without actually sending it. Essential for outreach campaign QA.Changes
src/tools/listTools.ts: Registersgmail.dryRunin the progressive tool discovery resource so agents can find and use itThe operation was already fully implemented across all other layers in a prior commit — this PR completes the wiring by adding it to the tool catalog.
Implementation Details
dryRunis a pure function — no Gmail API calls, no rate limitingrenderTemplate()utility fromtemplates.ts(same assendFromTemplateandsendBatch)isHtml: true{ to, subject, body, isHtml, wouldSend: false }Acceptance Criteria
Tests
4 unit tests all pass (
src/modules/gmail/__tests__/dryRun.test.ts):Closes #49