{
 "repo": {
  "name": "airframe",
  "owner": "wvlet",
  "stars": 666,
  "license": "Apache-2.0",
  "full_name": "wvlet/airframe",
  "fetched_at": "2026-11-08T10:59:42.815215+00:00",
  "primary_language": "Scala"
 },
 "burns": [
  {
   "agent": "github-copilot",
   "number": 3936,
   "reviewer_excerpt": "Resume the coding session",
   "reviewer_excerpt_url": "https://github.com/wvlet/airframe/pull/3936#issuecomment-2924020553"
  }
 ],
 "total": 22,
 "agents": [
  {
   "agent": "github-copilot",
   "merged": 9,
   "flights": 22,
   "burn_rate": 0.095,
   "merge_rate": 0.429,
   "last_flight_at": "2025-06-02T20:43:50+00:00",
   "median_hours_to_merge": 2
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "github-copilot",
   "state": "open",
   "title": "feat: add mapWithCompletion and flatMapWithCompletion for safe stream cancellation",
   "number": 3955,
   "outcome": "stale",
   "index_ok": false,
   "additions": 217,
   "deletions": 37,
   "merged_at": null,
   "opened_at": "2025-06-02T20:43:50+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] rx-html: Resolve naming conflicts between HTML and SVG attributes, e.g., style, title",
   "number": 3954,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 0,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-06-02T20:41:35+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] http (feature): Support adding attachment to the request",
   "number": 3952,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 0,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-06-02T20:39:05+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "airspec: Show the context code around shouldBe matchers",
   "number": 3950,
   "outcome": "burn",
   "index_ok": true,
   "additions": 183,
   "deletions": 25,
   "merged_at": null,
   "opened_at": "2025-06-02T18:55:31+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Add IO.copy(InputStream, OutputStream) method to airframe-control",
   "number": 3949,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 177,
   "deletions": 57,
   "merged_at": "2025-06-02T19:25:19+00:00",
   "opened_at": "2025-06-02T17:25:50+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 1.99
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "fix: Ensure onMount called only after element is available by ID",
   "number": 3947,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 137,
   "deletions": 65,
   "merged_at": "2025-06-02T18:51:15+00:00",
   "opened_at": "2025-05-31T15:16:27+00:00",
   "task_type": "fix",
   "files_changed": 4,
   "hours_to_merge": 51.58
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Fix LazyCodec recursive reference resolution to prevent infinite recursion",
   "number": 3946,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 285,
   "deletions": 69,
   "merged_at": "2025-06-02T19:08:00+00:00",
   "opened_at": "2025-05-31T15:13:20+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 51.91
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "feature: Add Rx.delay(..) operation to insert artificial delay",
   "number": 3945,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 77,
   "deletions": 1,
   "merged_at": "2025-06-02T17:22:50+00:00",
   "opened_at": "2025-05-31T15:12:18+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 50.18
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "http: Fix flaky tests using httpbin.org by adding local Netty server tests",
   "number": 3944,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1069,
   "deletions": 343,
   "merged_at": "2025-06-02T19:27:14+00:00",
   "opened_at": "2025-05-31T07:12:40+00:00",
   "task_type": "test",
   "files_changed": 12,
   "hours_to_merge": 60.24
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Fix literal types interfering with primitive types in Surface caching",
   "number": 3943,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 124,
   "deletions": 18,
   "merged_at": "2025-05-31T08:02:22+00:00",
   "opened_at": "2025-05-31T07:12:02+00:00",
   "task_type": "fix",
   "files_changed": 6,
   "hours_to_merge": 0.84
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "airframe-control: Add RateLimiter with token bucket algorithm",
   "number": 3942,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 967,
   "deletions": 279,
   "merged_at": "2025-05-31T07:11:35+00:00",
   "opened_at": "2025-05-31T05:29:01+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": 1.71
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "surface: Fix Scala 3 compiler crash with case classes defined in traits",
   "number": 3941,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 66,
   "deletions": 12,
   "merged_at": "2025-05-31T06:26:15+00:00",
   "opened_at": "2025-05-31T05:28:28+00:00",
   "task_type": "fix",
   "files_changed": 4,
   "hours_to_merge": 0.96
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "feat: Add comprehensive Airframe walkthrough documentation",
   "number": 3940,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1468,
   "deletions": 490,
   "merged_at": "2025-05-31T07:05:47+00:00",
   "opened_at": "2025-05-31T05:27:39+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 1.64
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "Add IOUtil.copy(InputStream, OutputStream) method",
   "number": 3938,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 53,
   "deletions": 1,
   "merged_at": null,
   "opened_at": "2025-05-31T01:34:40+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] airframe-control: RateLimiter",
   "number": 3937,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 0,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:34:09+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] Airframe Walkthrough Documentation",
   "number": 3936,
   "outcome": "burn",
   "index_ok": true,
   "additions": 945,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:33:13+00:00",
   "task_type": "docs",
   "files_changed": 4,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] aispec: Show the context code around shouldBe matchers ",
   "number": 3935,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 18,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:32:53+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] feature: Add Rx.delay(..) operation to insert artificial delay",
   "number": 3934,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 208,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:31:55+00:00",
   "task_type": "feat",
   "files_changed": 5,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] airframe-rx-html: onMount may not be able to find the rendered DOM element",
   "number": 3933,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 121,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:31:30+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] http: Fix flaky tests using httpbin.org",
   "number": 3932,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 170,
   "deletions": 3,
   "merged_at": null,
   "opened_at": "2025-05-31T01:31:03+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] Surface.of[Int] after Surface.of[1] returns Surface.of[Object]",
   "number": 3931,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 55,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-05-31T01:28:52+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "[WIP] Airframe surface: crash with a type inherited from a trait",
   "number": 3930,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 30,
   "deletions": 1,
   "merged_at": null,
   "opened_at": "2025-05-31T01:27:26+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": null
  }
 ],
 "indexed": 11,
 "monthly": [
  {
   "burns": 1,
   "month": "2025-05",
   "merged": 8,
   "flights": 17
  },
  {
   "burns": 1,
   "month": "2025-06",
   "merged": 1,
   "flights": 5
  }
 ],
 "top_authors": [],
 "page": "https://agentriders.com/logs/wvlet/airframe/"
}