{
 "author": {
  "bio": "Security Engineer, Detection & Response",
  "name": "Adel Ka",
  "login": "0x4D31",
  "is_bot": false,
  "company": null,
  "avatar_url": "https://avatars.githubusercontent.com/u/11577776?v=4",
  "social_urls": [],
  "website_url": "https://twitter.com/0x4d31",
  "github_user_id": 11577776,
  "readme_excerpt": null,
  "profile_fetched_at": "2026-11-04T18:44:28.771798+00:00",
  "github_profile": "https://github.com/0x4D31"
 },
 "totals": {
  "burns": 0,
  "repos": 3,
  "merged": 28,
  "flights": 33,
  "indexed": 11,
  "burn_rate": 0,
  "merge_rate": 0.848,
  "last_flight_at": "2025-07-30T00:17:40+00:00"
 },
 "agents": [
  {
   "agent": "openai-codex",
   "burns": 0,
   "merged": 28,
   "flights": 33
  }
 ],
 "repos": [
  {
   "stars": 674,
   "flights": 16,
   "full_name": "0x4D31/galah",
   "primary_language": "Go"
  },
  {
   "stars": 1,
   "flights": 15,
   "full_name": "0x4D31/fingerproxy",
   "primary_language": "Go"
  },
  {
   "stars": 320,
   "flights": 2,
   "full_name": "0x4D31/finch",
   "primary_language": "Go"
  }
 ],
 "flights": [
  {
   "repo": "0x4D31/finch",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix watch integration tests",
   "number": 1,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 72,
   "deletions": 21,
   "merged_at": "2025-07-27T22:57:11+00:00",
   "opened_at": "2025-07-27T22:55:49+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.02
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/finch",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix fingerprint error test",
   "number": 2,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 1,
   "merged_at": "2025-07-30T00:19:28+00:00",
   "opened_at": "2025-07-30T00:17:40+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.03
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add HTTP/3 support to JA4H",
   "number": 16,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-20T02:36:49+00:00",
   "opened_at": "2025-07-20T02:36:41+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Record HTTP/2 PRIORITY frames only before headers",
   "number": 15,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-19T23:46:51+00:00",
   "opened_at": "2025-07-19T23:45:09+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.03
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "closed",
   "title": "Fix HTTP/2 PRIORITY handling",
   "number": 14,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-19T22:05:38+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement Metadata OrderedHeaders",
   "number": 13,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-19T03:12:53+00:00",
   "opened_at": "2025-07-19T03:05:09+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.13
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor HTTP/2 header order handling",
   "number": 12,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-18T03:03:15+00:00",
   "opened_at": "2025-07-18T02:59:43+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.06
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement HTTP/2 support for JA4H header injector",
   "number": 11,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-18T01:39:21+00:00",
   "opened_at": "2025-07-18T01:35:50+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.06
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix headers overwrite on trailers",
   "number": 10,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-18T01:25:38+00:00",
   "opened_at": "2025-07-18T01:25:30+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Record ordered HTTP/2 headers",
   "number": 9,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-18T01:19:22+00:00",
   "opened_at": "2025-07-18T01:18:51+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add JA4H header injector",
   "number": 8,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T03:36:53+00:00",
   "opened_at": "2025-07-17T03:36:19+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add JA4H test for multiple cookies",
   "number": 7,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T03:25:10+00:00",
   "opened_at": "2025-07-17T03:24:57+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix JA4H fingerprint and tests",
   "number": 6,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T03:12:20+00:00",
   "opened_at": "2025-07-17T03:11:12+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.02
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement JA4H fingerprint calculation",
   "number": 5,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T03:26:13+00:00",
   "opened_at": "2025-07-17T02:14:02+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 1.2
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Capture header order for HTTP/1.x",
   "number": 3,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T01:41:43+00:00",
   "opened_at": "2025-07-17T01:15:02+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.44
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update import paths to new fork",
   "number": 2,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-13T03:58:34+00:00",
   "opened_at": "2025-07-13T03:58:15+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "repo": "0x4D31/fingerproxy",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add QUIC awareness to JA4 fingerprint",
   "number": 1,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-13T02:45:38+00:00",
   "opened_at": "2025-07-13T02:45:29+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  },
  {
   "repo": "0x4D31/galah",
   "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
  }
 ],
 "claim": null,
 "page": "https://agentriders.com/logs/author/0x4d31/"
}