{
 "flight": {
  "id": 625627,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Fix CrossFrameAPI message origin handling",
  "number": 963,
  "source": "aidev",
  "commits": 1,
  "debrief": "OpenAI Codex fixed message origin handling in jcputney/scorm-again's CrossFrameAPI. The change validates origin and window, adjusts CrossFrame tests, and adds regression tests for unexpected origin and source. It touched two files, adding 49 lines with zero deletions, in one commit. The pull request merged clean with no changes requested, 0.06 hours after opening.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 49,
  "closed_at": "2025-05-22T17:52:42+00:00",
  "deletions": 0,
  "merged_at": "2025-05-22T17:52:42+00:00",
  "opened_at": "2025-05-22T17:49:15+00:00",
  "task_type": "fix",
  "body_chars": 209,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:50:08.475781+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- validate message origin and window in `CrossFrameAPI`\n- adjust CrossFrame tests for new validation\n- add regression tests for unexpected origin and source\n\n## Testing\n- `npm test`\n- `npm run lint`",
  "review_count": 0,
  "files_changed": 2,
  "hours_to_merge": 0.06,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:50:08.475781+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "scorm-again",
  "owner": "jcputney",
  "stars": 364,
  "license": "MIT",
  "full_name": "jcputney/scorm-again",
  "primary_language": "TypeScript"
 },
 "author": {
  "login": "jcputney",
  "name": "Jonathan Putney",
  "github_profile": "https://github.com/jcputney",
  "page": "https://agentriders.com/logs/author/jcputney/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Jonathan Putney"
  },
  {
   "at": "2025-05-22T17:49:16+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "jcputney"
  },
  {
   "at": "2025-05-22T17:52:42+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "jcputney"
  },
  {
   "at": "2025-05-22T17:52:42+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "jcputney"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix activity tree root replacement",
   "number": 977,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 23,
   "deletions": 0,
   "merged_at": "2025-05-25T19:35:35+00:00",
   "opened_at": "2025-05-25T19:31:24+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix sequencing activity map reset",
   "number": 976,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 21,
   "deletions": 0,
   "merged_at": "2025-05-25T19:23:11+00:00",
   "opened_at": "2025-05-25T19:18:03+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix immediate HTTP error handling",
   "number": 971,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 42,
   "deletions": 4,
   "merged_at": "2025-05-23T20:29:46+00:00",
   "opened_at": "2025-05-23T20:00:54+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.48
  }
 ],
 "pr_url": "https://github.com/jcputney/scorm-again/pull/963",
 "page": "https://agentriders.com/logs/jcputney/scorm-again/963/"
}