{
 "repo": {
  "name": "policy-synth",
  "owner": "CitizensFoundation",
  "stars": 51,
  "license": "MIT",
  "full_name": "CitizensFoundation/policy-synth",
  "fetched_at": null,
  "primary_language": "TypeScript"
 },
 "burns": [],
 "total": 101,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 100,
   "flights": 101,
   "burn_rate": 0,
   "merge_rate": 0.99,
   "last_flight_at": "2025-07-25T20:58:03+00:00",
   "median_hours_to_merge": 0
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix OpenAI tool message mapping",
   "number": 124,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-25T20:58:12+00:00",
   "opened_at": "2025-07-25T20:58:03+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Introduce ToolCall type",
   "number": 123,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-23T09:53:31+00:00",
   "opened_at": "2025-07-23T09:53:12+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix logger usage in callToolStep",
   "number": 122,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-23T09:50:51+00:00",
   "opened_at": "2025-07-23T09:50:42+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Handle Gemini streaming tool calls",
   "number": 121,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T23:40:52+00:00",
   "opened_at": "2025-07-22T23:40:42+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Handle streaming data in OpenAI chat",
   "number": 120,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T23:24:06+00:00",
   "opened_at": "2025-07-22T23:23:47+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update Claude streaming handling",
   "number": 119,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T23:05:39+00:00",
   "opened_at": "2025-07-22T23:05:30+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Support multiple tool calls in agents",
   "number": 118,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T22:22:25+00:00",
   "opened_at": "2025-07-22T22:22:13+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve tool context for planning",
   "number": 117,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T22:10:49+00:00",
   "opened_at": "2025-07-22T22:10:32+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix OpenAiChat logit bias logic",
   "number": 116,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T21:51:51+00:00",
   "opened_at": "2025-07-22T21:51:42+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Validate tool names in callToolStep",
   "number": 115,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T21:41:34+00:00",
   "opened_at": "2025-07-22T21:41:26+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor agentTask to use PolicySynthAgent base",
   "number": 114,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T21:05:19+00:00",
   "opened_at": "2025-07-22T21:04:44+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Gemini function calling support",
   "number": 113,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T18:04:00+00:00",
   "opened_at": "2025-07-22T18:03:51+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Claude function calling support",
   "number": 112,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T17:38:51+00:00",
   "opened_at": "2025-07-22T17:38:41+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add OpenAI function calling constraints",
   "number": 111,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-22T13:43:53+00:00",
   "opened_at": "2025-07-22T13:43:08+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix web research result URLs",
   "number": 110,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-19T12:27:17+00:00",
   "opened_at": "2025-07-19T12:27:06+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add legal research result fields to job degree analysis",
   "number": 109,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T20:55:42+00:00",
   "opened_at": "2025-07-17T20:55:31+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add job title degree extraction",
   "number": 108,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-17T18:41:05+00:00",
   "opened_at": "2025-07-17T18:40:52+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix dynamic job title in deep research items",
   "number": 107,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T22:19:34+00:00",
   "opened_at": "2025-07-16T22:19:24+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Use getter for scanningSystemPrompt",
   "number": 106,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T14:01:00+00:00",
   "opened_at": "2025-07-16T14:00:51+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update legal research workflow",
   "number": 105,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T13:27:49+00:00",
   "opened_at": "2025-07-16T13:27:37+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add drive connector support for statute scanning",
   "number": 104,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T10:41:24+00:00",
   "opened_at": "2025-07-16T10:41:15+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add statute scanning agent",
   "number": 103,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T10:00:51+00:00",
   "opened_at": "2025-07-16T10:00:40+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Limit token splitter chunks",
   "number": 102,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-09T18:54:53+00:00",
   "opened_at": "2025-07-09T18:54:40+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve token usage logging",
   "number": 101,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-16T10:02:54+00:00",
   "opened_at": "2025-07-08T12:00:35+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 190.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix closing Analysis tag",
   "number": 100,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-06T18:17:26+00:00",
   "opened_at": "2025-07-06T18:17:07+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix token chunking with fallback models",
   "number": 99,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-06T15:32:58+00:00",
   "opened_at": "2025-07-06T15:32:49+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Optimize Gemini token counting",
   "number": 98,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-05T12:33:27+00:00",
   "opened_at": "2025-07-05T12:33:17+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix Gemini chunking overlimit bug",
   "number": 97,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-05T12:07:49+00:00",
   "opened_at": "2025-07-05T12:07:38+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix XML block capture in TokenLimitChunker",
   "number": 96,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-05T11:37:07+00:00",
   "opened_at": "2025-07-05T11:36:56+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add option to preserve last words when chunking",
   "number": 95,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-05T10:32:23+00:00",
   "opened_at": "2025-07-05T10:32:11+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add custom XML tag support for TokenLimitChunker",
   "number": 94,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-05T09:55:19+00:00",
   "opened_at": "2025-07-05T09:55:10+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix context token limit load",
   "number": 93,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-04T21:29:06+00:00",
   "opened_at": "2025-07-04T21:28:56+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Gemini token counter support",
   "number": 92,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-04T18:27:18+00:00",
   "opened_at": "2025-07-04T18:26:57+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Handle OpenAI string length errors",
   "number": 91,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-03T22:08:58+00:00",
   "opened_at": "2025-07-03T22:08:49+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix 5xx detection for Gemini errors",
   "number": 90,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-03T21:13:52+00:00",
   "opened_at": "2025-07-03T21:13:42+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement retries for 5xx errors",
   "number": 89,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-02T00:20:08+00:00",
   "opened_at": "2025-07-02T00:18:28+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Use p-limit for concurrency in license comparison",
   "number": 88,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-01T18:51:08+00:00",
   "opened_at": "2025-07-01T18:50:58+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve reversed deep research comparison",
   "number": 87,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-01T18:01:17+00:00",
   "opened_at": "2025-07-01T18:01:08+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add reversed deep research comparison",
   "number": 86,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-07-01T17:22:16+00:00",
   "opened_at": "2025-07-01T17:22:06+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add error ignore list for Airbrake logger",
   "number": 85,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-26T12:37:31+00:00",
   "opened_at": "2025-06-26T12:37:21+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add deep research sheet comparison",
   "number": 84,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-24T21:00:44+00:00",
   "opened_at": "2025-06-24T21:00:35+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Gemini API key env var",
   "number": 83,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-24T05:40:59+00:00",
   "opened_at": "2025-06-24T05:40:52+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Modify nginx config to disable index caching",
   "number": 82,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-23T00:00:19+00:00",
   "opened_at": "2025-06-23T00:00:10+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Clean up agent system messages after answer",
   "number": 81,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T16:17:08+00:00",
   "opened_at": "2025-06-22T16:16:57+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix token limit error loops",
   "number": 80,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T15:20:10+00:00",
   "opened_at": "2025-06-22T15:20:01+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve token limit detection",
   "number": 79,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T14:14:11+00:00",
   "opened_at": "2025-06-22T14:14:00+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Handle token limit errors by chunking large prompts",
   "number": 78,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T14:01:31+00:00",
   "opened_at": "2025-06-22T14:01:16+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Sub Agents Connector",
   "number": 77,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-22T12:32:42+00:00",
   "opened_at": "2025-06-22T12:32:32+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add price configuration lookup",
   "number": 76,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-21T20:04:39+00:00",
   "opened_at": "2025-06-21T20:04:30+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Load ephemeral models from DB for cost tracking",
   "number": 75,
   "outcome": null,
   "index_ok": false,
   "additions": null,
   "deletions": null,
   "merged_at": "2025-06-21T19:43:05+00:00",
   "opened_at": "2025-06-21T19:40:06+00:00",
   "task_type": null,
   "files_changed": null,
   "hours_to_merge": 0.05
  }
 ],
 "indexed": 0,
 "monthly": [
  {
   "burns": 0,
   "month": "2025-05",
   "merged": 21,
   "flights": 22
  },
  {
   "burns": 0,
   "month": "2025-06",
   "merged": 40,
   "flights": 40
  },
  {
   "burns": 0,
   "month": "2025-07",
   "merged": 39,
   "flights": 39
  }
 ],
 "top_authors": [
  {
   "name": "Róbert Viðar Bjarnason",
   "login": "rbjarnason",
   "flights": 101,
   "indexed": 0
  }
 ],
 "page": "https://agentriders.com/logs/CitizensFoundation/policy-synth/"
}