{
 "repo": {
  "name": "galah",
  "owner": "0x4D31",
  "stars": 674,
  "license": "Apache-2.0",
  "full_name": "0x4D31/galah",
  "fetched_at": "2026-11-08T10:59:44.441389+00:00",
  "primary_language": "Go"
 },
 "burns": [],
 "total": 16,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 12,
   "flights": 16,
   "burn_rate": 0,
   "merge_rate": 0.75,
   "last_flight_at": "2025-07-24T03:07:45+00:00",
   "median_hours_to_merge": 0
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Expose cache and event logging helpers",
   "number": 37,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 92,
   "deletions": 0,
   "merged_at": "2025-07-24T03:17:01+00:00",
   "opened_at": "2025-07-24T03:07:45+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 0.15
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor logging to charmbracelet/log",
   "number": 36,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 285,
   "deletions": 126,
   "merged_at": "2025-07-24T03:27:28+00:00",
   "opened_at": "2025-07-24T01:07:52+00:00",
   "task_type": "refactor",
   "files_changed": 11,
   "hours_to_merge": 2.33
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add galah service package",
   "number": 35,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 971,
   "deletions": 135,
   "merged_at": "2025-07-23T23:29:20+00:00",
   "opened_at": "2025-07-23T23:27:27+00:00",
   "task_type": "feat",
   "files_changed": 10,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Clarify service defaults",
   "number": 34,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 13,
   "deletions": 5,
   "merged_at": "2025-07-21T23:05:58+00:00",
   "opened_at": "2025-07-21T23:03:47+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Ensure default file paths in NewServiceFromConfig",
   "number": 33,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 37,
   "deletions": 0,
   "merged_at": "2025-07-21T22:25:19+00:00",
   "opened_at": "2025-07-21T22:25:09+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor app.Run to use NewServiceFromConfig",
   "number": 32,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 15,
   "deletions": 9,
   "merged_at": "2025-07-14T03:22:14+00:00",
   "opened_at": "2025-07-14T03:22:06+00:00",
   "task_type": "refactor",
   "files_changed": 1,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Service cleanup and tests",
   "number": 31,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 65,
   "deletions": 0,
   "merged_at": "2025-07-14T03:20:21+00:00",
   "opened_at": "2025-07-14T03:20:10+00:00",
   "task_type": "feat",
   "files_changed": 5,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "add tests for Service.GenerateHTTPResponse",
   "number": 30,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 88,
   "deletions": 0,
   "merged_at": "2025-05-18T00:17:58+00:00",
   "opened_at": "2025-05-18T00:16:35+00:00",
   "task_type": "test",
   "files_changed": 1,
   "hours_to_merge": 0.02
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add constructor for preloaded config",
   "number": 29,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 93,
   "deletions": 5,
   "merged_at": "2025-05-18T00:05:28+00:00",
   "opened_at": "2025-05-17T18:02:59+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 6.04
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Add constructor for preloaded config",
   "number": 28,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 65,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-17T17:35:09+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Add constructor for preloaded config",
   "number": 27,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 62,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-17T17:27:19+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add default paths to galah.NewService",
   "number": 26,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 66,
   "deletions": 0,
   "merged_at": "2025-05-17T17:25:44+00:00",
   "opened_at": "2025-05-17T17:24:04+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update library usage docs",
   "number": 25,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 3,
   "deletions": 1,
   "merged_at": "2025-05-17T17:23:03+00:00",
   "opened_at": "2025-05-17T17:22:15+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Delegate server responses to service",
   "number": 24,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 51,
   "deletions": 31,
   "merged_at": "2025-05-17T15:05:21+00:00",
   "opened_at": "2025-05-17T15:00:14+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 0.09
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Add galah service package",
   "number": 23,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 971,
   "deletions": 135,
   "merged_at": null,
   "opened_at": "2025-05-17T11:53:30+00:00",
   "task_type": "feat",
   "files_changed": 9,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Integrate Suricata rule matching",
   "number": 21,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 166,
   "deletions": 164,
   "merged_at": null,
   "opened_at": "2025-05-17T09:05:23+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": null
  }
 ],
 "indexed": 10,
 "monthly": [
  {
   "burns": 0,
   "month": "2025-05",
   "merged": 5,
   "flights": 9
  },
  {
   "burns": 0,
   "month": "2025-07",
   "merged": 7,
   "flights": 7
  }
 ],
 "top_authors": [
  {
   "name": "Adel Ka",
   "login": "0x4D31",
   "flights": 16,
   "indexed": 10
  }
 ],
 "page": "https://agentriders.com/logs/0x4D31/galah/"
}