)]}'
{
  "commit": "8cc7cab04c839003b2aa9ced5c4fa8d88dc104f9",
  "tree": "7584d345b5065707374bc0607ab418eaf709da34",
  "parents": [
    "dc02e7f61fb614c44ebe2f8a44672f2ecb25e321"
  ],
  "author": {
    "name": "martinduke",
    "email": "martinduke@google.com",
    "time": "Wed Feb 04 09:09:51 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Feb 04 09:10:44 2026 -0800"
  },
  "message": "Make improvements to MoqtNamespaceStream.\n\nApologies for having another CL on this topic, but there are several fixes here:\n- Setting the ObjectsAvailableCallback is no longer a separate operation in the NamespaceTask. This is an anti-pattern from FETCH that is suboptimal and causes problems when retrieving namespaces from the relay tree.\n\n- IncomingSubscribeNamespaceCallback took std::optional\u003cparameters\u003e because it was also invoked on Unsubscribe. Now that is achieved by destroying the task, so Parameters are always present.\n\n- There was a mistake in the test where task_ was assigned twice.\n\n- There was no actual backpressure in the ObjectsAvailableCallback implementation.\n\n- Got rid of std::move() when invoking multiuse callbacks.\n\nPiperOrigin-RevId: 865435838\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "10fafcb431f783391c37df1c169d9f34152188c3",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_bidi_stream.h",
      "new_id": "2568c52d2ee3635356bfa1837a1e43cea18c167d",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_bidi_stream.h"
    },
    {
      "type": "modify",
      "old_id": "1cf8beba305ccd327f6859842ec83df58d7208bf",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_bidi_stream_test.cc",
      "new_id": "83c92eabef9222bcdb32ac058c37628146a254c4",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_bidi_stream_test.cc"
    },
    {
      "type": "modify",
      "old_id": "56391ab8ba22f985c6289d2f897e1a1f2c385749",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_fetch_task.h",
      "new_id": "adc56158baa0387f0395adf57a1321de1a2d1bdd",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_fetch_task.h"
    },
    {
      "type": "modify",
      "old_id": "bbacc77ef16acb1de0d3c937a7b191b5cd80f7bb",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_namespace_stream.cc",
      "new_id": "1fe45cfe6efd7adadb19570d13f8b3fec2a52ab8",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_namespace_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "903694cd180b17159b387345cf38e44a6846c5c8",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_namespace_stream.h",
      "new_id": "919a4d99282e50a46823145bda549e266baac302",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_namespace_stream.h"
    },
    {
      "type": "modify",
      "old_id": "eb31193c1f482be64448d278643d2b3e4173cd3d",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_namespace_stream_test.cc",
      "new_id": "a49b62652dc0e0c80613c028ddc28ac9ef000c2a",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_namespace_stream_test.cc"
    },
    {
      "type": "modify",
      "old_id": "cc477f855d95a634ae6f34bbf49005331eca8ee2",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session_callbacks.h",
      "new_id": "03c6f543dbc3749e10eb3f21922687860e12f772",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session_callbacks.h"
    }
  ]
}
