{
 "repo": {
  "name": "Chronicle-Threads",
  "owner": "OpenHFT",
  "stars": 196,
  "license": "NOASSERTION",
  "full_name": "OpenHFT/Chronicle-Threads",
  "fetched_at": "2026-11-08T10:59:58.505471+00:00",
  "primary_language": "Java"
 },
 "burns": [],
 "total": 53,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 52,
   "flights": 53,
   "burn_rate": 0,
   "merge_rate": 1,
   "last_flight_at": "2025-05-26T03:18:29+00:00",
   "median_hours_to_merge": 0.1
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add decision log",
   "number": 328,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 36,
   "deletions": 0,
   "merged_at": "2025-05-26T03:18:39+00:00",
   "opened_at": "2025-05-26T03:18:29+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Adopt Nine‑Box requirement taxonomy",
   "number": 327,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 38,
   "deletions": 35,
   "merged_at": "2025-05-26T03:15:34+00:00",
   "opened_at": "2025-05-26T03:15:24+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add documentation for EventLoopThreadHolder",
   "number": 325,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 9,
   "deletions": 0,
   "merged_at": "2025-05-25T20:43:40+00:00",
   "opened_at": "2025-05-25T20:43:31+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for test helper handlers",
   "number": 324,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 8,
   "deletions": 0,
   "merged_at": "2025-05-25T20:44:51+00:00",
   "opened_at": "2025-05-25T20:43:24+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.02
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for StopVCloseTest loops",
   "number": 323,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 6,
   "deletions": 0,
   "merged_at": "2025-05-25T20:44:58+00:00",
   "opened_at": "2025-05-25T20:43:20+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Explain timeout validation in tests",
   "number": 322,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 19,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:05+00:00",
   "opened_at": "2025-05-25T20:43:18+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Describe pauser behaviours tested in PauserTest",
   "number": 321,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 10,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:12+00:00",
   "opened_at": "2025-05-25T20:43:14+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document MediumEventLoop behaviour",
   "number": 320,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 9,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:19+00:00",
   "opened_at": "2025-05-25T20:43:12+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document LongPauser behaviour under test",
   "number": 319,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 13,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:27+00:00",
   "opened_at": "2025-05-25T20:43:08+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document LongPauserBenchmark",
   "number": 318,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 8,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:34+00:00",
   "opened_at": "2025-05-25T20:43:05+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Issue251Test Javadoc",
   "number": 317,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:41+00:00",
   "opened_at": "2025-05-25T20:43:02+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc to EventLoopsTest",
   "number": 316,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 9,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:50+00:00",
   "opened_at": "2025-05-25T20:42:59+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.05
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for event loop stress test",
   "number": 315,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 8,
   "deletions": 0,
   "merged_at": "2025-05-25T20:45:58+00:00",
   "opened_at": "2025-05-25T20:42:56+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.05
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add EventGroup lifecycle test doc",
   "number": 314,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 12,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:08+00:00",
   "opened_at": "2025-05-25T20:42:53+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.05
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc to stress test",
   "number": 313,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:17+00:00",
   "opened_at": "2025-05-25T20:42:50+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add handler registration test Javadoc",
   "number": 312,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 9,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:30+00:00",
   "opened_at": "2025-05-25T20:42:46+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc explaining invalid affinity test",
   "number": 311,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:37+00:00",
   "opened_at": "2025-05-25T20:42:43+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add test condition summary",
   "number": 310,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:45+00:00",
   "opened_at": "2025-05-25T20:42:41+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for BlockingEventLoopTest",
   "number": 309,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-05-25T20:46:53+00:00",
   "opened_at": "2025-05-25T20:42:37+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document accept handler constants",
   "number": 308,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 18,
   "deletions": 1,
   "merged_at": "2025-05-25T20:47:01+00:00",
   "opened_at": "2025-05-25T20:42:34+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document service thread monitoring",
   "number": 307,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 25,
   "deletions": 0,
   "merged_at": "2025-05-25T20:47:08+00:00",
   "opened_at": "2025-05-25T20:42:31+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.08
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve ThreadMonitorHarness documentation",
   "number": 306,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 27,
   "deletions": 0,
   "merged_at": "2025-05-25T20:47:17+00:00",
   "opened_at": "2025-05-25T20:42:25+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.08
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadocs for thread utilities",
   "number": 305,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 48,
   "deletions": 0,
   "merged_at": "2025-05-25T20:47:25+00:00",
   "opened_at": "2025-05-25T20:42:19+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document ThreadHolder interface",
   "number": 304,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 42,
   "deletions": 0,
   "merged_at": "2025-05-25T20:47:45+00:00",
   "opened_at": "2025-05-25T20:42:15+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add licence header and Javadoc to NotifyDiskLowLogWarn",
   "number": 303,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 23,
   "deletions": 0,
   "merged_at": "2025-05-25T20:47:56+00:00",
   "opened_at": "2025-05-25T20:42:12+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.1
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add licence header and Javadoc for NotifyDiskLow",
   "number": 302,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 29,
   "deletions": 0,
   "merged_at": "2025-05-25T20:48:04+00:00",
   "opened_at": "2025-05-25T20:42:05+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.1
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for EventHandlers enum",
   "number": 301,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 0,
   "merged_at": "2025-05-25T20:44:31+00:00",
   "opened_at": "2025-05-25T20:41:58+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve EventLoops documentation",
   "number": 300,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 10,
   "deletions": 4,
   "merged_at": "2025-05-25T20:25:23+00:00",
   "opened_at": "2025-05-25T20:24:59+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add example package overview",
   "number": 299,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 26,
   "deletions": 0,
   "merged_at": "2025-05-25T20:26:59+00:00",
   "opened_at": "2025-05-25T20:24:56+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Javadoc for PauserMonitorFactory",
   "number": 298,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 17,
   "deletions": 0,
   "merged_at": "2025-05-25T20:27:08+00:00",
   "opened_at": "2025-05-25T20:24:53+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document ExecutorFactory",
   "number": 297,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 44,
   "deletions": 0,
   "merged_at": "2025-05-25T20:27:15+00:00",
   "opened_at": "2025-05-25T20:24:48+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document thread monitors",
   "number": 296,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 76,
   "deletions": 8,
   "merged_at": "2025-05-25T20:27:22+00:00",
   "opened_at": "2025-05-25T20:24:43+00:00",
   "task_type": "docs",
   "files_changed": 3,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document milli pauser behaviour",
   "number": 295,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 19,
   "deletions": 15,
   "merged_at": "2025-05-25T20:27:31+00:00",
   "opened_at": "2025-05-25T20:24:22+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.05
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Clarify busy pauser docs",
   "number": 294,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 28,
   "deletions": 16,
   "merged_at": "2025-05-25T20:27:41+00:00",
   "opened_at": "2025-05-25T20:24:18+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document YieldingPauser behaviour",
   "number": 293,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 20,
   "deletions": 13,
   "merged_at": "2025-05-25T20:27:49+00:00",
   "opened_at": "2025-05-25T20:24:15+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add package documentation for threads package",
   "number": 292,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 33,
   "deletions": 0,
   "merged_at": "2025-05-25T20:27:57+00:00",
   "opened_at": "2025-05-25T20:24:10+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refine system property documentation",
   "number": 291,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 35,
   "deletions": 18,
   "merged_at": "2025-05-25T20:28:05+00:00",
   "opened_at": "2025-05-25T20:24:07+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Clarify event loop lifecycle docs",
   "number": 290,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 12,
   "deletions": 6,
   "merged_at": "2025-05-25T20:28:14+00:00",
   "opened_at": "2025-05-25T20:24:04+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document TimedEventHandler scheduling",
   "number": 289,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 34,
   "deletions": 2,
   "merged_at": "2025-05-25T20:28:22+00:00",
   "opened_at": "2025-05-25T20:24:00+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document NamedThreadFactory behaviour",
   "number": 287,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 24,
   "deletions": 0,
   "merged_at": "2025-05-25T20:28:38+00:00",
   "opened_at": "2025-05-25T20:23:55+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.08
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document MonitorEventLoop usage",
   "number": 286,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 20,
   "deletions": 4,
   "merged_at": "2025-05-25T20:28:47+00:00",
   "opened_at": "2025-05-25T20:23:53+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.08
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve BlockingEventLoop docs",
   "number": 285,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 19,
   "deletions": 2,
   "merged_at": "2025-05-25T20:28:55+00:00",
   "opened_at": "2025-05-25T20:23:49+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve MediumEventLoop docs",
   "number": 284,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 21,
   "deletions": 6,
   "merged_at": "2025-05-25T20:29:04+00:00",
   "opened_at": "2025-05-25T20:23:44+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document DiskSpaceMonitor",
   "number": 283,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 22,
   "deletions": 1,
   "merged_at": "2025-05-25T20:29:12+00:00",
   "opened_at": "2025-05-25T20:22:40+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.11
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve lifecycle event loop javadoc",
   "number": 282,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 42,
   "deletions": 12,
   "merged_at": "2025-05-25T20:29:20+00:00",
   "opened_at": "2025-05-25T20:22:37+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.11
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document TIMER and DAEMON support",
   "number": 281,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 22,
   "deletions": 6,
   "merged_at": "2025-05-25T20:29:28+00:00",
   "opened_at": "2025-05-25T20:22:34+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.12
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document busy-spin, yield and sleep phases in LongPauser",
   "number": 280,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 27,
   "deletions": 18,
   "merged_at": "2025-05-25T20:29:35+00:00",
   "opened_at": "2025-05-25T20:22:31+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.12
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Document PauserMode options",
   "number": 279,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 30,
   "deletions": 41,
   "merged_at": "2025-05-25T20:29:44+00:00",
   "opened_at": "2025-05-25T20:22:28+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.12
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve EventGroupBuilder documentation",
   "number": 278,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 129,
   "deletions": 2,
   "merged_at": "2025-05-25T20:29:54+00:00",
   "opened_at": "2025-05-25T20:22:24+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.13
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve EventGroup Javadoc",
   "number": 277,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 56,
   "deletions": 4,
   "merged_at": "2025-05-25T20:30:03+00:00",
   "opened_at": "2025-05-25T20:22:21+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.13
  }
 ],
 "indexed": 26,
 "monthly": [
  {
   "burns": 0,
   "month": "2025-05",
   "merged": 52,
   "flights": 53
  }
 ],
 "top_authors": [
  {
   "name": "Peter Lawrey",
   "login": "peter-lawrey",
   "flights": 52,
   "indexed": 26
  },
  {
   "name": null,
   "login": "tgd",
   "flights": 1,
   "indexed": 0
  }
 ],
 "page": "https://agentriders.com/logs/OpenHFT/Chronicle-Threads/"
}