{
 "repo": {
  "name": "loculus",
  "owner": "loculus-project",
  "stars": 54,
  "license": "AGPL-3.0",
  "full_name": "loculus-project/loculus",
  "fetched_at": null,
  "primary_language": "TypeScript"
 },
 "burns": [],
 "total": 96,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 51,
   "flights": 95,
   "burn_rate": 0,
   "merge_rate": 0.718,
   "last_flight_at": "2025-07-22T16:47:53+00:00",
   "median_hours_to_merge": 37
  },
  {
   "agent": "github-copilot",
   "merged": 0,
   "flights": 1,
   "burn_rate": null,
   "merge_rate": null,
   "last_flight_at": "2025-07-21T12:13:10+00:00",
   "median_hours_to_merge": null
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(website):demo of More tools option in dropdown",
   "number": 4749,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-22T16:47:53+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "fix(website): convert some title case to sentence case",
   "number": 4746,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-22T15:32:49+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "open",
   "title": "feat(website): add admin dashboard menu entry for superusers",
   "number": 4725,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-21T12:13:10+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(deployment): allow multiple values files and allow values for `deploy.py config`",
   "number": 4697,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T13:40:04+00:00",
   "opened_at": "2025-07-16T16:05:45+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 21.57
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "test(integration): add test markdown page integration test",
   "number": 4665,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-14T12:51:11+00:00",
   "opened_at": "2025-07-14T11:20:23+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 1.51
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "[cli-branch] feat(website): add loculus info endpoint",
   "number": 4644,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-10T14:13:34+00:00",
   "opened_at": "2025-07-10T13:46:58+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.44
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(website): show long display name overlay on organism card",
   "number": 4640,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-08T20:34:46+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(deposition): upload new accessions incrementally",
   "number": 4637,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-08T14:43:29+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(website): tooltips on organism cards with longer names for acronymed organisms",
   "number": 4634,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-07T22:54:59+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): sync metadataformat docs organism selector with URL",
   "number": 4624,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-07T22:29:37+00:00",
   "opened_at": "2025-07-07T20:08:17+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 2.36
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(backend): document 307 redirect for file downloads",
   "number": 4599,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-07-03T16:58:43+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): avoid get-data-to-edit for revocations",
   "number": 4553,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-30T15:41:42+00:00",
   "opened_at": "2025-06-30T15:17:30+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.4
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): prevent trimming of revocation message",
   "number": 4548,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-30T15:37:32+00:00",
   "opened_at": "2025-06-30T14:43:16+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.9
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): add show more for long values",
   "number": 4539,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-30T13:37:45+00:00",
   "opened_at": "2025-06-30T11:53:32+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 1.74
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): componentize disabling elements until hydration",
   "number": 4532,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-30T10:26:30+00:00",
   "opened_at": "2025-06-27T14:42:24+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 67.74
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "fix(website): support mobile input for date field",
   "number": 4476,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-22T12:24:43+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "test(integration-tests): fail on console warnings/errors",
   "number": 4469,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-30T11:24:58+00:00",
   "opened_at": "2025-06-20T13:03:30+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 238.36
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(deployment): make localhost configurable",
   "number": 4448,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-18T10:14:23+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "fix(website): display dashes for empty values",
   "number": 4441,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-17T19:06:02+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): trim remote banner message",
   "number": 4405,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-10T20:55:09+00:00",
   "opened_at": "2025-06-10T20:40:09+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.25
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(website): add icons to Tools and Download buttons",
   "number": 4388,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-09T15:13:51+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): add dynamic banner message",
   "number": 4356,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-10T17:52:24+00:00",
   "opened_at": "2025-06-05T22:43:23+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 115.15
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "ci(integration-tests): run different browser tests in different containers",
   "number": 4354,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-06T08:07:30+00:00",
   "opened_at": "2025-06-05T16:03:37+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 16.06
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "chore(integration): wip",
   "number": 4339,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-05T09:56:51+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): linkouts allowing specification of specific columns of metadata",
   "number": 4333,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-18T21:45:07+00:00",
   "opened_at": "2025-06-04T23:20:24+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 334.41
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): display authors as \"FirstName LastName\" in topmatter",
   "number": 4331,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-17T19:09:19+00:00",
   "opened_at": "2025-06-04T21:56:56+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 309.21
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(website): subtle zebra striping for search rows",
   "number": 4330,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-04T18:29:55+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): improve seqset details layout on mobile",
   "number": 4325,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-05T08:00:56+00:00",
   "opened_at": "2025-06-04T14:59:29+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 17.02
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(website): add analytics tracking",
   "number": 4324,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-04T14:50:52+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "fix(backend): prevent duplicate open data use terms",
   "number": 4321,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-04T14:31:41+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): avoid unnecessary url params",
   "number": 4320,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-09T12:03:26+00:00",
   "opened_at": "2025-06-04T14:20:37+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 117.71
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "style(website): de-emphasize seqset author display",
   "number": 4313,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-04T11:39:19+00:00",
   "opened_at": "2025-06-04T11:10:44+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.48
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): prevent text selection from triggering row click",
   "number": 4312,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-05T13:22:59+00:00",
   "opened_at": "2025-06-04T11:09:11+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 26.23
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(backend): fetch CrossRef citations",
   "number": 4308,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-04T00:35:17+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): improve seqset add button",
   "number": 4307,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-04T11:40:09+00:00",
   "opened_at": "2025-06-04T00:34:49+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 11.09
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "test(integration): add seqset creation test",
   "number": 4306,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-04T00:19:47+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(integration-tests): add group management tests",
   "number": 4304,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-04T07:51:56+00:00",
   "opened_at": "2025-06-03T22:25:22+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 9.44
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(integration-tests): add invalid login test",
   "number": 4303,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-03T21:36:15+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(website): improve edit data use terms button",
   "number": 4302,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-03T21:17:01+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "refactor(deployment): use env vars for backend",
   "number": 4295,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-03T13:28:33+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "fix(website): show 403 page when group access denied",
   "number": 4271,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-06-02T10:22:28+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat!(website): truncate search table data using CSS not a fixed number of characters",
   "number": 4243,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-02T13:11:02+00:00",
   "opened_at": "2025-05-29T14:03:01+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 95.13
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "test(integration): use custom data for substring search",
   "number": 4242,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-29T13:31:02+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(deployment): add scalable replica settings",
   "number": 4240,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T19:38:41+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): reset sequence preview state when switching",
   "number": 4237,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-05-28T18:59:28+00:00",
   "opened_at": "2025-05-28T18:21:02+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.64
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(deployment): add autoscaling for website and lapis",
   "number": 4235,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T17:56:42+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(website): add metadata template download spec",
   "number": 4231,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T13:36:23+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "test(website): add sequence banner integration test",
   "number": 4230,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T13:36:06+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "feat(website): add SeqSet integration tests",
   "number": 4229,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T13:35:31+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "test(group): add management specs",
   "number": 4228,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": null,
   "opened_at": "2025-05-28T13:35:14+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": null
  }
 ],
 "indexed": 0,
 "monthly": [
  {
   "burns": 0,
   "month": "2025-05",
   "merged": 31,
   "flights": 55
  },
  {
   "burns": 0,
   "month": "2025-06",
   "merged": 16,
   "flights": 30
  },
  {
   "burns": 0,
   "month": "2025-07",
   "merged": 4,
   "flights": 11
  }
 ],
 "top_authors": [
  {
   "name": "Theo Sanderson",
   "login": "theosanderson",
   "flights": 93,
   "indexed": 0
  },
  {
   "name": "Cornelius Roemer",
   "login": "corneliusroemer",
   "flights": 2,
   "indexed": 0
  }
 ],
 "page": "https://agentriders.com/logs/loculus-project/loculus/"
}