)]}'
{
  "commit": "3009d88594bf1575a5a3414995f65134edf219ff",
  "tree": "d8feeef5a93f7b97c832ae4d086fac269afca1d2",
  "parents": [
    "7d978da4ca5fbd1fb0ac8eea9b96c9691ac0b860"
  ],
  "author": {
    "name": "Jason Bedard",
    "email": "jason+github@jbedard.ca",
    "time": "Fri Jul 17 11:08:08 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 17 18:08:08 2026 +0000"
  },
  "message": "fix(watch): keep connect() error listener attached until connection completes (#2923)\n\nThe listener was removed synchronously in a finally block, so an async\nconnection failure (e.g. a missing or stale socket file) emitted an\n\u0027error\u0027 event with no listeners attached, crashing the process with an\nuncaught exception instead of rejecting the connect() promise.\n\nRef #2894\n\n### Changes are visible to end-users: no\n\n### Test plan\n\n- Covered by existing test cases\n- New test cases added",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "140086c19f33488061c58b6597fa59385804cc7b",
      "old_mode": 33188,
      "old_path": "js/private/devserver/js_run_devserver.mjs",
      "new_id": "4072a543125379e1ef8793f9c278a570c2142640",
      "new_mode": 33188,
      "new_path": "js/private/devserver/js_run_devserver.mjs"
    },
    {
      "type": "modify",
      "old_id": "205eb0ad006f2ed1b94e07d9baf14051d02259b8",
      "old_mode": 33188,
      "old_path": "js/private/test/watch/BUILD.bazel",
      "new_id": "55a66637ff172ef38f3fe5b19e35a4a1a9f91613",
      "new_mode": 33188,
      "new_path": "js/private/test/watch/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6bf43383f787042d079dd0f29a476ee8110a032",
      "new_mode": 33188,
      "new_path": "js/private/test/watch/connect_error.test.mjs"
    },
    {
      "type": "modify",
      "old_id": "78cad7a9dc2517ee34481a586691762b6c94ad2c",
      "old_mode": 33188,
      "old_path": "js/private/watch/aspect_watch_protocol.mjs",
      "new_id": "de3ca4cbed8f30516cbd5472398b65df5a73afde",
      "new_mode": 33188,
      "new_path": "js/private/watch/aspect_watch_protocol.mjs"
    },
    {
      "type": "modify",
      "old_id": "ad7dfe33ff21f49508cb0a61c323367802feca9c",
      "old_mode": 33188,
      "old_path": "js/private/watch/src/aspect_watch_protocol.mts",
      "new_id": "a8468f04423e289e77232ef155650323366f3d56",
      "new_mode": 33188,
      "new_path": "js/private/watch/src/aspect_watch_protocol.mts"
    }
  ]
}
