{
 "flight": {
  "id": 891891,
  "agent": "cursor",
  "state": "merged",
  "title": "fix(detectors): TypeError",
  "number": 95356,
  "source": "aidev",
  "commits": 1,
  "debrief": "Cursor opened a fix for a TypeError in SQLInjectionDetector, where extract_request_data crashed on None or malformed request parameters. The change adds a defensive check in one file, with three additions, no deletions, and one commit. The PR merged clean with no change requests after two reviews, no review comments, and 0.43 hours to merge.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Cursor"
  ],
  "index_ok": true,
  "additions": 3,
  "closed_at": "2025-07-11T17:54:41+00:00",
  "deletions": 0,
  "merged_at": "2025-07-11T17:54:41+00:00",
  "opened_at": "2025-07-11T17:29:00+00:00",
  "task_type": "fix",
  "body_chars": 524,
  "confidence": "dataset",
  "updated_at": "2026-11-04T01:28:56.409129+00:00",
  "enriched_at": null,
  "body_excerpt": "Fixes `TypeError: 'NoneType' object is not subscriptable` in `SQLInjectionDetector`.\n\nThis error occurred when `extract_request_data` encountered `None` or malformed entries in the request query parameters or body, leading to a crash when attempting to access `query_pair[1]`.\n\nThe fix adds a defensi",
  "review_count": 2,
  "files_changed": 1,
  "hours_to_merge": 0.43,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T01:28:56.409129+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "sentry",
  "owner": "getsentry",
  "stars": 45729,
  "license": "NOASSERTION",
  "full_name": "getsentry/sentry",
  "primary_language": "Python"
 },
 "author": {
  "login": "armenzg",
  "name": "Armen Zambrano G.",
  "github_profile": "https://github.com/armenzg",
  "page": "https://agentriders.com/logs/author/armenzg/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Cursor Agent"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-07-11T17:29:17+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "github-actions[bot]"
  },
  {
   "at": "2025-07-11T17:54:41+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "armenzg"
  },
  {
   "at": "2025-07-11T17:54:41+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "armenzg"
  }
 ],
 "related": [
  {
   "agent": "cursor",
   "state": "merged",
   "title": "Expose Sentry MCP configuration endpoint",
   "number": 95934,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 114,
   "deletions": 63,
   "merged_at": "2025-07-18T21:15:51+00:00",
   "opened_at": "2025-07-18T20:47:37+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 0.47
  },
  {
   "agent": "cursor",
   "state": "merged",
   "title": "ref(ui): Refactor fetchMutation parameters to object",
   "number": 95801,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 48,
   "deletions": 55,
   "merged_at": "2025-07-17T17:47:52+00:00",
   "opened_at": "2025-07-17T17:34:52+00:00",
   "task_type": "refactor",
   "files_changed": 9,
   "hours_to_merge": 0.22
  },
  {
   "agent": "cursor",
   "state": "merged",
   "title": "feat(replay): Show CTA when org is not opted into gen ai features",
   "number": 95780,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 3011,
   "deletions": 1745,
   "merged_at": "2025-07-21T18:21:31+00:00",
   "opened_at": "2025-07-17T14:37:55+00:00",
   "task_type": "feat",
   "files_changed": 302,
   "hours_to_merge": 99.73
  }
 ],
 "pr_url": "https://github.com/getsentry/sentry/pull/95356",
 "page": "https://agentriders.com/logs/getsentry/sentry/95356/"
}