)]}'
{
  "log": [
    {
      "commit": "68734d74229794063a5631b2f9318146b06b595e",
      "tree": "ac95855ce714c171e8051900fb45bb1fa1791e1e",
      "parents": [
        "2be202e1d47c92f51e2ed12691ccb94a2b0307dc"
      ],
      "author": {
        "name": "ianswett",
        "email": "ianswett@google.com",
        "time": "Sat Oct 24 10:40:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 24 10:40:57 2026 -0700"
      },
      "message": "Use min(1ms, SmoothedRTT) as the QUIC delayed ACK floor with AKDF copt.\n\nDiscovered as an issue during intra-cluster testing.\n\nProtected by quic_reloadable_flag_quic_ack_delay_floor_smoothed_rtt.\n\nPiperOrigin-RevId: 1006352362\n"
    },
    {
      "commit": "2be202e1d47c92f51e2ed12691ccb94a2b0307dc",
      "tree": "20c874f1327233c5fecdbbff12bc1d7efd5d0905",
      "parents": [
        "0ded66479add86dae9ae2039bb78c25d4f04c535"
      ],
      "author": {
        "name": "ianswett",
        "email": "ianswett@google.com",
        "time": "Fri Oct 23 22:51:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 23 22:51:46 2026 -0700"
      },
      "message": "Consolidate OnStreamHeadersPriority and OnPriorityFrame into OnStreamPriority.\n\nBoth methods performed identical logic when receiving priority via HEADERS or a PRIORITY frame.\n\nPiperOrigin-RevId: 1006112686\n"
    },
    {
      "commit": "0ded66479add86dae9ae2039bb78c25d4f04c535",
      "tree": "c2dcf85aac40cd94ff7b9c30422bf495095def65",
      "parents": [
        "955aad3b75e8c6e2b1e1c5002e22d0c8430ed982"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Wed Oct 21 09:08:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 09:09:39 2026 -0700"
      },
      "message": "QBONE Bonnet: pull netlink usage out of packet exchanger\n\nWe had organically evolved to a point where every queue silo needed its own netlink to hand to a packet exchanger to craft `ethhdr`s, even though the header was uniform and constant.\n\nInstead, in TAP mode, `TunTapDevice` builds its own eth_hdr via `ioctl(SIOCGIFHWADDR)` once the device is opened, which is passed as a parameter to any override or wrapper of `QboneClientPacketExchanger::Start`\n\nAdditionally move the eBPF loader creation up one level so that `QboneTunnel` can be agnostic as to whether the underlying device is TAP vs. TUN\n\nPiperOrigin-RevId: 1003988200\n"
    },
    {
      "commit": "955aad3b75e8c6e2b1e1c5002e22d0c8430ed982",
      "tree": "eb2c2ad3570b719765f5328a7a012b3a86413036",
      "parents": [
        "67bce2eb0cd084582ed5fd8898a8f3f0fb87deff"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Wed Oct 21 07:23:54 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 07:25:00 2026 -0700"
      },
      "message": "Update Structured Headers generated specification tests.\n\nSync the generated Structured Headers specification test cases against the latest upstream https://github.com/httpwg/structured-field-tests repository (commit 3c6d77618d9d4c73e107fd7b90f15026675457b1) to cover serialization-only test cases for empty tokens, empty parameterized list keys, and empty dictionary keys.\n\nPiperOrigin-RevId: 1003921286\n"
    },
    {
      "commit": "67bce2eb0cd084582ed5fd8898a8f3f0fb87deff",
      "tree": "f1fc538ce4179aa676fa17d5c754a3862f490616",
      "parents": [
        "aa40363eb1ce80bb4bd0535fd66960064fdde0a3"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Mon Oct 19 16:21:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 16:24:05 2026 -0700"
      },
      "message": "Clean up structured_headers_test.cc.\n\n* Replace `\u003cmath.h\u003e` with `\u003ccmath\u003e` and qualify `std::nextafter`.\n* Remove a duplicate `\"empty param-list\"` test case in `ParseParameterisedList`.\n* Remove an unused local variable and duplicate `SerializeItem` call in `UnserializableDecimals`.\n* Simplify `Unserializable*` assertions to `EXPECT_EQ(..., std::nullopt)`.\n\nProtected by test-only change.\n\nPiperOrigin-RevId: 1002672469\n"
    },
    {
      "commit": "aa40363eb1ce80bb4bd0535fd66960064fdde0a3",
      "tree": "5269e9b4d83b0195241f77158c63ea8554e0c7d0",
      "parents": [
        "071eb34cf1daea679e452f324759a00f59b4024f"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Mon Oct 19 15:44:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 15:45:21 2026 -0700"
      },
      "message": "Implement Connection ID rotation.\n\nEvery 20 hours, GfeQuicConnection will check if the CID generator is encrypting, and if so it will retire all existing IDs and issue new ones.\n\nThe machinery is in QUICHE QuicConnection, because it would be useful for other QUICHE deployments that use encrypted connection IDs. However, it is inactive in Quiche because only GfeQuicConnection sets the timer.\n\nWith the flag off, QuicConnectionIdManager::retire_prior_to_ is always zero and therefore, the NEW_CONNECTION_ID retire_prior_to field is always set to active_connection_ids_.front().second, as in tip of tree. Thus this is a no-op with the flag disabled.\n\nProtected by FLAGS_quic_restart_flag_quic_lb_dev.\n\nPiperOrigin-RevId: 1002648349\n"
    },
    {
      "commit": "071eb34cf1daea679e452f324759a00f59b4024f",
      "tree": "3e7cbfcee0886d571f21a70f54ae8e50ab266b64",
      "parents": [
        "87d434906b42c7c587532df8d17e6ed75dc5f71e"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Mon Oct 19 07:06:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 07:07:39 2026 -0700"
      },
      "message": "Enabling rolled out flags.\n\nAutogenerated by list_feature_flags.py.\n\nPiperOrigin-RevId: 1002312941\n"
    },
    {
      "commit": "87d434906b42c7c587532df8d17e6ed75dc5f71e",
      "tree": "4bde1b377e7aa9fcc5656206ccf16f4273f57866",
      "parents": [
        "c7ee5a065faf3f4eb08182e12dc29b8342f8eb8c"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Sun Oct 18 22:37:04 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Oct 18 22:38:05 2026 -0700"
      },
      "message": "Drop SCONE packet specifically in QUIC end-to-end packet loss test.\n\nIn EndToEndTest.SconeProtocolServerToClientAsynchronousWithPacketLoss, when asynchronous handshake processing takes longer than the ACK delay (such as on slower or emulated architectures like riscv64), the server may emit an intermediate ACK-only packet before the ServerHello containing the SCONE report.\n\nPreviously, the test writer dropped the first server packet indiscriminately via set_fake_drop_first_n_packets(1). In the delayed handshake scenario, this dropped the intermediate ACK rather than the SCONE packet, allowing the SCONE packet to reach the client and failing the zero-bandwidth assertion.\n\nUpdate SconePacketWriter to track and drop SCONE packets specifically so that the test reliably verifies SCONE packet loss handling regardless of handshake execution timing.\n\nPiperOrigin-RevId: 1002091548\n"
    },
    {
      "commit": "c7ee5a065faf3f4eb08182e12dc29b8342f8eb8c",
      "tree": "02897a76be757bc10037ee3833ff6ba2f607b02c",
      "parents": [
        "0f5b16341ad5fe51cd6cbc25e5db09781ccb4fe3"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Fri Oct 16 23:16:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 23:16:50 2026 -0700"
      },
      "message": "Add a dedicated class to represent receive timestamps\n\nWe currently use QuicTime for this purpose.  While that is a correct time for timestamps generated locally, it is not correct for those received from the peer, despite QuicFramer trying to pretend that is the case (by rebasing those with respect to the local framer\u0027s creation time).\n\nThis CL introduces a new class, QuicReceiveTime, to represent both local and remote timestamps.  It moves the `creation_time` subtraction from the framer to the receive packet manager, as a part of this process.  It also removes an overflow-prone `creation_time` addition on the incoming acks side.\n\nPiperOrigin-RevId: 1001326952\n"
    },
    {
      "commit": "0f5b16341ad5fe51cd6cbc25e5db09781ccb4fe3",
      "tree": "bc7f7deae5e1c9fef606d4558878a994a7a8e7ed",
      "parents": [
        "6d926171632f3c4afc61962f99ee29d53c66deea"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 16 15:58:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 15:59:57 2026 -0700"
      },
      "message": "Account for partial object delivery in MoqtRelayTrackPublisher::group.next_object.\n\nFor EndOfGroup streams, this is triggering malformed tracks because there\u0027s a Malformed Track check where it\u0027s the end of the group and group.next_object \u003e the object location.\n\nPiperOrigin-RevId: 1001156696\n"
    },
    {
      "commit": "6d926171632f3c4afc61962f99ee29d53c66deea",
      "tree": "7dc84db36366590e1c9b432f63ee78d5fe6c3ec5",
      "parents": [
        "cd3f7fdf6bd512cb059a6de5cad1270733e7d02d"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Oct 16 10:24:26 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 10:25:32 2026 -0700"
      },
      "message": "Enforce bounds checking in `structured_headers::Dictionary::operator[](size_t)`.\n\nAdd `QUICHE_CHECK_LT(idx, members_.size())` to both `Dictionary::operator[](size_t)` overloads (which `Dictionary::at(size_t)` also delegates to), aligning their behavior with their header documentation that both `operator[](size_t)` and `at(size_t)` abort the program on out-of-bounds access.\n\nPiperOrigin-RevId: 1000942364\n"
    },
    {
      "commit": "cd3f7fdf6bd512cb059a6de5cad1270733e7d02d",
      "tree": "07c5325ff237e0e88e4ca87ff1a110d2d23e3df6",
      "parents": [
        "c8ca330ef25b8c7c216d22738fa1343c7ddd923c"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Oct 16 09:56:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 09:57:26 2026 -0700"
      },
      "message": "Reject null items and empty members during HTTP structured headers serialization.\n\n* Fail serialization cleanly when encountering a default-constructed `ParameterizedMember` instead of crashing via `QUICHE_CHECK(false)`.\n* Reject null `Item` parameter values during serialization instead of serializing them as boolean `true` (a holdover from Draft 09).\n\nNeither case can be produced by the RFC 8941 (`kFinal`) parsers (`ParseItem`, `ParseList`, `ParseDictionary`), and an audit of all Google3 callers of `SerializeItem`, `SerializeList`, and `SerializeDictionary` confirms that no caller constructs or serializes either case.\n\nPiperOrigin-RevId: 1000923381\n"
    },
    {
      "commit": "c8ca330ef25b8c7c216d22738fa1343c7ddd923c",
      "tree": "2f5fad336c88b123ef321362988254325449956e",
      "parents": [
        "86e2166874dd20e37e511926f7eb0540581ea57c"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Oct 16 09:36:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 09:37:09 2026 -0700"
      },
      "message": "Avoid quadratic linear scans in HTTP structured headers parsing.\n\nUse `absl::flat_hash_map` in `ReadDictionary` and `ReadParameters` to track key indices, avoiding quadratic linear scans on adversarial inputs with many distinct or duplicate keys while preserving insertion order.\n\nPiperOrigin-RevId: 1000910914\n"
    },
    {
      "commit": "86e2166874dd20e37e511926f7eb0540581ea57c",
      "tree": "d54183e83c137f30f0918b815df8d6177629658d",
      "parents": [
        "ecadf45aea6f1bb72982071ade0f8a316e43bdf6"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Oct 16 09:10:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 09:11:42 2026 -0700"
      },
      "message": "Clean up HTTP structured headers implementation.\n\n* Replace `std::ostringstream` in `StructuredHeaderSerializer` with `std::string` and `absl::StrAppend` to avoid stream overhead.\n* Align `Dictionary::value_type` with `DictionaryMember` and annotate `Dictionary` accessors with `ABSL_ATTRIBUTE_LIFETIME_BOUND`.\n* Use `constexpr absl::string_view` for character sets to compute their lengths at compile time, template `StripLeft` so single-character callers use the faster `char` overload of `find_first_not_of`, and start `find_first_not_of` at index 1 to avoid re-checking the already-validated first character.\n* Delegate `Item`\u0027s `const char*` constructors to their `absl::string_view` overloads.\n* Remove unreachable code after the `while (true)` loop in `ReadInnerList`, which can only exit via `return`.\n* `#undef` the `TCHAR` macro alongside `DIGIT`, `LCALPHA`, and `UCALPHA`.\n* Remove unused includes.\n* Directly construct `ParameterizedMember` from `ParameterizedItem` using single-argument constructor.\n\nPiperOrigin-RevId: 1000896186\n"
    },
    {
      "commit": "ecadf45aea6f1bb72982071ade0f8a316e43bdf6",
      "tree": "5fcb47e47d622a7cb1f1b815546182f9445bab78",
      "parents": [
        "e7a73f7192e443d31f6c138d9936ec6d003d6def"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Fri Oct 16 06:43:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 06:43:54 2026 -0700"
      },
      "message": "Support equipreference groups in QuicCryptoServerConfig\n\nAdds a new config setter for preferred_groups in QuicCryptoServerConfig, and updates TlsServerHandshaker to call SSL_set1_group_ids_with_flags if there are equipreference groups. This allows the server to negotiate key exchange groups with equal preference, i.e. letting the client\u0027s preference decide which group among equally preferred groups is selected.\n\nThe analogous change on the client side is less meaningful, because a client\u0027s preferred_groups is always serialized on the wire as a strictly ordered list, and cannot express the concept of equipreference groups.\n\nThis functionality is needed to talk to CNSA2.0 compliant clients which prefer ML-KEM-1024 over X25519-MLKEM768, while still negotiating X25519-MLKEM768 for the vast majority of clients who don\u0027t specifically prefer ML-KEM-1024.\n\nPiperOrigin-RevId: 1000822559\n"
    },
    {
      "commit": "e7a73f7192e443d31f6c138d9936ec6d003d6def",
      "tree": "1d9898b28621c962f5c12cec77535e68678bb885",
      "parents": [
        "132bfd90ea370faeacee616c70d10210bb12ba66"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Thu Oct 15 07:48:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 07:51:23 2026 -0700"
      },
      "message": "Release `TlsServerHandshaker::server_params_` in `ResetSsl()`. `server_params_` is only read during cert selection (`SetTransportParameters / TransportParametersMatch`), so it can be freed once the SSL object is reset, saving ~920 bytes per connection.\n\nProtected by quiche_reloadable_flag_quic_reset_server_params_in_reset_ssl.\n\nPiperOrigin-RevId: 1000133229\n"
    },
    {
      "commit": "132bfd90ea370faeacee616c70d10210bb12ba66",
      "tree": "2cc523537eb989b3db2aa2a1256929459348c229",
      "parents": [
        "2ae9db8f246b258b65f92a67fd96c177484b7946"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 16:54:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 16:54:53 2026 -0700"
      },
      "message": "MOQT: Check for nullptr in GetStreamById().\n\nvisitor()-\u003esession() is deliberately nullptr when closing.\n\nPiperOrigin-RevId: 998979542\n"
    },
    {
      "commit": "2ae9db8f246b258b65f92a67fd96c177484b7946",
      "tree": "9cf1918f3b3d273a3f84a8aac5c6ab3881666fbb",
      "parents": [
        "865dc1f9cb23dbbb3b9a6d7e8bde81a12432417d"
      ],
      "author": {
        "name": "rch",
        "email": "rch@google.com",
        "time": "Tue Oct 13 13:28:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 13:28:59 2026 -0700"
      },
      "message": "Reduce QUIC_BUG to LOG(WARNING) in bandwidth_sampler.cc\n\nPiperOrigin-RevId: 998854040\n"
    },
    {
      "commit": "865dc1f9cb23dbbb3b9a6d7e8bde81a12432417d",
      "tree": "3351cbcf5c3570de37bc9289fb2b0b6a5d962962",
      "parents": [
        "fa35445586956d184a724382c5c6547810a53f3b"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 13:24:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 13:25:52 2026 -0700"
      },
      "message": "Fix badly broken MOQT PREFIX_OVERLAP detection logic.\n\nWe were not clearing incoming SUBSCRIBE_NAMESPACE logic correclty because the prefix was stored in two locations, one which was not set, and the remove_callback_ used the unset prefix.\n\nPiperOrigin-RevId: 998851680\n"
    },
    {
      "commit": "fa35445586956d184a724382c5c6547810a53f3b",
      "tree": "16c83266067db61cc707ad2b65a2fc8c0a092995",
      "parents": [
        "7d6199b853b602a88283e5a2c3e6875fbd4e32cb"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 12:22:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 12:23:18 2026 -0700"
      },
      "message": "Don\u0027t crash on sending empty MOQT datagrams.\n\nPiperOrigin-RevId: 998811564\n"
    },
    {
      "commit": "7d6199b853b602a88283e5a2c3e6875fbd4e32cb",
      "tree": "9e04274e6f13aa1bb1b7a3766428e21618bf3dd1",
      "parents": [
        "a9b71b7809dcada686722d770fd024f5c76cc0f1"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 10:53:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 10:55:36 2026 -0700"
      },
      "message": "Send MOQT datagram properties.\n\nPiperOrigin-RevId: 998746984\n"
    },
    {
      "commit": "a9b71b7809dcada686722d770fd024f5c76cc0f1",
      "tree": "18992e8f0b84abee0740607f0ebda1cb66b54e49",
      "parents": [
        "cc640828ef59c640e4ca3c8789b7aa44a0de408c"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 10:52:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 10:53:40 2026 -0700"
      },
      "message": "Avoid sending EndOfGroup object with payload/properties to MoqtFramer.\n\nFixes a QUICHE_BUG in interop.\n\nPiperOrigin-RevId: 998746058\n"
    },
    {
      "commit": "cc640828ef59c640e4ca3c8789b7aa44a0de408c",
      "tree": "dc2f418f92eb09e031bd0d9b81626dcebf531acc",
      "parents": [
        "99a81c25e42a81067b81e63f6e4c6e88e87d514d"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 13 10:21:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 10:24:28 2026 -0700"
      },
      "message": "Consolidate set_allow_fin() calls in MoqtBidiStreamBase.\n\nAll bidi streams can be FINed, and some overloads were missing.\n\nThis is an oversight caught in Oct 2026 interop.\n\nPiperOrigin-RevId: 998723491\n"
    },
    {
      "commit": "99a81c25e42a81067b81e63f6e4c6e88e87d514d",
      "tree": "770ab085446710a361fdc4cd25787a03b698b824",
      "parents": [
        "d56e16e15a066389d7e1a6002d2f27ce637e2ac7"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Mon Oct 12 11:39:47 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 12 11:40:44 2026 -0700"
      },
      "message": "QUIC client: expose packets_dropped() in QuicClientBase and QuicClientDefaultNetworkHelper.\n\nPiperOrigin-RevId: 998053228\n"
    },
    {
      "commit": "d56e16e15a066389d7e1a6002d2f27ce637e2ac7",
      "tree": "075b279c5b479077685762329a6e0a23047975fc",
      "parents": [
        "c8b1052048f1755982feef370c7a07d4418d0f04"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Mon Oct 12 10:10:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 12 10:11:39 2026 -0700"
      },
      "message": "Synthesize an EndOfGroup object when FIN arrives without data.\n\nCurrently, when parsing a has_end_of_group stream, when the object is complete but no FIN has arrived, it can\u0027t be delivered because we don\u0027t know the status yet. If a FIN arrives later, the object\u0027s status will change to kEndOfGroup.\n\nThis introduces object delivery latency. Furthermore, there is a bug in that it can induce calls to OnObjectFragment() where the offset is \u003e 0 and the payload is empty, which is not envisioned in the API and is causing QUICHE_BUG in interop.\n\nThis CL removes the kAwaitingNextByte state; any object with payload can be delivered. If a FIN arrives immediately after, the parser will create a synthetic kEndOfGroup object.\n\nIf the payload is delivered in parts, it is possible for the object_status to suddenly change from Normal to EndOfGroup. PublishedObjectMetadata no longer regards this as a malformed track. This might open up some shenanigans where two publishers have different EndsOfGroup, but detection of that is best-effort. There is a performance advantage because if the last Normal object is delivered with EndOfGroup status, it is able to be FINed / EOGed immediately rather than waiting for a separate, synthetic object to arrive.\n\nPiperOrigin-RevId: 997993975\n"
    },
    {
      "commit": "c8b1052048f1755982feef370c7a07d4418d0f04",
      "tree": "835bbb4a0d98bb37b530caafafe9041cc62e3a88",
      "parents": [
        "e2d4bf9da1f4cf8a7540ecd3b240e732be366f0d"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 15:25:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 15:26:55 2026 -0700"
      },
      "message": "Deliver draft-18 FETCH object ranges from the parser.\n\nRanges will be passed into MoqtFetchTask as an Object with status.\n\nPiperOrigin-RevId: 996793180\n"
    },
    {
      "commit": "e2d4bf9da1f4cf8a7540ecd3b240e732be366f0d",
      "tree": "cf0a83b24d64b2f62363dac56575047b0450c22a",
      "parents": [
        "97766f4017005483cb32f31065d11a720175d922"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 13:32:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 13:33:32 2026 -0700"
      },
      "message": "On the wire, MOQT Objects cannot carry status and have properties or payloads.\n\nIf they are sent to the framer with properties or payloads and kEndOfGroup status, there MUST be encoding that allows the last object to have the end_of_group flag.\n\nPiperOrigin-RevId: 996724770\n"
    },
    {
      "commit": "97766f4017005483cb32f31065d11a720175d922",
      "tree": "1a5985457aa2423a7ba01ab5631c75c3063b1aa6",
      "parents": [
        "685d067d69ff520a8d4bdfb658cbd1cb92c80355"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 11:58:21 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 11:59:21 2026 -0700"
      },
      "message": "Rename MoqtDeliveryOrder to MoqtGroupOrder in MoQT.\n\nPiperOrigin-RevId: 996670353\n"
    },
    {
      "commit": "685d067d69ff520a8d4bdfb658cbd1cb92c80355",
      "tree": "09248ec2ef4613f5cb7398cad6b9a808dcd37053",
      "parents": [
        "5a5f588842f1ffd5da03f831439c9d3cf249ccf2"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 11:45:27 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 11:46:46 2026 -0700"
      },
      "message": "Use delta-encoded group IDs in MOQT fetch streams.\n\nThere is also some apparently buggy logic in diff-encoded object IDs as well, now fixed.\n\nPiperOrigin-RevId: 996662817\n"
    },
    {
      "commit": "5a5f588842f1ffd5da03f831439c9d3cf249ccf2",
      "tree": "b0de66f1f5408fe569411e7e09c8f5f612b18243",
      "parents": [
        "8bdd1b04cd554dc9f335d99ae6a84d1432ed243e"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 11:28:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 11:30:02 2026 -0700"
      },
      "message": "Remove DoesNotExist object status.\n\nIt was removed in MOQT draft-18\n\nPiperOrigin-RevId: 996652559\n"
    },
    {
      "commit": "8bdd1b04cd554dc9f335d99ae6a84d1432ed243e",
      "tree": "4c5343f33f8d939b63d5704f14589091c6529d69",
      "parents": [
        "69267509d53e56810ff295236a7246ec8d436f95"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 11:09:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 11:10:46 2026 -0700"
      },
      "message": "Update PUBLISH_DONE to draft-18.\n\nrequest_id is removed. Also on a failed REQUEST_UPDATE, PUBLISH_DONE is sent before REQUEST_ERROR.\n\nPiperOrigin-RevId: 996639950\n"
    },
    {
      "commit": "69267509d53e56810ff295236a7246ec8d436f95",
      "tree": "729898b1961e315382017bd49e0a087023d825a2",
      "parents": [
        "04832203f05c480dd1e31e2a48b5c547d24877b8"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 10:04:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 10:06:00 2026 -0700"
      },
      "message": "Remove existing_request_id from MoqtRequestUpdate.\n\nPiperOrigin-RevId: 996600545\n"
    },
    {
      "commit": "04832203f05c480dd1e31e2a48b5c547d24877b8",
      "tree": "3eebe4620552992633192bf6046408c52984178f",
      "parents": [
        "7116133cc2587413a6d07dc8eee3e4011b7d73cd"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 09:36:18 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 09:37:38 2026 -0700"
      },
      "message": "Add Redirect Field to MOQT REQUEST_ERROR.\n\nAlso add all the new draft-18 REQUEST_ERROR codes.\n\nEnforce all conditions on when it can appear, and in response to what messages.\n\nPiperOrigin-RevId: 996583555\n"
    },
    {
      "commit": "7116133cc2587413a6d07dc8eee3e4011b7d73cd",
      "tree": "53138d00c2979ca99a071bf6ff6fdec25dfa2913",
      "parents": [
        "d22f60e1389182a78bdeddd81c130a9161afd46d"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Fri Oct 09 09:11:54 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 09 09:13:06 2026 -0700"
      },
      "message": "Add parameter validation and sanitization helper functions for MOQT messages.\n\nDeclares functions in moqt_messages.h to check if parameters are allowed and to sanitize disallowed parameters for standard MOQT message types, REQUEST_UPDATE, and REQUEST_OK.\n\nPiperOrigin-RevId: 996570379\n"
    },
    {
      "commit": "d22f60e1389182a78bdeddd81c130a9161afd46d",
      "tree": "8aacf3f3458682f2e4eb7850461b21e3c7816dff",
      "parents": [
        "f466c51f00077a82bda536c7a848eda33db65dfc"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Thu Oct 08 12:09:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 08 12:10:39 2026 -0700"
      },
      "message": "Add IsEncrypted() to ConnectionIdGeneratorInterface.\n\nThis will be useful when individual connections decide to refresh CIDs. In the future, it might also be useful to determine if QUIC should disable migration or not.\n\nThis CL does not add any production that invokes IsEncrypted(), so there is no risk.\n\nPiperOrigin-RevId: 995989054\n"
    },
    {
      "commit": "f466c51f00077a82bda536c7a848eda33db65dfc",
      "tree": "f8d3e4f36af262757a34ea2d211da91298472b73",
      "parents": [
        "e0b1fd4cd10b77a9faec082954dab3f3769667c8"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Thu Oct 08 10:51:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 08 10:51:47 2026 -0700"
      },
      "message": "Change TlsServerHandshaker::server_params_ to std::unique_ptr\u003cTransportParameters\u003e.\n\nTlsServerHandshaker stored `TransportParameters server_params_` inline by value. It is a large struct (~920 bytes) retained for the entire connection lifetime.\n\nPiperOrigin-RevId: 995937751\n"
    },
    {
      "commit": "e0b1fd4cd10b77a9faec082954dab3f3769667c8",
      "tree": "09121445f1683d72baecda334f272c127440fd36",
      "parents": [
        "53cbf7a020ac11876806c7f7471516bc139f024a"
      ],
      "author": {
        "name": "vreimer",
        "email": "vreimer@google.com",
        "time": "Thu Oct 08 09:16:17 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 08 09:16:51 2026 -0700"
      },
      "message": "[qbone] Return vector of connection IDs when `QboneSessionGetIpRangeRequest.num_preallocated_cids` is set.\n\nPiperOrigin-RevId: 995880201\n"
    },
    {
      "commit": "53cbf7a020ac11876806c7f7471516bc139f024a",
      "tree": "a0e73e6a2c1394a1eaa97e0d06a7a41cebbafc12",
      "parents": [
        "c607d240fb0125f41f4e8e6206a847d6bd1dbe3c"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Wed Oct 07 14:51:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 07 14:52:29 2026 -0700"
      },
      "message": "Reorganize QuicConnectionStats fields to optimize struct packing and reduce padding.\n\nGroups member variables by alignment (8-byte, 4-byte, and 1-byte) to minimize structure size and padding overhead.\n\nPiperOrigin-RevId: 995371797\n"
    },
    {
      "commit": "c607d240fb0125f41f4e8e6206a847d6bd1dbe3c",
      "tree": "6fd6f3b7c12c6e88b59f6f9154314ad0ecb3b828",
      "parents": [
        "0707766e359cbd917aaf36259546341a61bd67ea"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Wed Oct 07 12:18:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 07 12:19:09 2026 -0700"
      },
      "message": "Remove receive_timestamp parameter from QUIC ACK callbacks\n\nWe take a lot of effort in the code to propagate those, but never use that value.  This is probably for the best: ACK-level data should stay at the transport layer, and in the rare cases we decide to give it to the user, we should probably provide a better abstraction than what we have now.\n\nThere is some code in yperf that does store those values (but never propagates those downstream); I changed it to use local clock just in case someone decides to use that code.\n\nPiperOrigin-RevId: 995273766\n"
    },
    {
      "commit": "0707766e359cbd917aaf36259546341a61bd67ea",
      "tree": "49eaf855cb2ad1a2e087f92d4436d09ab55538c8",
      "parents": [
        "fb78d66508e9cefd609fec3b423fddbfc9eb4935"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Wed Oct 07 11:48:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 07 11:49:41 2026 -0700"
      },
      "message": "Add counters for application data packets acked with receive timestamps.\n\nAdd application_data_packets_acked and application_data_packets_with_receive_timestamps_acked to QuicConnectionStats; combined, those can tell us what fraction of ACKs had receive timestamps available.\n\nPiperOrigin-RevId: 995253635\n"
    },
    {
      "commit": "fb78d66508e9cefd609fec3b423fddbfc9eb4935",
      "tree": "c577c1f947aebafc3fd2c39886acce5939ddf12e",
      "parents": [
        "d85dc0a5b7f6cb3e3a8f03403fc6beabca9617c6"
      ],
      "author": {
        "name": "ianswett",
        "email": "ianswett@google.com",
        "time": "Wed Oct 07 00:28:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 07 00:29:59 2026 -0700"
      },
      "message": "Send pending ACKs after visitor_-\u003eOnCanWrite() in QuicConnection::OnCanWrite().\n\nPreviously, `QuicConnection::OnCanWrite()` called `SendAllPendingAcks()` before `visitor_-\u003eOnCanWrite()`. When a pending ACK\u0027s encryption level differed from the connection\u0027s current default encryption level (such as during a handshake or 0-RTT connection), `SendAllPendingAcks()` switched encryption levels via `ScopedEncryptionLevelContext`, immediately flushing a standalone ACK packet before `visitor_-\u003eOnCanWrite()` could write `CRYPTO` or `STREAM` frames at that encryption level.\n\nWhen `send_acks_after_on_can_write_` is enabled (via `gfe2_reloadable_flag_quic_send_acks_after_on_can_write` and the `SAOW` connection option), `QuicConnection::OnCanWrite()` invokes `visitor_-\u003eOnCanWrite()` before `SendAllPendingAcks()` so that outgoing `CRYPTO` and `STREAM` packets opportunistically bundle pending ACKs at the same encryption level, and only remaining unbundled ACKs are sent afterward.\n\nOverview of impact including Handshake Simulations: https://docs.google.com/document/d/1CiaBRfPAfKbL0SuEhrBQeZxDeXvdREseGe1AE89pR-I/edit?usp\u003dsharing\n\nProtected by quic_reloadable_flag_quic_send_acks_after_on_can_write.\n\nPiperOrigin-RevId: 994903307\n"
    },
    {
      "commit": "d85dc0a5b7f6cb3e3a8f03403fc6beabca9617c6",
      "tree": "3cb29ff30bc4bb5103ee3da931fe5c2d6271558a",
      "parents": [
        "b5d96139a3e70ec523e6191ad8d5ac481a7851de"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 18:35:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 18:36:14 2026 -0700"
      },
      "message": "Add TRACK_NAMESPACE_PREFIX message parameter support to MoQT, framer and parser only.\n\nPiperOrigin-RevId: 994759228\n"
    },
    {
      "commit": "b5d96139a3e70ec523e6191ad8d5ac481a7851de",
      "tree": "8bdb36f83141588531c9100f6e9c40f9e21b9001",
      "parents": [
        "0e6e25d71800ff6643972eb19099cc6696a07db6"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 18:15:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 18:16:31 2026 -0700"
      },
      "message": "Implement the RENDEZVOUS_TIMEOUT parameter from MOQT draft-18.\n\nThere is no publisher support in this CL, as it\u0027s quite complicated to add to our existing MoqtPublisher implmentations.\n\nPiperOrigin-RevId: 994751287\n"
    },
    {
      "commit": "0e6e25d71800ff6643972eb19099cc6696a07db6",
      "tree": "2bf6d1aa2bd794de9a564e77c877666722e80c2d",
      "parents": [
        "b4fa6e59604e9a153736142201159b3ef09281e8"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 18:04:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 18:04:55 2026 -0700"
      },
      "message": "Add FILL_TIMEOUT parameter.\n\nWe have no upstream forwarding of FETCH so there is nothing to be done but frame and parse it.\n\nPiperOrigin-RevId: 994746380\n"
    },
    {
      "commit": "b4fa6e59604e9a153736142201159b3ef09281e8",
      "tree": "e7c0a17439239164c6afbe00a21142f9a08185fb",
      "parents": [
        "bd0718c19cec6194f95ff2589cb02795dae1144f"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 17:46:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 17:46:52 2026 -0700"
      },
      "message": "Moqt MessageParameters are no longer Key-Value Pairs.\n\nSETUP message no longer contains number of options (Key-Value Pairs are now never length-prefixed).\n\nPart of the draft-18 update.\n\nPiperOrigin-RevId: 994738534\n"
    },
    {
      "commit": "bd0718c19cec6194f95ff2589cb02795dae1144f",
      "tree": "5a5941788fcd32f796eef184ec1644ad2b263326",
      "parents": [
        "9f7c738f326bb762ab9873ebd721ed29a4bbfd28"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 17:04:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 17:05:41 2026 -0700"
      },
      "message": "Framer/Parser for MOQT PUBLISH_SKIPPED.\n\nThis is named PUBLISH_BLOCKED in draft-18 but will be renamed.\n\nWe do not yet support SUBSCRIBE_TRACKS, so there is no use for this message yet.\n\nPiperOrigin-RevId: 994719010\n"
    },
    {
      "commit": "9f7c738f326bb762ab9873ebd721ed29a4bbfd28",
      "tree": "724639ec1893f45815b652ab817837c687aabed9",
      "parents": [
        "98fb8cd7694cde854dacb0d89c4c5aba835326a4"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Oct 06 15:37:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 15:38:45 2026 -0700"
      },
      "message": "Split delivery_timeout into subgroup and object delivery timeouts in MoQT.\n\nPart of draft-18 update.\n\nPiperOrigin-RevId: 994669813\n"
    },
    {
      "commit": "98fb8cd7694cde854dacb0d89c4c5aba835326a4",
      "tree": "277033df5b614214e597f82ab2206ec1d208d2ef",
      "parents": [
        "65d75b2560d8025bad1d502c9a2a4e5cc4e228bd"
      ],
      "author": {
        "name": "birenroy",
        "email": "birenroy@google.com",
        "time": "Tue Oct 06 15:36:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 15:37:37 2026 -0700"
      },
      "message": "Deprecates `--gfe2_reloadable_flag_quiche_linked_hash_map_use_stable_block_list`.\n\nPiperOrigin-RevId: 994669365\n"
    },
    {
      "commit": "65d75b2560d8025bad1d502c9a2a4e5cc4e228bd",
      "tree": "641902bdd44b47d77e4bb820dda57c074b210bce",
      "parents": [
        "9e60ac2b905a435555e071f403e9418ce11c773f"
      ],
      "author": {
        "name": "asedeno",
        "email": "asedeno@google.com",
        "time": "Tue Oct 06 12:27:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 12:28:22 2026 -0700"
      },
      "message": "OSS QUICHE: split load_balancer sources into finer grained lists.\n\nUpdate `filelists.bara.sky` to split load balancer test and test support source files into their own source lists.\n\nPiperOrigin-RevId: 994553527\n"
    },
    {
      "commit": "9e60ac2b905a435555e071f403e9418ce11c773f",
      "tree": "b87fdc8fd8e99c0b575d62bcb8c4292487c5b68e",
      "parents": [
        "720dbfdf1faa81ea632dd63b585d5da5b0e499e1"
      ],
      "author": {
        "name": "asedeno",
        "email": "asedeno@google.com",
        "time": "Tue Oct 06 11:06:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 11:07:35 2026 -0700"
      },
      "message": "OSS QUICHE: Move `nghttp2_test.cc` to `nghttp2_tests_srcs`.\n\nUpdate `filelists.bara.sky` so that `nghttp2_tests.cc` ends up the right component.\n\nPiperOrigin-RevId: 994504634\n"
    },
    {
      "commit": "720dbfdf1faa81ea632dd63b585d5da5b0e499e1",
      "tree": "bbfb27cd0ecfdaa0d239819aa43b00a9791e2374",
      "parents": [
        "7d2d497e0fc2b553824bc9036ab1337dfb3e7872"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Tue Oct 06 07:47:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 06 07:48:11 2026 -0700"
      },
      "message": "Migrate ABSL_ARRAYSIZE()/arraysize() to std::size(), std::extent_v, or other alternatives where possible\n\nTested:\n    TAP --sample ran all affected tests and none failed\n    http://test/OCL:993973892:BASE:994013462:1791253991000:49a91829\nPiperOrigin-RevId: 994388945\n"
    },
    {
      "commit": "7d2d497e0fc2b553824bc9036ab1337dfb3e7872",
      "tree": "d8e4037a7c659db655e72662931f69cea3f7cb28",
      "parents": [
        "a1e348c8aee7b84e8c1762a03e2d9e30c2f6e1db"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Mon Oct 05 20:18:17 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 05 20:18:50 2026 -0700"
      },
      "message": "Ensure QUIC receive timestamps are always in future relative to the framer creation time.\n\nThey should not be in past in production, but if that happens, the connection would hard fail in the framer; avoid that by dropping those timestamps.\n\nPiperOrigin-RevId: 994075908\n"
    },
    {
      "commit": "a1e348c8aee7b84e8c1762a03e2d9e30c2f6e1db",
      "tree": "0b44f57733bcfe72983d6fb807182feb344eaab6",
      "parents": [
        "cbcdbec9468d2258dd8abcac4f7ab15da0036b0d"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Mon Oct 05 18:06:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 05 18:08:16 2026 -0700"
      },
      "message": "Make `last_timestamp` a local variable.\n\nThere is no reason to carry the timestamp values across the parser calls.  The current code is also structured so that if the first ACK timestamp block is empty, and the second one is not, the second one gets the `last_timestamp` value from previous parse, which can be anything.\n\nAlso fix the bug where we never check return value of `OnAckTimestamp` (it returns true, but we still shouldn\u0027t ignore it).\n\nPiperOrigin-RevId: 994024141\n"
    },
    {
      "commit": "cbcdbec9468d2258dd8abcac4f7ab15da0036b0d",
      "tree": "9d4f5d0dd69c2ca91bdb73f3b062ddf21235f44c",
      "parents": [
        "04e702203755f10261fa91d35da6c4e986a4b2ba"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Mon Oct 05 18:05:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 05 18:06:40 2026 -0700"
      },
      "message": "Only record timestamps for 1-RTT packets.\n\nPiperOrigin-RevId: 994023664\n"
    },
    {
      "commit": "04e702203755f10261fa91d35da6c4e986a4b2ba",
      "tree": "d5885fa74d3ab75fc81b265cba027be334be9343",
      "parents": [
        "541aa2a7889b7ea7651e41afc58211f2a256850a"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Mon Oct 05 17:20:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 05 17:21:24 2026 -0700"
      },
      "message": "Send LARGEST_OBJECT when REQUEST_UPDATE sets Forward\u003d1 or moves the filter end back.\n\nIf forward is set to 1, re-initialize the subscription filter with the new LARGEST_OBJECT.\n\nAlso, fixes a problem where the publisher can respond to REQUEST_UPDATE before the initial SUBSCRIBE.\n\nPiperOrigin-RevId: 994003251\n"
    },
    {
      "commit": "541aa2a7889b7ea7651e41afc58211f2a256850a",
      "tree": "8f0b562dd7f2435173f6eaed72475c6ac4e86b8b",
      "parents": [
        "f9e75eb8ab1de3ea1c422deb561abbaa84ef2df6"
      ],
      "author": {
        "name": "Monica Chintala",
        "email": "monicach@microsoft.com",
        "time": "Mon Oct 05 14:42:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 05 14:43:31 2026 -0700"
      },
      "message": "Add span constructors to QuicDataWriter\n\nAllow callers to provide writable buffers as spans so the buffer size\nand pointer cannot become inconsistent. Support both default and\nexplicit endianness constructors, and cover both byte-order modes.\n\nOriginally submitted as \u003chttps://quiche-review.googlesource.com/c/quiche/+/11940\u003e.\n\nBug: https://crbug.com/556304550\nPiperOrigin-RevId: 993912870\n"
    },
    {
      "commit": "f9e75eb8ab1de3ea1c422deb561abbaa84ef2df6",
      "tree": "48c48fc1cbe9b24d5b5089c47748a56804ff647c",
      "parents": [
        "c9e09b3049ebf3e6de50492865bfe6e3fcf7e66a"
      ],
      "author": {
        "name": "jprat",
        "email": "jprat@google.com",
        "time": "Fri Oct 02 11:07:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 02 11:08:02 2026 -0700"
      },
      "message": "Add an `oghttp2` option to cap outbound DATA frame payload size.\n\n`oghttp2` sizes outbound DATA frames up to the peer\u0027s `SETTINGS_MAX_FRAME_SIZE`,\nwhile `nghttp2` always caps them at 16 KB. Envoy\u0027s `WINDOW_UPDATE` flood\nprotection budgets inbound `WINDOW_UPDATE` frames per outbound DATA frame, so a\nclient that advertises a large `MAX_FRAME_SIZE` and acknowledges data in small\nchunks gets far fewer DATA frames under `oghttp2` and trips the flood limit.\n\nAdd `max_outbound_data_frame_payload` to `OgHttp2Session::Options`. When set,\noutbound DATA frames are capped at the smaller of this value and the peer\u0027s\n`MAX_FRAME_SIZE`. The option is unset by default (zero is treated as unset), so\nexisting behavior is unchanged. Envoy can set it to 16 KB behind a runtime\nflag to match `nghttp2` framing.\n\nContext: https://docs.google.com/document/d/19f6B6MpH0VX-pEq2KPTutGqPd7w1CTrGw-iD_5x6Yn4/edit?tab\u003dt.0#heading\u003dh.rjkpiys4lyzb\nPiperOrigin-RevId: 992426536\n"
    },
    {
      "commit": "c9e09b3049ebf3e6de50492865bfe6e3fcf7e66a",
      "tree": "07447886e38a402bffbe983ebe1607f77b482ef1",
      "parents": [
        "121d3bf39d6c4bbf324a4e1f45f92de0e68387d7"
      ],
      "author": {
        "name": "ripere",
        "email": "ripere@google.com",
        "time": "Fri Oct 02 10:02:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 02 10:03:38 2026 -0700"
      },
      "message": "Add multiqueue status to the QBONE bonnet server status page.\n\nThe /statusz page will show the number of active queues (primary plus data-only), the eBPF steering state (attached, detached, or fallback to single-queue), and the health of each queue.\n\nPiperOrigin-RevId: 992389157\n"
    },
    {
      "commit": "121d3bf39d6c4bbf324a4e1f45f92de0e68387d7",
      "tree": "425f30b0b6d2d5994f1b9736ea1fb60e2eabf466",
      "parents": [
        "a9c3000e9552f3a0a0bad66c398c75372a0f6cef"
      ],
      "author": {
        "name": "ianswett",
        "email": "ianswett@google.com",
        "time": "Thu Oct 01 21:21:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 21:22:59 2026 -0700"
      },
      "message": "Support bundling retransmitted CRYPTO frames via the BCFR connection option.\n\nWhen the BCFR connection option is enabled on the client, QuicCryptoStream and QuicSession use ScopedPacketFlusher and ScopedEncryptionLevelContext during crypto retransmissions. This allows multiple pending or lost CRYPTO frames within the same packet number space to be bundled together into single packets at the appropriate encryption level.\n\nProtected by quic_reloadable_flag_quic_bundle_crypto_retransmits.\n\nPiperOrigin-RevId: 992089912\n"
    },
    {
      "commit": "a9c3000e9552f3a0a0bad66c398c75372a0f6cef",
      "tree": "aec933b8db453f4da8b3b9e8455b7a83aa332123",
      "parents": [
        "10f578a38cd06402f23183d0d495cc39fd956250"
      ],
      "author": {
        "name": "birenroy",
        "email": "birenroy@google.com",
        "time": "Thu Oct 01 17:53:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 17:53:42 2026 -0700"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 992013804\n"
    },
    {
      "commit": "10f578a38cd06402f23183d0d495cc39fd956250",
      "tree": "d20d3bfe82460369156968462a6906d6a531bdd9",
      "parents": [
        "583f791f07598a11811494b04895c61103b93e86"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Thu Oct 01 13:02:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 13:04:09 2026 -0700"
      },
      "message": "QUIC_BUG when attempting to use QUIC timestamps code with gQUIC\n\nThis code does not do anything anymore, so activating it is a bug.\n\nPiperOrigin-RevId: 991854071\n"
    },
    {
      "commit": "583f791f07598a11811494b04895c61103b93e86",
      "tree": "9d5d1530c1caa19cb742c72cde81f3b384d2ccc5",
      "parents": [
        "218d29acdf6c71aff4565f2bf8ff2d2902534f6c"
      ],
      "author": {
        "name": "asedeno",
        "email": "asedeno@google.com",
        "time": "Thu Oct 01 12:51:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 12:52:41 2026 -0700"
      },
      "message": "Preserve nghttp2 1.66.0 callback behavior in NgHttp2Adapter.\n\nStarting in nghttp2 1.67.0, `session_call_on_invalid_header` returns 0\ninstead of `NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE` when\n`on_invalid_header_callback` and `on_invalid_header_callback2` are\nunset, causing invalid regular HTTP header fields to be ignored while\ncontinuing to inflate subsequent headers instead of resetting the\nstream. Register `callbacks::OnInvalidHeader` returning\n`NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE` so invalid regular headers\ncontinue to trigger a stream error and abort header block inflation\nimmediately.\n\nAdditionally, nghttp2 1.67.0 and 1.68.0 promoted HTTP header and\nmessaging errors (including `Content-Length` mismatches on `DATA`\nframes) to connection errors (`GOAWAY`), which `NgHttp2Adapter` is not\ncompatible with. In nghttp2 1.69.0, these were restored to stream errors\n(`RST_STREAM`), but `Content-Length` mismatches on `DATA` frames (in\n`nghttp2_session_mem_recv2` when `DATA` payload exceeds\n`Content-Length`, and in `nghttp2_session_on_data_received` when\n`END_STREAM` arrives with fewer bytes than `Content-Length`) now call\n`session_handle_invalid_stream2` with the `NGHTTP2_DATA` frame instead\nof invoking `nghttp2_session_add_rst_stream` directly, which\nadditionally involes `on_invalid_frame_recv_callback` after queueing the\n`RST_STREAM`. Return 0 early in `callbacks::OnInvalidFrameReceived` for\n`NGHTTP2_DATA` frames so `Http2VisitorInterface::OnInvalidFrame` is not\ninvoked on `DATA` frames, and allow the optional callback in\n`Nghttp2ServerTest.MismatchedContentLength`.\n\nFinally, starting in nghttp2 1.67.0, stream flow-control window overflows (via `SETTINGS_INITIAL_WINDOW_SIZE` or excess `DATA` frames) are treated as connection errors (`GOAWAY`) rather than stream errors (`RST_STREAM`). Update the exported versions of `InitialWindowSettingCausesOverflow` and `ClientDisobeysStreamFlowControl` in `nghttp2_adapter_test.cc` to accept either behavior so the tests pass with both nghttp2 1.66.0 and 1.69.0+.\n\nProtected by gfe2_reloadable_flag_http2_nghttp2_callback_compatibility.\n\nPiperOrigin-RevId: 991847090\n"
    },
    {
      "commit": "218d29acdf6c71aff4565f2bf8ff2d2902534f6c",
      "tree": "558c278e14d417d798a18d54490b99803cb36c9e",
      "parents": [
        "c68da05ffddc322e8e290305f8f386e419b5f802"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Thu Oct 01 09:54:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 09:55:17 2026 -0700"
      },
      "message": "Expose the number of available peer-issued CIDs\n\nThis allows Chromium code to record the number of available CIDs whenever it attempts to migration. This is going to be useful to validate:\n1. That the CID capacity experiment is working\n2. The ideal number of spare CID GFEs should issue\n\nSee https://crrev.com/c/8483300.\n\nPiperOrigin-RevId: 991740308\n"
    },
    {
      "commit": "c68da05ffddc322e8e290305f8f386e419b5f802",
      "tree": "9cce70ddc21761b9734488c58a29e656367b2a68",
      "parents": [
        "2a8989ff5d4b91f4d6c99a5101c08d087bdc4890"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Thu Oct 01 07:38:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 07:39:43 2026 -0700"
      },
      "message": "Always send STOP_SENDING on Reset() unless RESET has already been received.\n\nThe MOQT spec says that cancellation is achieved via STOP_SENDING, not RESET.\n\nReview all instances for appropriate use of the two frames.\n\nPiperOrigin-RevId: 991668872\n"
    },
    {
      "commit": "2a8989ff5d4b91f4d6c99a5101c08d087bdc4890",
      "tree": "b2a5fe0547347fb19dacfc96436f6d6344823413",
      "parents": [
        "8dfe9230ebee85659be8975d580e2abff3a6f5e4"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 30 16:37:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 16:39:38 2026 -0700"
      },
      "message": "MOQT Session-level handling of draft-18 GOAWAY.\n\nRequest-level GOAWAY will be processed and silently dropped on all bidi streams until further restrictions are clarified in https://github.com/moq-wg/moq-transport/issues/1655.\n\nPiperOrigin-RevId: 991292836\n"
    },
    {
      "commit": "8dfe9230ebee85659be8975d580e2abff3a6f5e4",
      "tree": "6b0f40fa67a845dc5b17b0a039a9a178c0320e61",
      "parents": [
        "82b5a1b10fcf5e21034e43cec1d0bd3a45d7028d"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Wed Sep 30 12:46:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 12:47:39 2026 -0700"
      },
      "message": "Gracefully handle crypto frame outstanding checks after crypto substreams are reset.\n\nWhen multiple packets carry the same crypto data (e.g., due to retransmissions), one packet can be acked and trigger resetting the crypto substreams while the other packets remain in flight. If those other packets subsequently trigger an outstanding frame check, QuicCryptoStream should handle them without reporting a bug.\n\nPiperOrigin-RevId: 991160397\n"
    },
    {
      "commit": "82b5a1b10fcf5e21034e43cec1d0bd3a45d7028d",
      "tree": "f6e75f07472a0339b9437d0340452f13e17b7f84",
      "parents": [
        "49426578ff8f9e16d8649e22bebec7c79da0a33c"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Wed Sep 30 10:57:17 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 10:58:40 2026 -0700"
      },
      "message": "Reorder fields in `QuicCryptoNegotiatedParameters` to reduce its size from 360B to 352B (go/memory-cy).\n\nAs part of go/memory-cy, this CL reorders the fields of `quic::QuicCryptoNegotiatedParameters` to reduce its size from 360B to 352B. For single allocations, this drops the TCMalloc size class from 448B to 352B, saving ~498.0 GiB of fleet RAM.\n\nTo ensure no GCU regressions, we checked field-level `heapaccessz_all_loads` profiles and confirmed that hot fields are not split or displaced across 64-byte cache lines. We will also monitor for any GCU regressions with `gwp-cl-impact`.\n\nEDIT_CATEGORY: CATEGORY_TYPE_FIELD_REORDERING\nFULLY_QUALIFIED_TYPE_NAME: quic::QuicCryptoNegotiatedParameters\n#gwp-cl-impact\n\nTested:\n    Local presubmit tests failed.\n    Some test failures are present; the CL author decided to mail\nPiperOrigin-RevId: 991092377\n"
    },
    {
      "commit": "49426578ff8f9e16d8649e22bebec7c79da0a33c",
      "tree": "6d5e6563246da23f1b82d84d3e6deb65d20c4766",
      "parents": [
        "0ff8c4882c6fc09d56f41d9946b28c9a0ef5f19e"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Wed Sep 30 10:54:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 10:55:56 2026 -0700"
      },
      "message": "Reorder fields in `PragueSender` to reduce its size from 360B to 352B (go/memory-cy).\n\nAs part of go/memory-cy, this CL reorders the fields of `quic::PragueSender` to reduce its size from 360B to 352B. For single allocations, this drops the TCMalloc size class from 448B to 352B, saving ~229.3 GiB of fleet RAM.\n\nTo ensure no GCU regressions, we checked field-level `heapaccessz_all_loads` profiles and confirmed that hot fields are not split or displaced across 64-byte cache lines. We will also monitor for any GCU regressions with `gwp-cl-impact`.\n\nEDIT_CATEGORY: CATEGORY_TYPE_FIELD_REORDERING\nFULLY_QUALIFIED_TYPE_NAME: quic::PragueSender\n#gwp-cl-impact\n\nTested:\n    Local presubmit tests failed.\n    Some test failures are present; the CL author decided to mail\nPiperOrigin-RevId: 991090772\n"
    },
    {
      "commit": "0ff8c4882c6fc09d56f41d9946b28c9a0ef5f19e",
      "tree": "45e4c3530654359608a32594d07650e0b0a918fd",
      "parents": [
        "54534998b2827a5ec86a50d4c6d04a7741f3fe7f"
      ],
      "author": {
        "name": "Monica Chintala",
        "email": "monicach@microsoft.com",
        "time": "Tue Sep 29 14:44:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 29 14:45:49 2026 -0700"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 990542513\n"
    },
    {
      "commit": "54534998b2827a5ec86a50d4c6d04a7741f3fe7f",
      "tree": "a17be0a161c613cc05e182d6c6ecaecb129c4d7c",
      "parents": [
        "a568f174877b014da2a1cd4441c73d0caeb264b1"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Sep 29 13:55:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 29 13:56:34 2026 -0700"
      },
      "message": "Update GOAWAY format to MOQT draft-18.\n\nThis is just the parser/framer changes; handling of new fields will be in the next CL.\n\nPiperOrigin-RevId: 990510694\n"
    },
    {
      "commit": "a568f174877b014da2a1cd4441c73d0caeb264b1",
      "tree": "995aeded9352c952099dc5339983438fcd619be1",
      "parents": [
        "ae2161f4650b1796fe8f7d1fe35738e8d4a788e6"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Tue Sep 29 09:32:54 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 29 09:33:44 2026 -0700"
      },
      "message": "Enable envoy.reloadable_features.http2_reject_frames_after_end_stream and remove the http2_reject_half_closed_remote flag.\n\nThe fix for b/514675798 exists in two layers:\n\n* `OgHttp2Session` (cl/934350045): a `HEADERS` or `DATA` frame on a half-closed (remote) stream is a stream error, so oghttp2 sends `RST_STREAM(STREAM_CLOSED)` (RFC 9113 Section 5.1). This was guarded by `quiche_reloadable_flag_http2_reject_half_closed_remote` and stripped from the QUICHE export.\n* Envoy `Http::Http2::ConnectionImpl` (upstream PR #47507): the same frames are treated as a connection-level protocol error. This is guarded by `envoy.reloadable_features.http2_reject_frames_after_end_stream`.\n\nThe upstream Envoy tests assumed the second behavior on both codecs. With the oghttp2 check in place they failed on oghttp2, which is why the runtime guard was disabled in google3.\n\nThis CL:\n\n* Makes the `OgHttp2Session` check unconditional and removes the QUICHE flag, code counts and `quiche:google3` markers so it is exported to OSS QUICHE. oghttp2 users outside Envoy keep the protection, and the `HalfClosedRemote*` tests in `oghttp2_session_test.cc` are kept.\n* Moves the `gfe2_reloadable_flag_http2_reject_half_closed_remote` config to `deprecated/`. The flag has defaulted to true since 2026-08-31, so GFE behavior does not change. GFE2 code counts were zero (b/514675798#comment16).\n* Enables `envoy.reloadable_features.http2_reject_frames_after_end_stream` (`RUNTIME_GUARD`) and removes the Copybara transforms that disabled it and its tests.\n* Replaces `b514675798-reject-half-closed-remote.patch` with `b514675798-codec-aware-end-stream-tests.patch`. This patch makes the `*AfterEndStream` tests in `http2_integration_test.cc` accept either a connection-level protocol error (nghttp2) or `RST_STREAM(STREAM_CLOSED)` (oghttp2), and adds `DownstreamRequestHeadersAfterEndStream`. It covers the same scenarios as the removed `Http2HalfClosedRemoteTest`. The change is upstreamed in https://github.com/envoyproxy/envoy/pull/47816; remove the patch once that is imported.\n\nTested: `http2_integration_test` `*AfterEndStream*` (3 runs each) with the oghttp2 check enabled, and with it disabled to simulate current OSS QUICHE; `oghttp2_session_test`.\nPiperOrigin-RevId: 990357353\n"
    },
    {
      "commit": "ae2161f4650b1796fe8f7d1fe35738e8d4a788e6",
      "tree": "89969990216c0f46534bc562d449648ca7c4b99b",
      "parents": [
        "ffc3f1bdbd8654e78e59a94330cce0e3e47ea6a3"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Tue Sep 29 09:12:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 29 09:13:46 2026 -0700"
      },
      "message": "Reject leading asterisks on tokens in Draft 09 structured headers.\n\nDraft 09 of the Structured Headers specification (Section 3.9 and Section 4.2.10) requires tokens to begin with an alphabetic character, whereas RFC 8941 (Section 3.3.4) also permits a leading asterisk. Previously, `StructuredHeaderParser::ReadToken` unconditionally allowed a leading asterisk regardless of the parser version, which caused `ParseParameterisedList` to erroneously accept primary identifiers starting with an asterisk.\n\nRestrict leading asterisks in `ReadToken` to `kFinal` (RFC 8941).\n\nPiperOrigin-RevId: 990346076\n"
    },
    {
      "commit": "ffc3f1bdbd8654e78e59a94330cce0e3e47ea6a3",
      "tree": "e777176b3052c82bc5071cb920b3397c1bde60ce",
      "parents": [
        "3106c0a0ae077366ff01ac0b815e9dccdb7c937f"
      ],
      "author": {
        "name": "birenroy",
        "email": "birenroy@google.com",
        "time": "Mon Sep 28 15:02:04 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 28 15:03:04 2026 -0700"
      },
      "message": "Moves Allocate() and Deallocate() into AbidingObjectPool\u0027s public interface.\n\nProtected by refactoring, no functional change; not protected.\n\nPiperOrigin-RevId: 989864629\n"
    },
    {
      "commit": "3106c0a0ae077366ff01ac0b815e9dccdb7c937f",
      "tree": "f1c02b5173b556b4042f6af96f067dd37df986b7",
      "parents": [
        "f8dcc1967c1442d60c3065081a74ab5d55772c50"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Mon Sep 28 10:58:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 28 10:58:56 2026 -0700"
      },
      "message": "Mark structured-headers constructors and operators noexcept where relevant\n\nPiperOrigin-RevId: 989723455\n"
    },
    {
      "commit": "f8dcc1967c1442d60c3065081a74ab5d55772c50",
      "tree": "c8aa95ba940737c07e37d42c6870fafd0609d064",
      "parents": [
        "fd8eecd727db94359463953818f9ba8aba6a19db"
      ],
      "author": {
        "name": "ianswett",
        "email": "ianswett@google.com",
        "time": "Mon Sep 28 06:02:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 28 06:03:36 2026 -0700"
      },
      "message": "Allow configuring active_connection_id_limit via connection options in QUIC.\n\nAdds the 3CID, 4CID, and 5CID connection options to allow clients to advertise an active_connection_id_limit of 3, 4, or 5. On the server side, it enables using the peer\u0027s advertised active_connection_id_limit capped at a maximum of 5, and updates connection ID managers to respect the negotiated limits.\n\nProtected by quic_active_connection_id_limit.\n\nPiperOrigin-RevId: 989584556\n"
    },
    {
      "commit": "fd8eecd727db94359463953818f9ba8aba6a19db",
      "tree": "2c0a25d04d3944450292b90981b102b786768eae",
      "parents": [
        "c961965aa3ee8f2b6f05ebcac794f7854101adcd"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Sat Sep 26 21:57:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 26 21:58:31 2026 -0700"
      },
      "message": "Add some of the missing frame types to `QuicIetfFrameTypeString`.\n\nPiperOrigin-RevId: 989041247\n"
    },
    {
      "commit": "c961965aa3ee8f2b6f05ebcac794f7854101adcd",
      "tree": "86ed51cd7ff4524d394cde690e8c4d9880a09ad2",
      "parents": [
        "47e3eae3ca17d008db016a8610a22731447dac49"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Sep 25 09:08:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 09:10:07 2026 -0700"
      },
      "message": "Add Visit method to structured-headers Item type\n\nThis allows callers to inspect the underlying values without switching on the\ntype, and also allows the operator\u003d\u003d definition to be defaulted due to the\nremoval of the friend declaration.\n\nPiperOrigin-RevId: 988314982\n"
    },
    {
      "commit": "47e3eae3ca17d008db016a8610a22731447dac49",
      "tree": "66a0872e795b988ae2069bbb072faa22a41d033c",
      "parents": [
        "8a6777cf33030b087699ab8454ec5396c58e0973"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Fri Sep 25 09:07:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 09:08:29 2026 -0700"
      },
      "message": "Simplify stream priority serialization\n\nThere\u0027s no reason to perform key lookups when the dictionary is being built from scratch.\n\nThis contains no intentional behavioral differences.\n\nPiperOrigin-RevId: 988314759\n"
    },
    {
      "commit": "8a6777cf33030b087699ab8454ec5396c58e0973",
      "tree": "d30255671220395f48201cdd3c02b39ce6bd4956",
      "parents": [
        "5ddd28188e893bbf2230f6ecff28d7c128580554"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Fri Sep 25 07:24:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 07:25:12 2026 -0700"
      },
      "message": "Change return types of HistogramEnumString from std::string to absl::string_view.\n\nThese functions always return string literals, so no need to create a string.\n\nThis doesn\u0027t have much performance impact on FDO/propeller optimized binaries, but in our non-FDO prototype binary, we are spending 0.2% of CPU just on the temporary `std::string` construction and conversion to `string_view`.\n\nPiperOrigin-RevId: 988265401\n"
    },
    {
      "commit": "5ddd28188e893bbf2230f6ecff28d7c128580554",
      "tree": "ea93b2c5d9a926df9cbcbfcea2b4ec83cb9407f8",
      "parents": [
        "b6d4a5b5681f252da49989dc42232018f76f1bcf"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Fri Sep 25 07:13:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 07:14:18 2026 -0700"
      },
      "message": "Encode what caused a new validation to cancel a pre-existing one in\n\nThis simplifies noticeably Chromium\u0027s new QUIC connection migration UMA implementation. See https://crrev.com/c/8456683.\n\nThis is required by the parent CL and will later be dropped:\nNOT generated via copybara\n\nPiperOrigin-RevId: 988260321\n"
    },
    {
      "commit": "b6d4a5b5681f252da49989dc42232018f76f1bcf",
      "tree": "1624b04d6aacf6df0be428e445adba4da47894a9",
      "parents": [
        "a1628192cf32ba40d21e0dd80f485d68c24ff87a"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Fri Sep 25 07:05:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 07:06:32 2026 -0700"
      },
      "message": "Set the failure reason before reporting a failure when no CID is available\n\nValidatePath is not setting a failure reason before failing due to lack of unused connection IDs. This leads to OnPathValidationFailure being called with a nullopt reason, making it impossible for embedders to identify and prioritize connection migration failures.\n\nSimilarly, there is currently no reason for embedders to use when canceling a path validation due to a writer error. Add a new kWriterError to cover this scenario.\n\nSee https://crrev.com/c/8444838 for the Chromium changes that will land once QUICHE is rolled there. This should make the kProbeFailed/\"Probe failed\" bucket for the new Net.Quic.Migration.Attempt.FailureReason UMA actionable.\n\nFinally, mark kUnknown as deprecated: an actual failure reason should always be used.\n\nPiperOrigin-RevId: 988257046\n"
    },
    {
      "commit": "a1628192cf32ba40d21e0dd80f485d68c24ff87a",
      "tree": "c9ae52ccf307c5e0ac7747996167f8441f4c5d6d",
      "parents": [
        "2c058cbab959d50cc9e977c8c993f47cbba647a6"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Thu Sep 24 12:37:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 12:38:23 2026 -0700"
      },
      "message": "Fix msan error in MoqtSessionTest\n\nMOQT, not in production (and test code)\n\nPiperOrigin-RevId: 987684897\n"
    },
    {
      "commit": "2c058cbab959d50cc9e977c8c993f47cbba647a6",
      "tree": "8569f2079c6bed2026a0ff7d60d60a7943d5e192",
      "parents": [
        "58c7b5abb0c961c6072dc200d7a4ebd78c8188c7"
      ],
      "author": {
        "name": "asedeno",
        "email": "asedeno@google.com",
        "time": "Thu Sep 24 09:27:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 09:28:00 2026 -0700"
      },
      "message": "Lift QuicByteCount and QuicEcnCodepoint into a new quiche/common/quiche_types.h.\n\nAliases to the new types are added in quic/core/quic_types.h for convenience,\nbut their uses in quiche/common/... are switched to the new types.\n\nOther misc IWYU changes were made, which I tried to keep to a minimum and\nwarrant additional cleanup later.\n\nPiperOrigin-RevId: 987557606\n"
    },
    {
      "commit": "58c7b5abb0c961c6072dc200d7a4ebd78c8188c7",
      "tree": "af17e8527c501f25cb02cd91c8b92befeaa56e69",
      "parents": [
        "5a2286d7dd319ade310721cdd27e23fdd4ac9461"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Thu Sep 24 09:16:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 09:17:04 2026 -0700"
      },
      "message": "Eliminate uninitialized value in MoqtParserTest\n\nPiperOrigin-RevId: 987551012\n"
    },
    {
      "commit": "5a2286d7dd319ade310721cdd27e23fdd4ac9461",
      "tree": "606f236d620178c9165cf533d3b58937858e1089",
      "parents": [
        "1de50bdf4281f68c97cbaae9c1eeb9be68c7a789"
      ],
      "author": {
        "name": "QUICHE team",
        "email": "quiche-dev@google.com",
        "time": "Thu Sep 24 08:46:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 08:47:32 2026 -0700"
      },
      "message": "Reorder fields in `QpackInstructionDecoder` to reduce its size from 168B to 152B (go/memory-cy).\n\nAs part of go/memory-cy, this CL reorders the fields of `quic::QpackInstructionDecoder` to reduce its size from 168B to 152B. For single allocations, this drops the TCMalloc size class from 176B to 160B, saving ~989.3 GiB of fleet RAM.\n\nTo ensure no GCU regressions, we checked field-level `heapaccessz_all_loads` profiles and confirmed that hot fields are not split or displaced across 64-byte cache lines. We will also monitor for any GCU regressions with `gwp-cl-impact`.\n\nEDIT_CATEGORY: CATEGORY_TYPE_FIELD_REORDERING\nFULLY_QUALIFIED_TYPE_NAME: quic::QpackInstructionDecoder\n#gwp-cl-impact\nPiperOrigin-RevId: 987533832\n"
    },
    {
      "commit": "1de50bdf4281f68c97cbaae9c1eeb9be68c7a789",
      "tree": "06830880561e2ae0bc80a84c3e42af22f527c30a",
      "parents": [
        "84e89c1f198221c3b9f00f6e0ad4a2ed3dbdb4b5"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Wed Sep 23 22:08:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 22:09:49 2026 -0700"
      },
      "message": "Ensure QUIC only sends ACK timestamps for actually acked packets\n\nSection 4.1 of the draft says \"the packet number MUST have been included in an ACK Range in the current or a previously sent ACK\".  While this is impossible to enforce in practice, we should not send ACKs for packets that got truncated from the ACK ranges regardless.\n\nThis CL also adds a QUIC_BUG if any of the packets in the timestamps list are not in the list of packets actually being acknowledged (this should be always true due to the newly-added pruning code).\n\nPiperOrigin-RevId: 987232013\n"
    },
    {
      "commit": "84e89c1f198221c3b9f00f6e0ad4a2ed3dbdb4b5",
      "tree": "9f6404fd852f6fb20f37845db5c35f7e0fb5bae2",
      "parents": [
        "320c1d1cfa8562616a53bbb5ea0e7ebdb7decf5c"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 16:24:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 16:25:01 2026 -0700"
      },
      "message": "Return session error if a request ID is reused in a SUBSCRIBE, or has the wrong parity. Other cases would require unbounded state to detect.\n\nAlso, reconnect request ID validation with where request IDs are processed (in the bidi streams).\n\nPart of draft-18 update.\n\nPiperOrigin-RevId: 987077562\n"
    },
    {
      "commit": "320c1d1cfa8562616a53bbb5ea0e7ebdb7decf5c",
      "tree": "bf52f35015f83edf88c35f321ba33d5ce2186d5b",
      "parents": [
        "08da6d4121709071dcfbcca547afae52092e1132"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 13:21:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 13:22:48 2026 -0700"
      },
      "message": "Handle null session in MoqtLivePublisher::OnNewObjectAvailable.\n\nWhen a MoQT session is closing, visitor()-\u003esession() returns nullptr. Add a check to return early when the session is null to prevent null pointer dereferences.\n\nPiperOrigin-RevId: 986962626\n"
    },
    {
      "commit": "08da6d4121709071dcfbcca547afae52092e1132",
      "tree": "cdcfad414214cbe9d3b39965183c73a88fa7d7b2",
      "parents": [
        "52eef2d350dd039c75a3a4fd8efed6f5dd20644d"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 11:05:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 11:06:37 2026 -0700"
      },
      "message": "Unknown Uni Stream types are a protocol error.\n\nPart of draft-18 update.\n\nPiperOrigin-RevId: 986875020\n"
    },
    {
      "commit": "52eef2d350dd039c75a3a4fd8efed6f5dd20644d",
      "tree": "5d9f03d9e0e7099183c875bf79df05b7dc12cbea",
      "parents": [
        "41ee992597583771801dcb8569e1eca71842ef74"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 10:59:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 11:00:23 2026 -0700"
      },
      "message": "Implement draft-18 PADDING streams and datagrams.\n\nDoes not included capability to send padding datagrams.\n\nPiperOrigin-RevId: 986870305\n"
    },
    {
      "commit": "41ee992597583771801dcb8569e1eca71842ef74",
      "tree": "aafb3641b58f9225e6a665c9af77b792940f1ebc",
      "parents": [
        "403d0d5f0b8039a421ecfb48ef0b944282e5b0b4"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 09:30:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 09:30:41 2026 -0700"
      },
      "message": "Update Stream Error codes to MOQT draft-18.\n\nPiperOrigin-RevId: 986811700\n"
    },
    {
      "commit": "403d0d5f0b8039a421ecfb48ef0b944282e5b0b4",
      "tree": "6418a6a449bdafc7bd1ad4c2e39faf602833ed07",
      "parents": [
        "0fd94989882656e1425e645a6aa2cd89876c7d63"
      ],
      "author": {
        "name": "apaseltiner",
        "email": "apaseltiner@google.com",
        "time": "Wed Sep 23 09:26:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 09:27:02 2026 -0700"
      },
      "message": "Add Visit method to ParameterizedMember\n\nThis is done despite the continued existence of std::monostate in the\nunderlying std::variant because it is infeasible to remove the default\nconstructor as long as Dictionary has its operator[](absl::string_view)\nmethod, and in any case, Visit will still work even if std::monostate is\nremoved.\n\nPiperOrigin-RevId: 986809570\n"
    },
    {
      "commit": "0fd94989882656e1425e645a6aa2cd89876c7d63",
      "tree": "9c948b34c654a8a6882e400cd3e897baf4c59a7c",
      "parents": [
        "3ef4873036aa88fb0b627b3485bf54a6a461c629"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 08:46:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 08:47:40 2026 -0700"
      },
      "message": "Enforce draft-18 namespace restrictions.\n\nthe first tuple DNE if it\u0027s \u0027.\u0027 or \u0027.session\u0027.\n\nempty namespaces are allowed.\n\nPiperOrigin-RevId: 986786258\n"
    },
    {
      "commit": "3ef4873036aa88fb0b627b3485bf54a6a461c629",
      "tree": "00fd228a097e646ba60578cd39f408c056ecd303",
      "parents": [
        "3fe8064c9559f4cf40e1ebd31b196bbf4feccdf3"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Wed Sep 23 08:32:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 08:33:23 2026 -0700"
      },
      "message": "MOQT: Ignore OnSubgroupAbandoned for groups before first_active_group_.\n\nIf a subgroup is abandoned after its group has already been abandoned, group \u003c first_active_group_. Instead of hitting a DCHECK, return early from OnSubgroupAbandoned.\n\nPiperOrigin-RevId: 986778151\n"
    },
    {
      "commit": "3fe8064c9559f4cf40e1ebd31b196bbf4feccdf3",
      "tree": "022c72096d109d78550a700bc0e3e7c805959d8f",
      "parents": [
        "aca07904ae0caca3b84ca66b6136e2266712f4ec"
      ],
      "author": {
        "name": "birenroy",
        "email": "birenroy@google.com",
        "time": "Wed Sep 23 07:21:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 07:22:13 2026 -0700"
      },
      "message": "Adds an `AbidingObjectPool` utility in `quiche/common`.\n\n`AbidingObjectPool` is a cache-friendly, thread-local slab object pool\nthat allocates contiguous spans of memory (slabs) and uses an intrusive\nfree-list within unallocated slots for O(1) object reuse.\n\nA design doc discussing the architectural decisions is included, as well\nas microbenchmarks. From a sample run of the microbenchmarks, here are\nsome observations:\n\n1. Throughput Parity in Steady-State\n   * In typical allocation-free cycles, `AbidingObjectPool` operates within **1–3ns** of TCMalloc\u0027s highly-optimized thread cache.\n2. Superior Compaction \u0026 Batch Deallocation\n   * During load surges and drains, `AbidingObjectPool` outperforms TCMalloc by \u003e25% while providing complete physical memory reclamation down to the 1-slab spare cache.\n3. Zero Heap Fragmentation\n   * `AbidingObjectPool` completely isolates allocations into homogeneous power-of-two aligned slabs, eliminating the primary driver of TCMalloc Central Cache Freelist (CFL) span retention and cross-object fragmentation.\n\nProtected by new code, not yet used.\n\nPiperOrigin-RevId: 986738969\n"
    },
    {
      "commit": "aca07904ae0caca3b84ca66b6136e2266712f4ec",
      "tree": "04e24797824319ed046286932091fc698a8aaf18",
      "parents": [
        "7f07dc4d14c5702607a0dee9c7e4ab07f63f9883"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Sep 22 18:04:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 18:05:34 2026 -0700"
      },
      "message": "Deprecate quic_check_alternate_reset_token.\n\nNOT generated via copybara.\n\nPiperOrigin-RevId: 986362749\n"
    },
    {
      "commit": "7f07dc4d14c5702607a0dee9c7e4ab07f63f9883",
      "tree": "b79dcfe9495f54bb187ed30a37f2746ad1abc7e8",
      "parents": [
        "85f851f7dd12821a57c98db11de4edce6d12ff1b"
      ],
      "author": {
        "name": "asedeno",
        "email": "asedeno@google.com",
        "time": "Tue Sep 22 15:53:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 15:54:38 2026 -0700"
      },
      "message": "Initialize `static constexpr` tag members in `structured_headers.h`\n\nAdd `{}` direct-list-initializers to the `string`, `token`, and `byte_sequence`\ntag members in `Item` and `ItemView`, and drop the redundant `inline` specifier\nsince `static constexpr` class members are implicitly `inline` since C++17.\n\nC++ requires in-class `static constexpr` members to have an explicit initializer\n(`{}` or `\u003d ...`), even for empty structs. Clang accepts omitting it as an\nextension, but GCC rejects it.\n\nPiperOrigin-RevId: 986290500\n"
    },
    {
      "commit": "85f851f7dd12821a57c98db11de4edce6d12ff1b",
      "tree": "8362b21ba2debaa2c70f43ee2604e191a506d57f",
      "parents": [
        "413d255518b44e70838b665265cc1f1fe8bc5535"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Sep 22 14:01:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 14:02:28 2026 -0700"
      },
      "message": "Rename MoQT SetupParameters to SetupOptions.\n\nDraft-18 update. Not in production.\n\nPiperOrigin-RevId: 986218324\n"
    },
    {
      "commit": "413d255518b44e70838b665265cc1f1fe8bc5535",
      "tree": "04c06e1e374e9b969bb53d84b66bd468dc0f8dbf",
      "parents": [
        "535a2730e77d47e0dc03746555cc9c34b17bc9e9"
      ],
      "author": {
        "name": "martinduke",
        "email": "martinduke@google.com",
        "time": "Tue Sep 22 13:52:27 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 13:53:58 2026 -0700"
      },
      "message": "Handle unknown Mandatory To Implement Track Properties.\n\nCancel any requests that have these and propagate the error downstream.\n\nPart of draft-18 update (Section 2.5.1). Not in production.\n\nPiperOrigin-RevId: 986212226\n"
    },
    {
      "commit": "535a2730e77d47e0dc03746555cc9c34b17bc9e9",
      "tree": "0273a21800a276462b32579ffba9245b45146b32",
      "parents": [
        "8dde3ecf2715d455c240e28c4fcc8b42ed88352c"
      ],
      "author": {
        "name": "vasilvv",
        "email": "vasilvv@google.com",
        "time": "Fri Sep 18 13:01:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 13:02:12 2026 -0700"
      },
      "message": "Handle receive timestamps properly when overestimate avoidance (kBSAO) is enabled\n\nI originally hoped we could just remove BSAO code after shipping timestamps; however, this is straightforward to implement, and removes a potential edge case.\n\nPiperOrigin-RevId: 984021496\n"
    }
  ],
  "next": "8dde3ecf2715d455c240e28c4fcc8b42ed88352c"
}
