Skip to content

fix(email): correct weekly/monthly/24h stats email calculations#2754

Merged
riderx merged 15 commits into
mainfrom
cursor/fix-stats-email-calcs-00b8
Jul 25, 2026
Merged

fix(email): correct weekly/monthly/24h stats email calculations#2754
riderx merged 15 commits into
mainfrom
cursor/fix-stats-email-calcs-00b8

Conversation

@riderx

@riderx riderx commented Jul 25, 2026

Copy link
Copy Markdown
Member

Summary (AI generated)

  • Fixed weekly stats email math: install and fail are independent counters, so success/failure rates now use install / (install + fail) instead of the broken install - fail formula
  • Fixed monthly create-stats date window so the full previous UTC month is included (was cutting off almost the entire last day)
  • Fixed bundle:install_stats_24h trash counts by coercing Analytics Engine Float64 aggregates to numbers (string concat bug)
  • Release the deploy-email SQL claim for retry within 48h when installs are still too low / analytics lagged, so the email can actually send
  • Tightened get_weekly_stats to a true 7-day inclusive window (was 8 days)

Motivation (AI generated)

Weekly and monthly Capgo stats emails were reporting incorrect numbers, and bundle:install_stats_24h appeared to stop sending. Root cause was bad calculation/window logic plus Analytics Engine numeric values being left as strings and then concatenated, combined with permanently claiming install_stats_email_sent_at before a successful send.

Business Impact (AI generated)

Customers get trustworthy weekly/monthly activity emails again, and 24h post-deploy install emails can resume instead of being silently skipped after bad/empty analytics reads.

Test Plan (AI generated)

  • Unit tests for weekly rate math, monthly UTC range, install sum coercion, and deploy retry window (bun test:unit -- tests/cron-email-stats.unit.test.ts)
  • Lint changed files with eslint
  • After deploy of migration + workers: verify a weekly stats email shows success rate = installs / (installs + fails)
  • Verify monthly email includes bundles/publishes from the last day of the previous month
  • Verify a public-channel deploy with >1 installs in 24h receives bundle:install_stats_24h
  • Verify a deploy with temporarily empty analytics releases the claim and retries within 48h

Generated with AI

Open in Web Open in Cursor 

Review in cubic

Summary by CodeRabbit

  • Bug Fixes

    • Corrected the weekly stats time window to consistently report exactly seven days.
    • Improved analytics numeric interpretation to ensure numeric aggregates are correctly converted for reporting.
    • Fixed monthly and deploy install stats date-range logic and aggregation accuracy.
    • Added safer retry behavior for eligible deploy stats emails, including clearer “not enough installs” results.
  • Improvements

    • Weekly and deploy cron emails now generate more accurate totals, rates, and labels.
  • Tests

    • Added unit coverage and backtests to prevent regressions in stats calculations and email formatting.

Weekly success/failure rates wrongly used install-fail instead of
install/(install+fail). Monthly stats truncated the last day of the
month. Deploy 24h emails could stringify Analytics Engine Float64
counts into trash values, then permanently skip sending after a
premature claim when installs looked too low.

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 16 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4a827cd8-aa7b-4f87-b7cb-b060aced3d78

📥 Commits

Reviewing files that changed from the base of the PR and between 4d7c3e2 and 486e294.

📒 Files selected for processing (2)
  • supabase/tests/36_test_get_weekly_stats_window.sql
  • tests/cron-email-stats-backtest.unit.test.ts
📝 Walkthrough

Walkthrough

Cron email statistics now use centralized numeric, UTC date-range, aggregation, and retry helpers. Analytics Engine conversion supports additional numeric types, the weekly SQL window covers seven days, and unit tests cover the new utility behavior.

Changes

Analytics and cron statistics

Layer / File(s) Summary
Analytics numeric conversion
supabase/functions/_backend/plugin_runtime/utils/cloudflare.ts, supabase/functions/_backend/utils/cloudflare.ts
Analytics Engine float, integer, unsigned integer, string, and date-time values are converted through an expanded converter map.
Cron statistics utilities and reporting window
supabase/functions/_backend/utils/cron_email_stats.ts, supabase/migrations/.../fix_weekly_stats_date_window.sql, tests/cron-email-stats.unit.test.ts, tests/cron-email-stats-backtest.unit.test.ts, supabase/tests/36_test_get_weekly_stats_window.sql
Typed helpers calculate weekly metrics, UTC month ranges, version install totals, and retry eligibility; the weekly SQL function uses an inclusive seven-day window and tests cover these behaviors.
Cron email statistics integration
supabase/functions/_backend/triggers/cron_email.ts
Weekly and monthly email calculations use the new helpers, deploy installs use version matching aggregation, and eligible deploy claims can be released for retry.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested labels: codex

Suggested reviewers: dalanir, wcaleniewolny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main email statistics calculation fixes.
Description check ✅ Passed The description covers summary, motivation, business impact, and test plan; the template checklist and screenshots sections are not filled out.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@codspeed-hq

codspeed-hq Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 43 untouched benchmarks
⏩ 2 skipped benchmarks1


Comparing cursor/fix-stats-email-calcs-00b8 (486e294) with main (c4b31f0)2

Open in CodSpeed

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (0e3cfe3) during the generation of this report, so c4b31f0 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 11:38 Inactive
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 11:46 Inactive
@cursor
cursor Bot marked this pull request as ready for review July 25, 2026 11:53
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_3843b23c-8336-448a-a9b3-12d16c631dbc)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not produce a clean review. Requesting human review for the stats-email calculation and SQL migration changes.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached), so automated review is incomplete, and this PR includes a SQL migration plus user-facing email stat fixes above the low-risk approval threshold. Assigned reviewers for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor
cursor Bot requested review from Dalanir and WcaleNieWolny July 25, 2026 11:54
@coderabbitai coderabbitai Bot added the codex label Jul 25, 2026

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@supabase/functions/_backend/triggers/cron_email.ts`:
- Around line 245-257: Handle query errors in the appVersions and deployHistory
fetches instead of discarding them. After each Supabase query, check its error
result and throw simpleError() when either query fails; only continue to monthly
activity processing when both queries succeed.
- Around line 362-379: Update the release-error branch in the deploy install
stats email retry flow to throw after cloudlogErr records releaseError, instead
of continuing to return the successful 200 response. Ensure the exception
propagates to the caller so the same cron job is retried while preserving the
existing success branch.
- Around line 211-217: Replace the weekNumber calculation near the
now/startOfYear logic with a true ISO-8601 week calculation, using UTC dates and
Thursday-based week-year boundaries so dates such as January 1, 2021 resolve to
week 53 of 2020. Keep the existing monthName calculation unchanged and ensure
the resulting metadata uses the computed ISO week number.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3bd30dbf-4e1c-48c0-bcc6-dd9d564fa9ea

📥 Commits

Reviewing files that changed from the base of the PR and between 0e3cfe3 and e3b6052.

📒 Files selected for processing (6)
  • supabase/functions/_backend/plugin_runtime/utils/cloudflare.ts
  • supabase/functions/_backend/triggers/cron_email.ts
  • supabase/functions/_backend/utils/cloudflare.ts
  • supabase/functions/_backend/utils/cron_email_stats.ts
  • supabase/migrations/20260725113045_fix_weekly_stats_date_window.sql
  • tests/cron-email-stats.unit.test.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)

Comment thread supabase/functions/_backend/triggers/cron_email.ts Outdated
Comment thread supabase/functions/_backend/triggers/cron_email.ts Outdated
Comment thread supabase/functions/_backend/triggers/cron_email.ts

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

All reported issues were addressed across 6 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread supabase/functions/_backend/utils/cron_email_stats.ts Outdated
Comment thread supabase/functions/_backend/triggers/cron_email.ts
Comment thread supabase/functions/_backend/triggers/cron_email.ts
Comment thread supabase/functions/_backend/triggers/cron_email.ts Outdated
Comment thread supabase/functions/_backend/utils/cron_email_stats.ts Outdated
Comment thread supabase/migrations/20260725113045_fix_weekly_stats_date_window.sql
cursoragent and others added 6 commits July 25, 2026 12:13
Add regression backtests proving weekly rates match admin
install/(install+fail), monthly windows include the last day,
24h install sums never string-concatenate, and "flawless" copy
is never used when failures are non-zero.

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_f9f75321-0b9d-44a4-8375-01a1757d3dc7)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached), this PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic), and automated reviewers reported unresolved findings. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete review. CodeRabbit and cubic also flagged unresolved cron email error-handling and stats issues; human review is still needed. Reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_bd4f0291-9043-4f07-800c-951c3dd1ce91)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_e4b873cf-b044-44fd-b1c0-e83607e1eeca)

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 13:06 Inactive
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_761ebace-0556-4c77-ad63-572a05ebbdb3)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

Use "About one in ten" for the <=10% band and isolate the
get_weekly_stats window fixture under com.test.*.

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 13:13 Inactive
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_6b95183c-0de3-4ed9-bc19-ff3538c96ba4)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 13:21 Inactive
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_0ffb78fc-0f84-4f74-82f0-0b7037d39bd8)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@supabase/tests/36_test_get_weekly_stats_window.sql`:
- Line 9: Wrap the long INSERT statements in the weekly stats SQL test,
including the referenced lines, so each line stays within SQLFluff’s
80-character LT05 limit. Preserve the existing columns, values, and SQL behavior
while formatting the statement across multiple lines.

In `@tests/cron-email-stats-backtest.unit.test.ts`:
- Line 61: Update all five test cases in this block, including the case titled
“never reproduces the old install-fail negative/wrong-rate bug across
production-like weeks,” to use the concurrent test variant. Keep their existing
fixtures, inputs, assertions, and test bodies unchanged.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: eccd5fd7-ebb4-4e99-b195-a2f1d6a6cd29

📥 Commits

Reviewing files that changed from the base of the PR and between e3b6052 and 4d7c3e2.

📒 Files selected for processing (5)
  • supabase/functions/_backend/triggers/cron_email.ts
  • supabase/functions/_backend/utils/cron_email_stats.ts
  • supabase/tests/36_test_get_weekly_stats_window.sql
  • tests/cron-email-stats-backtest.unit.test.ts
  • tests/cron-email-stats.unit.test.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)

Comment thread supabase/tests/36_test_get_weekly_stats_window.sql Outdated
Comment thread tests/cron-email-stats-backtest.unit.test.ts Outdated
Wrap weekly stats SQL fixture lines and mark backtest cases
concurrent for faster CI.

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 13:30 Inactive
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_8d172ab8-be40-438f-9ed9-94447793df2a)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale comment

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

Co-authored-by: Martin DONADIEU <martindonadieu@gmail.com>
@cursor
cursor Bot temporarily deployed to deepsec-pr July 25, 2026 13:39 Inactive
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_7ede1d32-4324-4b45-8c3f-95ee23bad1d1)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Risk: medium. Not approving: Cursor Bugbot skipped (usage limit reached) and did not complete automated review. This PR exceeds the low-risk threshold (SQL migration plus user-facing email stat logic). Human reviewers are already assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@sonarqubecloud

Copy link
Copy Markdown

@riderx
riderx merged commit 84330ff into main Jul 25, 2026
55 of 75 checks passed
@riderx
riderx deleted the cursor/fix-stats-email-calcs-00b8 branch July 25, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants