Skip to content

feat(gmail): add getTrackingData operation for campaign open tracking#64

Merged
AojdevStudio merged 1 commit intomainfrom
feature/gdrive-20-gmail-get-tracking-data
Mar 28, 2026
Merged

feat(gmail): add getTrackingData operation for campaign open tracking#64
AojdevStudio merged 1 commit intomainfrom
feature/gdrive-20-gmail-get-tracking-data

Conversation

@AojdevStudio
Copy link
Copy Markdown
Owner

Summary

Wires gmail.getTrackingData into listTools.ts, completing the full SDK surface for the campaign open-tracking feature.

Changes

  • src/tools/listTools.ts — added getTrackingData entry to the gmail tool list (was missing from tool registry)

What was already implemented (GDRIVE-19)

All of the following were already in place on main:

  • getTrackingData() function in src/server/tracking.ts
  • SDK spec entry in src/sdk/spec.ts
  • Runtime registration in src/sdk/runtime.ts
  • Type declaration in src/sdk/types.ts
  • Tests in src/server/__tests__/tracking.test.ts (6 tests, all passing)

Acceptance Criteria

  • AC-1: Returns aggregated tracking data (totalOpens, uniqueOpens) for a given campaignId
  • AC-2: Per-recipient detail includes open status, firstOpenedAt, lastOpenedAt, openCount
  • AC-3: Gracefully handles campaigns with no tracking data (returns zeroed aggregates)

Tests

Test Suites: 51 passed, 51 total
Tests:       4 skipped, 581 passed, 585 total

Closes #53
Resolves GDRIVE-20

- Wire getTrackingData into listTools.ts (was missing from tool registry)
- Operation already implemented: tracking.ts, sdk/spec.ts, sdk/runtime.ts, sdk/types.ts
- Tests in src/server/__tests__/tracking.test.ts (6 passing)
- Worker-only operation: requires KV binding, gracefully errors on stdio runtime

Closes #53
@linear
Copy link
Copy Markdown

linear Bot commented Mar 28, 2026

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 28, 2026

Warning

Rate limit exceeded

@AojdevStudio has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 15 minutes and 7 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 15 minutes and 7 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: 1d2742b6-1e6f-4e76-99ca-283b62e8aa24

📥 Commits

Reviewing files that changed from the base of the PR and between 7789fa6 and 649e75e.

📒 Files selected for processing (1)
  • src/tools/listTools.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/gdrive-20-gmail-get-tracking-data

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.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Mar 28, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
gdrive-mcp 649e75e Commit Preview URL

Branch Preview URL
Mar 28 2026, 09:19 PM

@github-actions
Copy link
Copy Markdown

📊 Type Coverage Report

Type Coverage: 98.63%

This PR's TypeScript type coverage analysis is complete.
Check the full report in the workflow artifacts.

@github-actions
Copy link
Copy Markdown

🔒 Security Scan Summary

Generated on: Sat Mar 28 21:19:45 UTC 2026
Commit: e60639c

Scan Results

  • SAST Analysis: success
  • Dependency Scan: success
  • Secret Scan: success
  • Docker Security Scan: success
  • License Scan: success

Summary

  • Total scans: 5
  • Critical issues: 0
  • Overall status: ✅ PASS

Recommendations

  1. Review all failed scans and address critical issues
  2. Update dependencies with known vulnerabilities
  3. Ensure no secrets are committed to the repository
  4. Follow Docker security best practices
  5. Review license compliance for all dependencies

Security report generated by Claude Code

@github-actions
Copy link
Copy Markdown

Performance Comparison Report

Operation Performance

Operation Baseline Avg Current Avg Change Status
listFiles 95.0ms 47.4ms -50.1% 🚀 IMPROVEMENT
readFile 180.0ms 96.4ms -46.5% 🚀 IMPROVEMENT
createFile 250.0ms 157.9ms -36.8% 🚀 IMPROVEMENT
cacheOperation 45.0ms 46.6ms 3.6% ✅ OK

Memory Usage

  • Baseline: 45.2 MB
  • Current: 4.41 MB
  • Change: -90.2%

Summary

  • 🚀 Improvements: 3
  • ❌ Regressions: 0

Performance report generated by Claude Code

@AojdevStudio AojdevStudio merged commit e1eecf6 into main Mar 28, 2026
27 checks passed
@AojdevStudio AojdevStudio deleted the feature/gdrive-20-gmail-get-tracking-data branch March 28, 2026 21:23
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.

gmail.getTrackingData — query open events by campaign

1 participant