{
 "author": {
  "bio": "Old school software engineer and technology enthusiast. Co-founder of @hivesolutions and @ripe-tech. Creator of Appier, Netius, and Colony framework.",
  "name": "João Magalhães",
  "login": "joamag",
  "is_bot": false,
  "company": "Hive Solutions",
  "avatar_url": "https://avatars.githubusercontent.com/u/25441?v=4",
  "social_urls": [
   "https://twitter.com/joamag",
   "https://www.linkedin.com/in/joamag"
  ],
  "website_url": "https://joao.me/",
  "github_user_id": 25441,
  "readme_excerpt": "Location: Porto, Portugal Company: Hive Solutions Twitter: @joamag Website: https://joao.me",
  "profile_fetched_at": "2026-11-04T18:46:42.480559+00:00",
  "github_profile": "https://github.com/joamag"
 },
 "totals": {
  "burns": 0,
  "repos": 7,
  "merged": 16,
  "flights": 24,
  "indexed": 5,
  "burn_rate": 0,
  "merge_rate": 0.889,
  "last_flight_at": "2025-07-20T11:48:14+00:00"
 },
 "agents": [
  {
   "agent": "openai-codex",
   "burns": 0,
   "merged": 16,
   "flights": 24
  }
 ],
 "repos": [
  {
   "stars": 683,
   "flights": 14,
   "full_name": "joamag/boytacean",
   "primary_language": "Rust"
  },
  {
   "stars": 0,
   "flights": 3,
   "full_name": "joamag/mailsis",
   "primary_language": "Rust"
  },
  {
   "stars": 0,
   "flights": 2,
   "full_name": "hivesolutions/budy-api",
   "primary_language": "Python"
  },
  {
   "stars": 117,
   "flights": 2,
   "full_name": "hivesolutions/netius",
   "primary_language": "Python"
  },
  {
   "stars": 131,
   "flights": 1,
   "full_name": "hivesolutions/appier",
   "primary_language": "Python"
  },
  {
   "stars": 23,
   "flights": 1,
   "full_name": "hivesolutions/colony",
   "primary_language": "Python"
  },
  {
   "stars": 1,
   "flights": 1,
   "full_name": "hivesolutions/flask-quorum",
   "primary_language": "Python"
  }
 ],
 "flights": [
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add optional high-pass filter",
   "number": 22,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 371,
   "deletions": 158,
   "merged_at": "2025-06-10T13:08:04+00:00",
   "opened_at": "2025-06-10T08:14:28+00:00",
   "task_type": "feat",
   "files_changed": 8,
   "hours_to_merge": 4.89
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve agent docs",
   "number": 20,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 13,
   "deletions": 16,
   "merged_at": "2025-06-09T22:46:40+00:00",
   "opened_at": "2025-06-09T22:45:39+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.02
  },
  {
   "repo": "hivesolutions/appier",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix tiny adapter drop_db",
   "number": 76,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 34,
   "deletions": 22,
   "merged_at": "2025-06-09T22:42:16+00:00",
   "opened_at": "2025-06-09T22:33:44+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.14
  },
  {
   "repo": "hivesolutions/netius",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Skip network tests via NO_NETWORK",
   "number": 44,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 92,
   "deletions": 86,
   "merged_at": "2025-06-08T17:28:32+00:00",
   "opened_at": "2025-06-08T16:12:18+00:00",
   "task_type": "test",
   "files_changed": 2,
   "hours_to_merge": 1.27
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Optimize interrupt polling",
   "number": 12,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 158,
   "deletions": 48,
   "merged_at": "2025-06-07T11:40:44+00:00",
   "opened_at": "2025-06-06T08:43:51+00:00",
   "task_type": "refactor",
   "files_changed": 4,
   "hours_to_merge": 26.95
  },
  {
   "repo": "hivesolutions/flask-quorum",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add scheduling tests",
   "number": 4,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-20T13:53:29+00:00",
   "opened_at": "2025-07-20T11:48:14+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 2.09
  },
  {
   "repo": "joamag/mailsis",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add SMTP server unit tests",
   "number": 13,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-24T11:48:01+00:00",
   "opened_at": "2025-06-24T11:35:38+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.21
  },
  {
   "repo": "joamag/mailsis",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Audit for unneeded clones",
   "number": 12,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T15:51:20+00:00",
   "opened_at": "2025-06-18T22:14:05+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 89.62
  },
  {
   "repo": "joamag/mailsis",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add SQLite metadata storage",
   "number": 11,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-18T21:52:25+00:00",
   "opened_at": "2025-06-18T06:05:52+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 15.78
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "open",
   "title": "Add WebGL shader support to web frontend",
   "number": 27,
   "outcome": "stale",
   "index_ok": false,
   "additions": 641,
   "deletions": 183,
   "merged_at": null,
   "opened_at": "2025-06-15T06:41:08+00:00",
   "task_type": "feat",
   "files_changed": 12,
   "hours_to_merge": null
  },
  {
   "repo": "hivesolutions/budy-api",
   "agent": "openai-codex",
   "state": "open",
   "title": "Add stronger type hints",
   "number": 14,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-14T19:15:27+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "repo": "hivesolutions/budy-api",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add simple usage example",
   "number": 13,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-14T09:36:58+00:00",
   "opened_at": "2025-06-14T09:35:14+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.03
  },
  {
   "repo": "hivesolutions/colony",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix path_util messages and docstrings",
   "number": 18,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-13T22:59:09+00:00",
   "opened_at": "2025-06-13T22:55:41+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.06
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix audio channel getter",
   "number": 25,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 2,
   "deletions": 2,
   "merged_at": "2025-06-10T23:06:56+00:00",
   "opened_at": "2025-06-10T22:38:16+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.48
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "closed",
   "title": "Add shader loading to SDL frontend",
   "number": 24,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 347,
   "deletions": 74,
   "merged_at": null,
   "opened_at": "2025-06-10T22:03:52+00:00",
   "task_type": "feat",
   "files_changed": 11,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "open",
   "title": "Add band-limited update scaffolding",
   "number": 23,
   "outcome": "stale",
   "index_ok": false,
   "additions": 195,
   "deletions": 42,
   "merged_at": null,
   "opened_at": "2025-06-10T21:49:17+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "open",
   "title": "Add network serial device for netplay",
   "number": 21,
   "outcome": "stale",
   "index_ok": false,
   "additions": 149,
   "deletions": 43,
   "merged_at": null,
   "opened_at": "2025-06-09T23:02:17+00:00",
   "task_type": "feat",
   "files_changed": 18,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add regression test for HDMA stop cycles",
   "number": 19,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 78,
   "deletions": 6,
   "merged_at": "2025-06-09T14:30:40+00:00",
   "opened_at": "2025-06-09T11:50:15+00:00",
   "task_type": "test",
   "files_changed": 1,
   "hours_to_merge": 2.67
  },
  {
   "repo": "hivesolutions/netius",
   "agent": "openai-codex",
   "state": "open",
   "title": "Add base module type stubs",
   "number": 45,
   "outcome": "stale",
   "index_ok": false,
   "additions": 414,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-06-08T17:58:31+00:00",
   "task_type": "feat",
   "files_changed": 11,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "closed",
   "title": "Implement SDL caching in CI",
   "number": 17,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 18,
   "deletions": 8,
   "merged_at": null,
   "opened_at": "2025-06-07T21:09:20+00:00",
   "task_type": "ci",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix ROM title extraction",
   "number": 15,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 47,
   "deletions": 12,
   "merged_at": "2025-06-07T20:12:08+00:00",
   "opened_at": "2025-06-07T19:16:44+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.92
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix BMP LE byte order",
   "number": 14,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 248,
   "deletions": 51,
   "merged_at": "2025-06-07T23:36:09+00:00",
   "opened_at": "2025-06-07T18:14:15+00:00",
   "task_type": "fix",
   "files_changed": 8,
   "hours_to_merge": 5.37
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "open",
   "title": "Improve timing accuracy",
   "number": 13,
   "outcome": "stale",
   "index_ok": false,
   "additions": 354,
   "deletions": 167,
   "merged_at": null,
   "opened_at": "2025-06-07T17:50:21+00:00",
   "task_type": "fix",
   "files_changed": 11,
   "hours_to_merge": null
  },
  {
   "repo": "joamag/boytacean",
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement HBlank DMA timing",
   "number": 11,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 339,
   "deletions": 158,
   "merged_at": "2025-06-04T17:32:24+00:00",
   "opened_at": "2025-06-04T07:23:22+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 10.15
  }
 ],
 "claim": null,
 "page": "https://agentriders.com/logs/author/joamag/"
}