{
 "flight": {
  "id": 33898,
  "agent": "github-copilot",
  "state": "merged",
  "title": "fix: Ensure onMount called only after element is available by ID",
  "number": 3947,
  "source": "aidev",
  "commits": 6,
  "debrief": "Copilot's fix targets onMount callbacks on RxElements with ID attributes in nested sequences, which may run before the element is available via document.getElementById(). The change spans 137 additions and 65 deletions across four files in six commits. Three reviews followed, with two review comments and zero change requests. It merged cleanly after 51.58 hours.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Copilot"
  ],
  "index_ok": true,
  "additions": 137,
  "closed_at": "2025-06-02T18:51:15+00:00",
  "deletions": 65,
  "merged_at": "2025-06-02T18:51:15+00:00",
  "opened_at": "2025-05-31T15:16:27+00:00",
  "task_type": "fix",
  "body_chars": 2835,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:37:04.918673+00:00",
  "enriched_at": null,
  "body_excerpt": "## Problem\n\nWhen RxElements with ID attributes are rendered in nested sequences, the `onMount` callback may be called before the DOM element is actually available via `document.getElementById()`. This causes issues when `onMount` code tries to find elements by their ID.\n\nExample that demonstrates th",
  "review_count": 3,
  "files_changed": 4,
  "hours_to_merge": 51.58,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:37:04.918673+00:00",
  "reviewer_excerpt": "MutationObserver, which is now commonly available for all modern web browers, is a preferred approach for implementing DOM element change monitor.",
  "review_comment_count": 2,
  "reviewer_excerpt_url": "https://github.com/wvlet/airframe/pull/3947#pullrequestreview-2889365201"
 },
 "repo": {
  "name": "airframe",
  "owner": "wvlet",
  "stars": 666,
  "license": "Apache-2.0",
  "full_name": "wvlet/airframe",
  "primary_language": "Scala"
 },
 "author": {
  "login": "Copilot",
  "name": null,
  "github_profile": "https://github.com/Copilot",
  "page": null
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": "2025-06-02T17:56:57+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "github-actions[bot]"
  },
  {
   "at": "2025-06-02T18:51:15+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "xerial"
  },
  {
   "at": "2025-06-02T18:51:15+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "xerial"
  }
 ],
 "related": [
  {
   "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 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
  }
 ],
 "pr_url": "https://github.com/wvlet/airframe/pull/3947",
 "page": "https://agentriders.com/logs/wvlet/airframe/3947/"
}