{
 "flight": {
  "id": 660500,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Remove error modal",
  "number": 255,
  "source": "aidev",
  "commits": 2,
  "debrief": "A refactor removed the global window.onerror handler and the ignoreAllErrors state with its error modal functions. Across two commits and two files, 93 lines were deleted. The test run failed with no ChromeHeadless binary; lint was also listed. The change merged clean after one review round, with zero change requests, two hours after opening.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 0,
  "closed_at": "2025-05-31T15:42:02+00:00",
  "deletions": 93,
  "merged_at": "2025-05-31T15:42:02+00:00",
  "opened_at": "2025-05-31T13:42:06+00:00",
  "task_type": "refactor",
  "body_chars": 270,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:37:10.688112+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- drop global `window.onerror` handler\n- remove `ignoreAllErrors` state and error modal functions\n\n## Testing\n- `npm run lint`\n- `npm test` *(fails: No binary for ChromeHeadless)*\n\n------\nhttps://chatgpt.com/codex/tasks/task_e_683b06526fcc832cab1669df1bd159ae",
  "review_count": 1,
  "files_changed": 2,
  "hours_to_merge": 2,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:37:10.688112+00:00",
  "reviewer_excerpt": "I've tested this PR and as expected it removes the error modal. The following is, on the other hand, about the `showCorruptedJsonModal`: during test I've",
  "review_comment_count": 0,
  "reviewer_excerpt_url": "https://github.com/OpenSprinkler/OpenSprinkler-App/pull/255#issuecomment-2925341853"
 },
 "repo": {
  "name": "OpenSprinkler-App",
  "owner": "OpenSprinkler",
  "stars": 208,
  "license": "AGPL-3.0",
  "full_name": "OpenSprinkler/OpenSprinkler-App",
  "primary_language": "JavaScript"
 },
 "author": {
  "login": "salbahra",
  "name": "Samer Albahra",
  "github_profile": "https://github.com/salbahra",
  "page": "https://agentriders.com/logs/author/salbahra/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Samer Albahra"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Samer Albahra"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-05-31T13:42:07+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "salbahra"
  },
  {
   "at": "2025-05-31T15:42:02+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "salbahra"
  },
  {
   "at": "2025-05-31T15:42:02+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "salbahra"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Cloudflare cache purge after Firebase deploy",
   "number": 258,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 22,
   "deletions": 5,
   "merged_at": "2025-06-01T17:42:23+00:00",
   "opened_at": "2025-06-01T17:12:29+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": 0.5
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Unify local option handling",
   "number": 253,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 175,
   "deletions": 137,
   "merged_at": "2025-05-31T22:41:27+00:00",
   "opened_at": "2025-05-31T11:38:56+00:00",
   "task_type": "refactor",
   "files_changed": 2,
   "hours_to_merge": 11.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix metric/time settings not loading",
   "number": 251,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 9,
   "deletions": 3,
   "merged_at": "2025-05-30T16:57:33+00:00",
   "opened_at": "2025-05-30T14:17:07+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 2.67
  }
 ],
 "pr_url": "https://github.com/OpenSprinkler/OpenSprinkler-App/pull/255",
 "page": "https://agentriders.com/logs/OpenSprinkler/OpenSprinkler-App/255/"
}