Count the cloud work each install asks for, anonymously

Convex bills the database bytes each call reads. The cost harness measures
what each action reads; what's missing is how often real users take those
actions. CloudUsageMeter counts edit batches and ops sent, pages watched
and their size, and offline-copy passes, full reads and rows read, and
sends them as one anonymous cloud_usage event at most every 30 minutes
through the existing AnalyticsService (no ids, names or content; off when
analytics is off). Unreported counts are kept in the analytics box and sent
on the next start, so short sessions aren't lost.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b67c727d9fDara Adedeji committed on 10/20/2026, 2:03:00 AMparent2e48627

Checks

Some checks failed
6 files changedLine totals unavailable