Repository navigation
Opt-in anonymous usage stats - #1879
Conversation
PR Summary by QodoAdd opt-in anonymous usage telemetry
AI Description
Diagram
High-Level Assessment
Files changed (38)
|
Code Review by Qodo
1.
|
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
1 similar comment
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
d224c76 to
19e6256
Compare
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
2 similar comments
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
2483d34 to
68f647e
Compare
|
/review |
|
Code review by qodo was updated up to the latest commit 68f647e |
68f647e to
3f40fb5
Compare
Adds an optional, anonymous daily usage report, off by default. Nothing is recorded or sent until the user says yes, and Settings > Privacy shows the exact report before it is sent. - A new local install asks once in a corner card; an upgrade asks in What's New. "No thanks" is final; an unanswered question may return after three months. - A shared Radar (in a cluster, behind sign-in, or on a reachable listener) never asks: the Helm value usageReporting.enabled decides, and Settings shows the state read-only. In a cluster the pending report is also sent when the pod stops. - Reports go to usage.radarhq.io with no install or cluster ID and no names: view, action, MCP tool, UI event and error counts by fixed vocabulary or route pattern, Radar's own setup, and each cluster's minor version, platform, node-count range and known integrations. - Turning it off stops counting, cancels a send in flight and deletes the pending ~/.radar/usage-report.json. - docs/usage-stats.md describes what is sent and what isn't. Co-authored-by: roylibman <93214016+roylibman@users.noreply.github.com>
3f40fb5 to
78d55a5
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 78d55a5. Configure here.
Adds the v1.15.0 entry to the What's New catalog. This replaces #1877, which was stacked on the closed #1876; the dialog landed on main in #1902 instead. `scripts/check-whats-new.sh` (#1908) refuses to release v1.15.0 without this entry, so this must merge before the tag. ## Highlights A full-width lead card, then a 2x2 grid. Each secondary card has its own icon color, so they read apart. 1. **AI investigations that show their work** (lead, no CTA; the investigations workspace redirects home in run modes that can't host local agents). This recaps the v1.14.1 rework (#1766, #1802) on purpose: it's the first What's New dialog, and we want to put AI investigations in front of people. OpenCode (#1265) is the new v1.15 part. 2. **Full manifest diffs for Argo CD resources** (#1622) 3. **Rightsizing and cost data in MCP**: new agent tools, and risks lead before savings in the UI too (#1820, #1723) 4. **Deeper batch + AI/ML workloads support**: Kueue, JobSet and Ray pages; Job and JobSet details show why a queued job has no Pods (#1874, #1885, #1900, #1849, #1893, #1897) 5. **Canary and blue-green in Topology** (#1626) ## Also in this release Eight one-liners, paired by length because the grid fills row by row: table sort memory (#1428), OCI Helm installs (#1815), expiring TLS certificates in Checks (#1829), Radar Desktop keeping preferences across restarts (#1907), Pod vs template in Issues (#1848), PVC usage availability (#1828), Strimzi and admission webhook failures in Issues (#1840, #1830), `--listen-address` (#1845). Left out: security fixes, dependency bumps, refactors and CI, accessibility work (#1901, #1909), and narrow items (ALB action annotations, INSTALL_DIR). No usage-stats line is needed, because #1879's consent question already sits in this dialog. ## UI changes beyond the catalog - The heading names the release line (`v1.15`, via `releaseLine`), since patch releases show the same notes. The "You just updated from → to" line keeps exact versions. - An optional `tone` on highlights colors the icon tile (violet, teal, emerald, indigo). It uses Radar's existing `bg-X-500/10 text-X-600 dark:text-X-400` pattern, and was checked in light and dark themes. ## Verification - `scripts/check-whats-new.sh v1.15.0` → found notes - `make tsc` clean; What's New and usage-data tests: 39 passed - Previewed live with `VERSION=v1.15.0 make build`, opening `/?whats-new`, with #1879's consent question in place The matching public changelog is skyhook-dev/marketing#312. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Release-notes catalog and presentational What's New UI only; no auth, API, or data-handling changes. > > **Overview** > Adds the **v1.15.0** What's New catalog entry (five highlights with CTAs where appropriate, plus eight improvement one-liners) so `check-whats-new` can ship the tag. > > The dialog heading now shows the **minor release line** via new `releaseLine()` (e.g. `v1.15` instead of `v1.15.0`), while the upgrade subtitle still uses exact versions. Secondary highlight cards can set an optional **`tone`** (violet, teal, emerald, indigo) for distinct icon tiles; the lead card stays on the accent style. > > Tests cover `releaseLine` and the preview dialog title expectation. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit f0038c3. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->

Adds an optional, anonymous usage report that helps us see which parts of Radar people actually use. It is off by default. Nothing is recorded or sent unless you turn it on, and you can see the exact report before you do.
The short version
~/.radar/usage-report.json.usageReporting.enabledin a cluster. Turning it off deletes anything pending.usage.radarhq.io. Radar ships no analytics SDK or third-party trackers. The receiver stores each report in our product analytics (PostHog) under a new random ID, without your IP address or its location.Why
We want to spend our time on what matters to people using Radar. The report answers three questions: which features get used, how teams running Radar in their cluster use it compared with people running it on a laptop, and which integrations matter most.
What a report contains
Once a day, only if you've opted in and only for a day Radar was used:
POST /api/helm/releases/{namespace}/{name}/rollback.Topology.1.33), the platform (eks,gke,kind…), the node count as a range (10-19), and which well-known integrations are installed, from a fixed list in Radar's source (argo-cd,cert-manager…). Anything not on that list, such as your own APIs, is never named.The full page is docs/usage-stats.md, published at radarhq.io/docs/configuration/usage-stats by skyhook-dev/radar-docs#114. Settings > Privacy links there.
How you're asked
usageReporting.enabled: truein the Helm values. Settings shows the state read-only.usageReporting.enabledHow it's built
internal/usagedatais the collector.~/.radar/usage-report.json, and one report goes out a day.emptyDir, so an in-cluster Radar sends it on shutdown.Server (
internal/server/usage_handlers.go):GET/PUT /api/usage-dataand a same-origin event endpoint for UI views and sessions;UI:
UsageDataPrompt);UsageDataAsk);PrivacySection): the switch, what's sent and what isn't, and the report behind a disclosure.Shared and configured installs never ask, and show the switch read-only.
Chart:
usageReporting.enabled(unset,trueorfalse). There are no new permissions, and Radar writes nothing to the cluster.Docs:
docs/usage-stats.md, "What Radar sends" indocs/configuration.md,SECURITY.md, the README and the Helm README.Testing
-race. They check:usage.radarhq.io, and stored with no sender IP, location or person.Related
Note
Medium Risk
Introduces outbound telemetry and consent flows with privacy safeguards, but misconfiguration or bugs could still affect trust; shared installs are operator-controlled via Helm/env.
Overview
Adds opt-in anonymous usage reporting end to end: a new
internal/usagedatacollector that only records after consent, aggregates allowlisted views/actions/MCP/UI events and coarse cluster shape (no names or install IDs), persists a preview in~/.radar/usage-report.json, and posts daily tousage.radarhq.io(dev builds log only; in-cluster can flush on pod shutdown).The server wires this in via
/api/usage-datahandlers (same-origin guarded), route-pattern API middleware, MCP tool wrappers, and lifecycle start/stop. Helm gainsusageReporting.enabled→RADAR_USAGE_REPORTING(skipped when Radar Cloud is on).The web app adds Settings Privacy (toggle + JSON preview), a delayed first-run corner card, and the question in What's New; it records sessions, screen time, and fixed crash labels when recording is on. Docs/security/README now describe the third outbound request type and what is (and is not) sent.
Reviewed by Cursor Bugbot for commit 78d55a5. Bugbot is set up for automated code reviews on this repo. Configure here.