{
 "author": {
  "bio": "VP, Technology @noverant LMS",
  "name": "Jonathan Putney",
  "login": "jcputney",
  "is_bot": false,
  "company": "@noverant",
  "avatar_url": "https://avatars.githubusercontent.com/u/42720634?v=4",
  "social_urls": [
   "https://www.linkedin.com/in/jonathanputney/",
   "https://bsky.app/profile/putney.io",
   "https://mastodon.social/@jcputney"
  ],
  "website_url": "https://putney.io/",
  "github_user_id": 42720634,
  "readme_excerpt": "Raleigh, NC · me.putney.io · cv · jonathan@putney.io",
  "profile_fetched_at": "2026-11-04T18:46:36.644155+00:00",
  "github_profile": "https://github.com/jcputney"
 },
 "totals": {
  "burns": 0,
  "repos": 2,
  "merged": 20,
  "flights": 21,
  "indexed": 6,
  "burn_rate": 0,
  "merge_rate": 0.952,
  "last_flight_at": "2025-05-25T22:29:29+00:00"
 },
 "agents": [
  {
   "agent": "openai-codex",
   "burns": 0,
   "merged": 20,
   "flights": 21
  }
 ],
 "repos": [
  {
   "stars": 364,
   "flights": 19,
   "full_name": "jcputney/scorm-again",
   "primary_language": "TypeScript"
  },
  {
   "stars": 1,
   "flights": 2,
   "full_name": "jcputney/elearning-module-parser",
   "primary_language": "Java"
  }
 ],
 "flights": [
  {
   "repo": "jcputney/scorm-again",
   "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
  },
  {
   "repo": "jcputney/scorm-again",
   "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
  },
  {
   "repo": "jcputney/scorm-again",
   "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
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix CrossFrameAPI message origin handling",
   "number": 963,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 49,
   "deletions": 0,
   "merged_at": "2025-05-22T17:52:42+00:00",
   "opened_at": "2025-05-22T17:49:15+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.06
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix type issues and error logging",
   "number": 951,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 24,
   "deletions": 2,
   "merged_at": "2025-05-19T02:14:01+00:00",
   "opened_at": "2025-05-19T02:13:19+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.01
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix stringMatches bug",
   "number": 950,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 20,
   "deletions": 3,
   "merged_at": "2025-05-19T01:42:44+00:00",
   "opened_at": "2025-05-19T01:39:32+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.05
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix AICC identifier regex",
   "number": 979,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 11,
   "deletions": 1,
   "merged_at": "2025-05-27T15:41:00+00:00",
   "opened_at": "2025-05-25T22:29:29+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 41.19
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix sequencing reset on ADLNav",
   "number": 978,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-05-25T19:58:41+00:00",
   "opened_at": "2025-05-25T19:45:28+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.22
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix SCORM 2004 sequencing navigation checks",
   "number": 975,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 12,
   "deletions": 5,
   "merged_at": "2025-05-25T19:11:32+00:00",
   "opened_at": "2025-05-25T19:07:48+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.06
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix SCORM2004 termination error code",
   "number": 974,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 6,
   "deletions": 3,
   "merged_at": "2025-05-25T19:10:39+00:00",
   "opened_at": "2025-05-25T19:06:43+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.07
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix HttpService success detection",
   "number": 973,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 1,
   "merged_at": "2025-05-25T02:46:26+00:00",
   "opened_at": "2025-05-24T20:29:41+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 6.28
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix getTimeAsSeconds handling of numeric strings",
   "number": 972,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 11,
   "deletions": 3,
   "merged_at": "2025-05-24T20:03:54+00:00",
   "opened_at": "2025-05-24T19:59:49+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.07
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix interface typo for getCommitObject",
   "number": 970,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 8,
   "deletions": 2,
   "merged_at": "2025-05-23T16:16:40+00:00",
   "opened_at": "2025-05-23T16:13:23+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.05
  },
  {
   "repo": "jcputney/elearning-module-parser",
   "agent": "openai-codex",
   "state": "closed",
   "title": "Increase test coverage for metadata output classes",
   "number": 147,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-23T15:56:52+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "repo": "jcputney/elearning-module-parser",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix path handling in LocalFileAccess",
   "number": 146,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-05-23T14:43:13+00:00",
   "opened_at": "2025-05-23T14:27:22+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.26
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update CrossFrame docs",
   "number": 964,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 10,
   "deletions": 3,
   "merged_at": "2025-05-22T23:58:11+00:00",
   "opened_at": "2025-05-22T18:03:17+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 5.92
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix origin check in CrossFrameLMS",
   "number": 962,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 10,
   "deletions": 1,
   "merged_at": "2025-05-22T01:44:47+00:00",
   "opened_at": "2025-05-21T15:52:11+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 9.88
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix TypeScript definition imports",
   "number": 959,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 3,
   "deletions": 3,
   "merged_at": "2025-05-20T14:14:29+00:00",
   "opened_at": "2025-05-20T14:14:00+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.01
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix SCORM 1.2 student response limit",
   "number": 952,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 8,
   "deletions": 1,
   "merged_at": "2025-05-19T02:15:54+00:00",
   "opened_at": "2025-05-19T02:15:36+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.01
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix decimal regex and add validation test",
   "number": 949,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 17,
   "deletions": 1,
   "merged_at": "2025-05-19T01:25:41+00:00",
   "opened_at": "2025-05-19T01:22:55+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.05
  },
  {
   "repo": "jcputney/scorm-again",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix NAVBoolean regex bug",
   "number": 948,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 1,
   "deletions": 1,
   "merged_at": "2025-05-18T16:19:30+00:00",
   "opened_at": "2025-05-18T16:19:13+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0
  }
 ],
 "claim": null,
 "page": "https://agentriders.com/logs/author/jcputney/"
}