Poll the GitHub relay every 30s#693
Conversation
Halves worst-case webhook-to-app latency. Each poll is a single request to our own Cloudflare worker (no GitHub data fetch), so the cost is negligible; the one GitHub permission check per poll rises from 60 to 120 calls/hour against the 5,000/hour app-user-token budget. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Warning Review limit reached
Next review available in: 13 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ 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 |
Follow-up to #691: halve worst-case webhook-to-app latency (60s → 30s) by polling the relay at the service's 30s floor at both wiring sites (desktop main + daemon bootstrap).
Cost analysis: each poll is one request to our own Cloudflare worker — ~86k req/month per active client against a 10M-included plan; the per-poll GitHub permission check doubles to 120 calls/hour against the 5,000/hour app-user-token budget. No GitHub data fetch is involved in the poll itself.
Validation: desktop + ade-cli typechecks clean, ingress test file green (9/9).
🤖 Generated with Claude Code
Greptile Summary
This PR lowers the GitHub relay polling interval for automation ingress. The main changes are:
Confidence Score: 5/5
Safe to merge with minimal risk.
The change is narrowly scoped to passing
pollIntervalMs: 30_000into an existing service that already clamps polling to a 30-second minimum.No files require special attention.
What T-Rex did
Important Files Changed
Sequence Diagram
%%{init: {'theme': 'neutral'}}%% sequenceDiagram participant Runtime as Desktop/Daemon Runtime participant Ingress as AutomationIngressService participant Relay as GitHub Relay Worker participant PR as prService Runtime->>Ingress: createAutomationIngressService(pollIntervalMs: 30_000) Runtime->>Ingress: start() loop every 30s floor Ingress->>Relay: poll for GitHub webhook deliveries Relay-->>Ingress: deliveries + next cursor Ingress->>PR: ingestGithubWebhook(delivery) Ingress->>Ingress: persist relay cursor end%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% sequenceDiagram participant Runtime as Desktop/Daemon Runtime participant Ingress as AutomationIngressService participant Relay as GitHub Relay Worker participant PR as prService Runtime->>Ingress: createAutomationIngressService(pollIntervalMs: 30_000) Runtime->>Ingress: start() loop every 30s floor Ingress->>Relay: poll for GitHub webhook deliveries Relay-->>Ingress: deliveries + next cursor Ingress->>PR: ingestGithubWebhook(delivery) Ingress->>Ingress: persist relay cursor endReviews (1): Last reviewed commit: "Poll the GitHub relay every 30s instead ..." | Re-trigger Greptile