From e0deba56489a7a5200f81ffdfb418d2c5ccfbc22 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2026 17:06:23 +0000 Subject: [PATCH] chore(main): release 0.1.0 --- CHANGELOG.md | 433 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 433 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 825c32f0..4c7e68d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,434 @@ # Changelog + +## [0.1.0](https://github.com/Leberkas-org/GaudiHTTP/compare/v0.1.0...v0.1.0) (2026-06-28) + + +### ⚠ BREAKING CHANGES + +* publish accumulated v3 work as alpha prereleases + +* update logos for GaudiHTTP rebrand ([c0ff90c](https://github.com/Leberkas-org/GaudiHTTP/commit/c0ff90c63910cdd087ad6cd508a0b4b7b3353c30)) + + +### Features + +* add AddTurboServerInstrumentation registration methods ([4d156fb](https://github.com/Leberkas-org/GaudiHTTP/commit/4d156fbf2d5e886f8a55f0f20cdc130ebddd234d)) +* add CLI orchestration for stress benchmarks ([df87944](https://github.com/Leberkas-org/GaudiHTTP/commit/df879440bfb11270c087c42cba60d6503a022498)) +* add connection metrics and tracing to ListenerActor ([9ad8c7a](https://github.com/Leberkas-org/GaudiHTTP/commit/9ad8c7a41fdc9b8b4d369bd8017f3d5e88c4349c)) +* add fast-path slots for IHttpMaxRequestBodySizeFeature and IHttpBodyControlFeature ([ccfde96](https://github.com/Leberkas-org/GaudiHTTP/commit/ccfde961fd515e1f7eaa543904f8368bb44c98cc)) +* add four stress scenarios (slow-handler, connection-storm, body-flood, memory-endurance) ([727f28a](https://github.com/Leberkas-org/GaudiHTTP/commit/727f28a5041d013e91d7a9f91af6f2416ba8e66d)) +* add IHttpMaxRequestBodySizeFeature and IHttpBodyControlFeature implementations ([2e6c426](https://github.com/Leberkas-org/GaudiHTTP/commit/2e6c426b1dc1e915463e1aac8af3031332678373)) +* add LoadGenerator with concurrent worker loops ([5b50b78](https://github.com/Leberkas-org/GaudiHTTP/commit/5b50b78839acb2e0cf17147769cc8ebe53f3048f)) +* add MetricsCollector with per-second time-series aggregation ([a09b2a4](https://github.com/Leberkas-org/GaudiHTTP/commit/a09b2a421bbe5958e6e12678663d3414ace6ea2f)) +* add OTel-standard server metric instruments ([602eeb3](https://github.com/Leberkas-org/GaudiHTTP/commit/602eeb3c0749acf7d26a77cb32a493ee9a65d9bd)) +* add pipeline metrics and backpressure events to ApplicationBridgeStage ([b84bf7a](https://github.com/Leberkas-org/GaudiHTTP/commit/b84bf7ad64afc25e00b0f5cd87442f3ec38d389e)) +* add protocol negotiation metrics to ConnectionActor ([3879a89](https://github.com/Leberkas-org/GaudiHTTP/commit/3879a8915d0ec3e5d023f12ab051db68438a15d2)) +* add request metrics and tracing to HttpConnectionServerStageLogic ([6049d29](https://github.com/Leberkas-org/GaudiHTTP/commit/6049d29b368e8ea5c19032d4e3abe04c934cc93f)) +* add RequestTimestamp and RequestActivity to TurboFeatureCollection ([bc1e98a](https://github.com/Leberkas-org/GaudiHTTP/commit/bc1e98a12eabf20221df7d960951756b98220ca9)) +* add ResponsePipeWriter for writer-side header commit ([93d1bb9](https://github.com/Leberkas-org/GaudiHTTP/commit/93d1bb9d13336c1fefced770912931e35e7074d4)) +* Add server instrumentation methods ([251fcf2](https://github.com/Leberkas-org/GaudiHTTP/commit/251fcf21327e0e4b8312e34f6dd38caaf99ee13b)) +* add server-side Activity lifecycle (connection + request tracing) ([6989cfe](https://github.com/Leberkas-org/GaudiHTTP/commit/6989cfe13aef5cf5ed21264379553035bab4ae82)) +* add ServerHarness for Turbo/Kestrel lifecycle ([95cf049](https://github.com/Leberkas-org/GaudiHTTP/commit/95cf0496b5f16a579bd4102bc0f704435c0b6c09)) +* add Servus.Akka.AspNetCore with AkkaResults and MapEntity ([739a1a5](https://github.com/Leberkas-org/GaudiHTTP/commit/739a1a581cdb97b1547fc9e1b4a4246a398671a1)) +* add StressReport and JsonExporter for benchmark output ([855ed9d](https://github.com/Leberkas-org/GaudiHTTP/commit/855ed9db414c37dbd9a23e72e6efd9e3a024243f)) +* add turbo.server.* differenzierung metric instruments ([a826af1](https://github.com/Leberkas-org/GaudiHTTP/commit/a826af13a351d2ac7f273b5c9cca64775734b75f)) +* add TurboServer vs Kestrel server benchmarks ([a5eba3e](https://github.com/Leberkas-org/GaudiHTTP/commit/a5eba3e0389fd8f602796014056f0100a644dafc)) +* **benchmarks:** add client-side benchmarks (--protocol client-h1|h2|h3) ([c016e15](https://github.com/Leberkas-org/GaudiHTTP/commit/c016e153cbe6b1b099e5f8d1e2ddf4f83498627f)) +* **benchmarks:** add H2 and H3 loadtest support (--protocol h2|h3) ([961156d](https://github.com/Leberkas-org/GaudiHTTP/commit/961156da17965f7e9c55a2886ad7ea03d509e748)) +* **benchmarks:** add in-memory state-machine benchmarks (--protocol mem-h1|mem-h2) ([04eef35](https://github.com/Leberkas-org/GaudiHTTP/commit/04eef35d6b3b1119f5cf6c0585fc61f198d86246)) +* **benchmarks:** add per-type allocation profiling via BDN custom exporter ([a1cd11c](https://github.com/Leberkas-org/GaudiHTTP/commit/a1cd11c9446a34d0bc9362085f2604bda333549d)) +* **body:** add generic IBodyDrainTarget<T>, BodyDrainSlot<T>, BodyPumpHelper, ChunkedFramingHelper ([adc53da](https://github.com/Leberkas-org/GaudiHTTP/commit/adc53da5fd687173117514b835000b85f51eb0e6)) +* **body:** add IResettable to inbound types, create BodyReaderPoolExtensions ([79120c2](https://github.com/Leberkas-org/GaudiHTTP/commit/79120c2721bbf192170d2ff72d823288107a2b8b)) +* **body:** add SerialBodyPump for H1.x body drain with capacity model and starvation guard ([3ef519e](https://github.com/Leberkas-org/GaudiHTTP/commit/3ef519e66e93fcd5da982526de90ce77c4713387)) +* **body:** add shared drain interfaces, messages, and slot types ([ad4d99f](https://github.com/Leberkas-org/GaudiHTTP/commit/ad4d99ffc84ce931896eee79fb7fdaf5a737b1fd)) +* **body:** implement BodyPumpBase with credit system and adaptive budget ([3ddafe9](https://github.com/Leberkas-org/GaudiHTTP/commit/3ddafe9f1a58896c22f8cefe3f6171abcc812491)) +* **body:** refactor pumps to generic BodyDrainSlot<T> + BodyPumpHelper ([1237e9d](https://github.com/Leberkas-org/GaudiHTTP/commit/1237e9d56ed9478fcbf50da53f3425cb291ebdb7)) +* **body:** unseal BodyDrainSlot, add FlowControlledDrainSlot ([fdc71e6](https://github.com/Leberkas-org/GaudiHTTP/commit/fdc71e6a71aa36535b3ca760190ba391190e8621)) +* **body:** update IBodyDrainTarget interface and remove DrainContinue ([6d52be1](https://github.com/Leberkas-org/GaudiHTTP/commit/6d52be189cd9df40754b69669e08ab8a8de0fac7)) +* **body:** wire OnOutboundFlushed → AddCredit across all protocols ([bb12cb3](https://github.com/Leberkas-org/GaudiHTTP/commit/bb12cb3bdf3211a531af07661707d78ea7248907)) +* **ci:** Add release-next to CI triggers ([e1407f6](https://github.com/Leberkas-org/GaudiHTTP/commit/e1407f63d52c189565009dcbbd2a1af40e7cf487)) +* **client:** add CONNECT support ([99448da](https://github.com/Leberkas-org/GaudiHTTP/commit/99448dabaa6198c11f644c4e64dd3717bc3afd68)) +* **client:** Add WithFirstPartyContext and WithTimeout ([4debf0f](https://github.com/Leberkas-org/GaudiHTTP/commit/4debf0f06f34348036f7e0c00a1e30ae2ab41002)) +* **client:** default timeout for channel path + CancelPendingRequests drain ([fd4bf5e](https://github.com/Leberkas-org/GaudiHTTP/commit/fd4bf5e4b1b57029e6907bc8537c61fc0cf4a505)) +* **client:** expose pipe buffer tuning via TurboClientOptions ([9773bab](https://github.com/Leberkas-org/GaudiHTTP/commit/9773bab0a19d58905d3ef209ef3b9045c9c9641d)) +* **client:** forward 1xx informational responses to caller ([046a833](https://github.com/Leberkas-org/GaudiHTTP/commit/046a833d38800e1b2b6aef070634ba36f883454e)) +* **client:** propagate effective CancellationToken onto request options ([9602238](https://github.com/Leberkas-org/GaudiHTTP/commit/9602238d85911e8a846e4f1cf4d5092a7dfd1d2e)) +* **client:** round-robin connection routing in GroupByRequestEndpointStage ([b180d21](https://github.com/Leberkas-org/GaudiHTTP/commit/b180d21f5343e63e839eade8e018d812f491ba03)) +* Consolidate timer names with constants ([2c5623c](https://github.com/Leberkas-org/GaudiHTTP/commit/2c5623c2fba2f94f61f775bbac094e1e8e226073)) +* **docs:** Add 'When to Use' page and nav link ([bd5c6f3](https://github.com/Leberkas-org/GaudiHTTP/commit/bd5c6f3b9057e3819b19b0ac184a41e16d1a8eca)) +* **e2e:** add End2EndSpecBase infrastructure for TurboHTTP client-server tests ([9051d71](https://github.com/Leberkas-org/GaudiHTTP/commit/9051d715944b82cf8eb3a0ae778a11951921795e)) +* **e2e:** add H1.1 StreamingSpec and PipeliningSpec ([8b5a32b](https://github.com/Leberkas-org/GaudiHTTP/commit/8b5a32b7406cbbe291611ce18aa63500200ab31d)) +* **e2e:** add H2 MultiplexingSpec, FlowControlSpec, UpgradeSpec ([156b9e1](https://github.com/Leberkas-org/GaudiHTTP/commit/156b9e110444a6daf7b9a44b8b9ffe3eee7b8740)) +* **e2e:** add H3 MultiplexingSpec ([85af05e](https://github.com/Leberkas-org/GaudiHTTP/commit/85af05e5d4f5dfb15e2b291fb87cf60ab36b676f)) +* **e2e:** add LargePayloadSpecs for all protocols ([0361829](https://github.com/Leberkas-org/GaudiHTTP/commit/0361829b0dfc22eb49cbec843ef1834983d891f5)) +* **e2e:** add ResilienceSpecs for all protocols ([43719c0](https://github.com/Leberkas-org/GaudiHTTP/commit/43719c069d2acfe316bfeee4cd79ee57f8747e5b)) +* **e2e:** add RoundtripSpecs for H1.0, H1.1, H2, H3 ([58b8a9c](https://github.com/Leberkas-org/GaudiHTTP/commit/58b8a9ccf25e8a8bd4c9a915df469db9f9c60efb)) +* **h1-server:** add chunked trailer section encoding to ChunkedFramingHelper ([6d25f60](https://github.com/Leberkas-org/GaudiHTTP/commit/6d25f60a33971a9782725a751aa489462363aaec)) +* **h1-server:** integrate trailer emission into Http11ServerStateMachine ([58a3866](https://github.com/Leberkas-org/GaudiHTTP/commit/58a38669db092cd6b23ada92bc78794cccf83ac9)) +* **h1-server:** support 1xx informational responses via SendInformational ([7aaf79c](https://github.com/Leberkas-org/GaudiHTTP/commit/7aaf79c6ead596eeefe4982d8c6393986d84754e)) +* **h10:** per-request cancellation with disconnect ([6b51616](https://github.com/Leberkas-org/GaudiHTTP/commit/6b516168f3403b7eaf8a506b895065cad1a81e93)) +* **h11:** per-request cancellation with pipelining awareness ([3b01383](https://github.com/Leberkas-org/GaudiHTTP/commit/3b01383d2ef45ec000054a66ee72e35c8dd97aed)) +* **h2-server:** support 1xx informational responses ([242f00c](https://github.com/Leberkas-org/GaudiHTTP/commit/242f00cfdfc6dfc964bf7796921cf52150193504)) +* **h2:** add BodyDrainScheduler with AIMD, limbo zero-copy, and slot pooling ([c020598](https://github.com/Leberkas-org/GaudiHTTP/commit/c02059832e11ec7edb5c448c8e0b2904f4486031)) +* **h2:** add GetStreamSendWindow to FlowController ([c57d65b](https://github.com/Leberkas-org/GaudiHTTP/commit/c57d65bb8d0b35b17b6a100c01e9b9e9880e88a8)) +* **h2:** add Reserve/Refund to FlowController for window reservation ([b1ef132](https://github.com/Leberkas-org/GaudiHTTP/commit/b1ef13254b03b911cf20581e5bf5f1a5849ab1c2)) +* **h2:** emit RST_STREAM on per-request cancellation ([323097d](https://github.com/Leberkas-org/GaudiHTTP/commit/323097d26ec2c21fd40c53ad6c9beb08793d2e3a)) +* **h3-server:** add EncodeTrailers to Http3ServerEncoder ([9671ab0](https://github.com/Leberkas-org/GaudiHTTP/commit/9671ab00403008702ace25f13aa778de968ab7d0)) +* **h3-server:** integrate trailer emission into Http3ServerSessionManager ([6febb63](https://github.com/Leberkas-org/GaudiHTTP/commit/6febb63581323d7f3ebff1a101884b0701eac759)) +* **h3-server:** support 1xx informational responses ([efbfb2a](https://github.com/Leberkas-org/GaudiHTTP/commit/efbfb2a5aa2886de47a1a1c79c39253d47f5055b)) +* **h3:** add MultiplexedBodyPump with fixed cap, slot pooling, and starvation guard ([212ffb1](https://github.com/Leberkas-org/GaudiHTTP/commit/212ffb1bae92a69bbef90c78f9aac95fbb48879c)) +* **h3:** connection-error teardown on the server (stop swallow, close, RST) ([32ec3f9](https://github.com/Leberkas-org/GaudiHTTP/commit/32ec3f956e084b89edf19db5443de0a5bbb8a911)) +* **h3:** emit STOP_SENDING on per-request cancellation ([0cbe4d9](https://github.com/Leberkas-org/GaudiHTTP/commit/0cbe4d9a19476c4daf461c7a0988aa66df0b45d2)) +* **http2:** adaptive receive-window growth in FlowController (client-gated) ([028c49e](https://github.com/Leberkas-org/GaudiHTTP/commit/028c49e9f2fa41e7e8038f0de6aab93a474cfd81)) +* **http2:** adaptive window-scaling client options + projection ([8537293](https://github.com/Leberkas-org/GaudiHTTP/commit/853729352f64d4fcd4326bdd2e655a0ea3f99f81)) +* **http2:** add RttEstimator for PING-based min-RTT measurement ([0995bb1](https://github.com/Leberkas-org/GaudiHTTP/commit/0995bb1f51d0678593919a3e3786bd123152e244)) +* **http2:** add WindowScaler BDP growth formula ([6a6413d](https://github.com/Leberkas-org/GaudiHTTP/commit/6a6413d0621954eec51220bd51f7878fc19d7dbe)) +* **http2:** enable adaptive window scaling ([fd722ad](https://github.com/Leberkas-org/GaudiHTTP/commit/fd722ad04fa915a85086f6d276f7a772e9c4dfc4)) +* **http2:** Improve HTTP/2 protocol robustness and RFC compliance ([b67bc5d](https://github.com/Leberkas-org/GaudiHTTP/commit/b67bc5d6fc63b708986caa04d94d715b226d89be)) +* **http2:** Improve interim response and trailer handling ([a64314c](https://github.com/Leberkas-org/GaudiHTTP/commit/a64314cb333722b00ce7a66ba3d1a538c46781f8)) +* **http2:** project client http2 options to encoder ([2762854](https://github.com/Leberkas-org/GaudiHTTP/commit/2762854d3bcb75bfb98caf37312f89fa90c895b3)) +* **http2:** raise per-stream receive window to 1 MB + E2E flow control tests ([ce844b5](https://github.com/Leberkas-org/GaudiHTTP/commit/ce844b5c1b674dc093e6250ee9b93dc0a5a8780d)) +* **http2:** validate client stream IDs per RFC 9113 §5.1.1 ([0ceaad9](https://github.com/Leberkas-org/GaudiHTTP/commit/0ceaad9e18d3cd8207e6e9bc212b9d70cacad4b9)) +* **http2:** wire client adaptive window scaling + RTT probes ([5cf1549](https://github.com/Leberkas-org/GaudiHTTP/commit/5cf1549e709a04f337dd036f18b32c7dd16eae85)) +* **http3:** improve session manager logic ([d4eb2ac](https://github.com/Leberkas-org/GaudiHTTP/commit/d4eb2ac7099d9255f9784a2e5abc33cba8846288)) +* **http3:** process inbound SETTINGS and reject duplicates ([4e73f7c](https://github.com/Leberkas-org/GaudiHTTP/commit/4e73f7ce5d885d4cd34b742515a7f86afa85bd96)) +* **http3:** Stream 3 is unidirectional by default ([0609bd2](https://github.com/Leberkas-org/GaudiHTTP/commit/0609bd261897bacf59bf70277193225db4eb782a)) +* Improve HTTP trailers and informational responses ([4aeb013](https://github.com/Leberkas-org/GaudiHTTP/commit/4aeb01342f84e435ab514e7f1120cc44fb41e0af)) +* **lifecycle:** ClientStreamManager differentiated supervisor, Watch+Terminated cleanup ([737be81](https://github.com/Leberkas-org/GaudiHTTP/commit/737be8109508ed8ff82ec6a01814f879c4267ebc)) +* **lifecycle:** ServerSupervisorActor failure responses, drain timeout, Watch+Terminated ([1baad6d](https://github.com/Leberkas-org/GaudiHTTP/commit/1baad6d42fdac7c491972aee3cf5495c76097e4a)) +* **options:** Rename body size properties ([9467b52](https://github.com/Leberkas-org/GaudiHTTP/commit/9467b527f405e81088a37c2307f4fe2d4c04590a)) +* **options:** Rename maxEndpointSubstreams to maxConcurrentEndpoints ([24b8c5e](https://github.com/Leberkas-org/GaudiHTTP/commit/24b8c5ef4d8ecbbdaf42f89602a318736e2d89e6)) +* pipe transport, body redesign, server simplification ([5281774](https://github.com/Leberkas-org/GaudiHTTP/commit/528177468b6dc7d9cf0dcbe514af70641f37190b)) +* **pooling:** add Microsoft.Extensions.ObjectPool primitive (IResettable + policy) ([cbad4d6](https://github.com/Leberkas-org/GaudiHTTP/commit/cbad4d610eb7b664ed8fb4491146247cbd74528a)) +* **pooling:** expose per-connection PoolContext on the server stage seam ([af2c9ec](https://github.com/Leberkas-org/GaudiHTTP/commit/af2c9eccdae2ecd54f287c5ea5b4d062d21d844a)) +* **pooling:** per-connection ConnectionPoolContext ([2245c7f](https://github.com/Leberkas-org/GaudiHTTP/commit/2245c7f55b4ed774d59a9fa91fc042f2046b8d57)) +* **protocol:** add CancellationToken infrastructure for per-request cancel ([e74d9d2](https://github.com/Leberkas-org/GaudiHTTP/commit/e74d9d2bea936d953c929ddcea761e5967302036)) +* publish accumulated v3 work as alpha prereleases ([e8b6e9a](https://github.com/Leberkas-org/GaudiHTTP/commit/e8b6e9a205b7f23761e4681c4e5d3a05da94db1b)) +* register body size and body control features in FeatureCollectionFactory ([8850337](https://github.com/Leberkas-org/GaudiHTTP/commit/88503375ed4abca5aaed8ebbbe6d7eb766987798)) +* Rename TurboResponseHeaderDictionary to TurboHeaderDictionary ([9915a65](https://github.com/Leberkas-org/GaudiHTTP/commit/9915a65448c5b2b20a69b75a69281e4f907c65c9)) +* scaffold TurboHTTP.StressBenchmarks project with data records ([c619b2d](https://github.com/Leberkas-org/GaudiHTTP/commit/c619b2d8ee2f179f51bd3c4622e772cef2eed595)) +* **security:** extend CVE-class protections to HTTP/3 + close HPACK ([322a53b](https://github.com/Leberkas-org/GaudiHTTP/commit/322a53b5847f0477d664f38ba7658c02bb00d28e)) +* **server:** add actor-based FairShareCoordinator ([dc3d6c6](https://github.com/Leberkas-org/GaudiHTTP/commit/dc3d6c68b430fff016fa5bf0b92820bd5096c761)) +* **server:** add ConnectionActor for per-connection lifecycle ([9ea7cb2](https://github.com/Leberkas-org/GaudiHTTP/commit/9ea7cb26b8666e945a8648650dbe889283022d92)) +* **server:** add generic DynamicHub keyed fan-out stage ([fb9bb12](https://github.com/Leberkas-org/GaudiHTTP/commit/fb9bb121188421c2f33f9668502dc679be4dcfea)) +* **server:** add IHttpRequestTrailersFeature support ([74701e9](https://github.com/Leberkas-org/GaudiHTTP/commit/74701e927f4edf17e35ccb9bbc849662472de722)) +* **server:** Add ReceiveBufferHint option ([6ebd4e3](https://github.com/Leberkas-org/GaudiHTTP/commit/6ebd4e39cd888c6b720a629f2b953ae18eb3c237)) +* **server:** add SetReadOnly freeze semantics to TurboResponseHeaderDictionary ([5c4fe19](https://github.com/Leberkas-org/GaudiHTTP/commit/5c4fe19a08c1a8382f071f0a3adfb4491e0cbe72)) +* **server:** Add transport buffer options ([d2cc47f](https://github.com/Leberkas-org/GaudiHTTP/commit/d2cc47f3b5a2eb2a3b7e008ed5cfc5314f0d2baa)) +* **server:** add TurboInformationalResponseFeature for 1xx responses ([f738540](https://github.com/Leberkas-org/GaudiHTTP/commit/f73854078a9774b61c57743f2e57c23a160bca73)) +* **server:** auto-detect response ordering from HTTP version ([32192f7](https://github.com/Leberkas-org/GaudiHTTP/commit/32192f7b44bd57619cefc860ce3d587db241890a)) +* **server:** auto-send 100 Continue for Expect: 100-continue requests ([7f2d354](https://github.com/Leberkas-org/GaudiHTTP/commit/7f2d35462b9e9504d1169f476b4b1ed991475d80)) +* **server:** connection-per-stage pipeline with fair-share dispatch ([c49104f](https://github.com/Leberkas-org/GaudiHTTP/commit/c49104fa99950f8f50c10422f6aa97956e87f452)) +* **server:** data-rate monitoring and protocol server option resolution ([ad4d0b7](https://github.com/Leberkas-org/GaudiHTTP/commit/ad4d0b74344830390b8561f6d9a2b1f6ea983907)) +* **server:** enforce four previously-unwired server options ([a9b581c](https://github.com/Leberkas-org/GaudiHTTP/commit/a9b581c0e347bbfa5ffa746210daa4c34c429a78)) +* **server:** expose TransportBufferOptions with protocol-optimized defaults ([3857fc9](https://github.com/Leberkas-org/GaudiHTTP/commit/3857fc9cc3883e7be455979d29c7a694923451cf)) +* **server:** extract W3C trace context from inbound requests ([1c0124b](https://github.com/Leberkas-org/GaudiHTTP/commit/1c0124baa3a8661acc4da5c64bd7ffc66067df90)) +* **server:** handle ListenersFailed and DrainComplete.TimedOut in TurboServer ([93ea515](https://github.com/Leberkas-org/GaudiHTTP/commit/93ea5151036a30cf1889fa83f5e407d00835647d)) +* **server:** introduce ServerPipeline owning shared + per-connection flow ([cb81c9c](https://github.com/Leberkas-org/GaudiHTTP/commit/cb81c9ce3b073f8a599c9bcde7322d37106dfd4f)) +* **server:** per-protocol connection options with resolved limit projections ([ea1eb2c](https://github.com/Leberkas-org/GaudiHTTP/commit/ea1eb2ce30b67ddec940e3fb645f1df060a0ada4)) +* **server:** support unordered response emission in ApplicationBridgeStage ([dc819fc](https://github.com/Leberkas-org/GaudiHTTP/commit/dc819fc7542f431343473c1ac09d7296e5f1bb88)) +* **server:** validate options on startup ([e532447](https://github.com/Leberkas-org/GaudiHTTP/commit/e532447f3544b652efb277c28ff7db0c539e7f84)) +* **servus.akka:** Update subproject commit ([b5ee46e](https://github.com/Leberkas-org/GaudiHTTP/commit/b5ee46ecefcd80e8e4ff855e28079acdc6017abf)) +* **servus:** add TransportBuffer.Wrap for zero-copy buffer handoff ([d52d0bf](https://github.com/Leberkas-org/GaudiHTTP/commit/d52d0bffaff7c446a459e45e9dca4dda9627bf40)) +* **stage:** register per-request CancellationToken callbacks in connection stage ([bcb808e](https://github.com/Leberkas-org/GaudiHTTP/commit/bcb808e6d807a88be870adcdadc390a29349849c)) +* **streams:** migrate DynamicHub tests and impl ([21c3c4b](https://github.com/Leberkas-org/GaudiHTTP/commit/21c3c4b6f156c1c5e80cffb00be8cfe9ba3e79aa)) + + +### Bug Fixes + +* add missing PipeWriter overrides and leaveOpen to ResponsePipeWriter ([503c32b](https://github.com/Leberkas-org/GaudiHTTP/commit/503c32bbffcfa6c5b257663776228cc73a9c08db)) +* **bench:** add 30s timeout guard to all benchmark iterations ([82b1cb7](https://github.com/Leberkas-org/GaudiHTTP/commit/82b1cb71ee96daf4937d9f916bb2860283772123)) +* **bench:** add 30s timeout to all benchmark clients ([48fe358](https://github.com/Leberkas-org/GaudiHTTP/commit/48fe358330a8d3761c4686c07b7231fb82af95a5)) +* **bench:** add CancellationToken timeout to all warmup and SendAsync calls ([b9cd7e0](https://github.com/Leberkas-org/GaudiHTTP/commit/b9cd7e034aaecaa125bc96865f07bb0874995770)) +* **bench:** add IterationCleanup drain for streaming benchmarks ([a7be4f4](https://github.com/Leberkas-org/GaudiHTTP/commit/a7be4f4ec3e9f225f524da05d4e439badf462991)) +* **bench:** align H3 client MaxConcurrentStreams with Kestrel default ([564e753](https://github.com/Leberkas-org/GaudiHTTP/commit/564e753ac04e3366723406a07728849468239b95)) +* **bench:** drain stale responses at start of each streaming iteration ([be01236](https://github.com/Leberkas-org/GaudiHTTP/commit/be012368484f05b7be77a32e099cc43fff5dcfd7)) +* **bench:** drop CL=4096 from streaming benchmarks ([564968a](https://github.com/Leberkas-org/GaudiHTTP/commit/564968a16dae2ded49a253ff99c43dc448409f6d)) +* **benchmarks:** add missing [GlobalSetup] to cold-start benchmark classes ([54d85ac](https://github.com/Leberkas-org/GaudiHTTP/commit/54d85acebca5016a659bcd3da9d23ba42fcf6fd1)) +* **benchmarks:** clean up old trace files ([1557008](https://github.com/Leberkas-org/GaudiHTTP/commit/15570080f8e40f9c98bd304eb8e9000cb6ae825c)) +* **benchmarks:** prevent ActorSystem shutdown during BDN warmup iterations ([8de9fd1](https://github.com/Leberkas-org/GaudiHTTP/commit/8de9fd18c0747b1f506730977f8580d0b382c885)) +* **benchmarks:** protocol-aware fan-out limits and scaled timeouts ([575375e](https://github.com/Leberkas-org/GaudiHTTP/commit/575375ee8b08f863ed46e5290dc5beb2ce05c5cc)) +* **benchmarks:** use per-connection SocketsHttpHandler for H2/H3 driver ([3d86d7b](https://github.com/Leberkas-org/GaudiHTTP/commit/3d86d7bde34e1cceb2b76da7283c7c6846ed3916)) +* **bench:** prevent benchmark reports from overwriting previous runs ([fa5d3bd](https://github.com/Leberkas-org/GaudiHTTP/commit/fa5d3bdaf01c0a57db9811f873359a7430f6b41f)) +* **bench:** prevent streaming benchmark deadlocks ([a249088](https://github.com/Leberkas-org/GaudiHTTP/commit/a249088e8a601f72e6900abdccf74ea83a612c6b)) +* **bench:** raise QUIC stream limit and harden streaming benchmarks ([9a54267](https://github.com/Leberkas-org/GaudiHTTP/commit/9a54267077668f468a03ad24ea69c7d4bb6cefe9)) +* **bench:** restore CL=4096 for streaming benchmarks ([a02761a](https://github.com/Leberkas-org/GaudiHTTP/commit/a02761ad6d235ccf369b86c5b4aa70fe42b53363)) +* **bench:** switch heavy benchmarks to /upload route + throttle streaming writer ([daab86a](https://github.com/Leberkas-org/GaudiHTTP/commit/daab86a41a5cb62d4f810e4424546c9657dfdef8)) +* **body:** add inline AddCredit to all EmitDataFrames implementations ([5a1e0d0](https://github.com/Leberkas-org/GaudiHTTP/commit/5a1e0d0313bd31f2125e1816729cd683f78dc5ce)) +* **body:** fix Cancel stale-id leak and document IsStreamEligible contract ([6026f48](https://github.com/Leberkas-org/GaudiHTTP/commit/6026f48f508032a072fd3249ead7962f3405845f)) +* **body:** fix pump stall on async PipeReader streams ([b1644ce](https://github.com/Leberkas-org/GaudiHTTP/commit/b1644ce65ecfa73fb93f7c1ebdd55f52aa002872)) +* **body:** H10 truncated body error propagation, H11 chunked boundary deadlock ([561ff28](https://github.com/Leberkas-org/GaudiHTTP/commit/561ff286be80a54637977d7419483f70967fc83e)) +* **body:** prevent double slot cleanup on drain complete + fix test ([0c68d3f](https://github.com/Leberkas-org/GaudiHTTP/commit/0c68d3f761cd576cb3f2d6e93436c1424618f9ea)) +* **body:** QueuedBodyReader.ReadAsync now respects CancellationToken ([fb5c55a](https://github.com/Leberkas-org/GaudiHTTP/commit/fb5c55a48e2d1583f4d3328ee48b010fa100c740)) +* **body:** reclaim credit after synchronous read completion ([0550f0f](https://github.com/Leberkas-org/GaudiHTTP/commit/0550f0f3578e8da4aaa030897f939f9948f81060)) +* **body:** resolve pending ReadAsync on Reset to prevent InvalidOperationException ([bc21107](https://github.com/Leberkas-org/GaudiHTTP/commit/bc21107a5c2be2e00cd293dbba99faf10eb7616b)) +* **body:** restore client-side backpressure and remove sync credit reclaim ([4b7ccc4](https://github.com/Leberkas-org/GaudiHTTP/commit/4b7ccc44783af4171d813b02ffb0bf7d2d7459db)) +* **body:** retain HttpContent reference in drain slots to prevent GC disposal race ([9f3fa07](https://github.com/Leberkas-org/GaudiHTTP/commit/9f3fa0730ed8063b70b490f33fd50361519e12f2)) +* **body:** SerialBodyPump Cancel should not fire OnDrainComplete ([2491a11](https://github.com/Leberkas-org/GaudiHTTP/commit/2491a11f28b21ef7e8d7e48f3432ccd8324680fa)) +* **ci:** Disable parallel test modules ([a1d783f](https://github.com/Leberkas-org/GaudiHTTP/commit/a1d783ff137bbef145dde2d2dbbef7245e374bf4)) +* **ci:** run two test modules in parallel ([0ed7e7f](https://github.com/Leberkas-org/GaudiHTTP/commit/0ed7e7f2b11ea3e17a6ffe97108138c23f12451a)) +* client flush backpressure, QUIC pipe options, test fixes ([bf3effd](https://github.com/Leberkas-org/GaudiHTTP/commit/bf3effd10f1f7b5e6d4986ebb0cf7ec49d3c4fd2)) +* **client:** add MaxConcurrentStreams defense-in-depth warning in H2/H3 EncodeRequest ([ec97db9](https://github.com/Leberkas-org/GaudiHTTP/commit/ec97db9e7b1900e66b5d910b92a90959bbcf1802)) +* **client:** bound HTTP/1.1 request body pump with outbound flush backpressure ([c76e9ee](https://github.com/Leberkas-org/GaudiHTTP/commit/c76e9ee6f081bd0394aa8618a1fdf508ff3d9650)) +* **client:** Correct request cancellation logic ([6c1b390](https://github.com/Leberkas-org/GaudiHTTP/commit/6c1b3904796b2b3ed81dbd9de89d0122ce0b4dd5)) +* **client:** decouple substream source creation from upstream pull gating ([7d0cb71](https://github.com/Leberkas-org/GaudiHTTP/commit/7d0cb71ed6906b87371eefa19fec83f007e836ac)) +* **client:** dispose response when PendingRequest version has advanced ([e2c48bb](https://github.com/Leberkas-org/GaudiHTTP/commit/e2c48bbdc0757768bde2616d6913f4cdbdf26b6c)) +* **client:** don't retry non-rewindable bodies; stop parked retries blocking intake ([a468db0](https://github.com/Leberkas-org/GaudiHTTP/commit/a468db04c9b777097a8ef57204d22204c5c26372)) +* **client:** isolate per-request enrichment failures from the shared ingress ([7644a92](https://github.com/Leberkas-org/GaudiHTTP/commit/7644a92181b3c2f07a45072e9e52ba7bd2ff3eaa)) +* **client:** O(1) in-flight request tracking to fix H2 high-concurrency CPU collapse ([0bfff90](https://github.com/Leberkas-org/GaudiHTTP/commit/0bfff90d96243d5d53fdf5842b1b52bb3bcc7f45)) +* **client:** propagate handler exceptions, wire per-request timeout, enforce SameSite ([3bd9ddd](https://github.com/Leberkas-org/GaudiHTTP/commit/3bd9ddd1609cfd86a50273ebb126800b13717763)) +* **client:** resolve multi-connection pipeline deadlock in GroupByRequestEndpointStage ([0549940](https://github.com/Leberkas-org/GaudiHTTP/commit/054994000b4200a001444803ac1f705d70395250)) +* **client:** resolve typed clients via ActivatorUtilities instead of cast ([b815e42](https://github.com/Leberkas-org/GaudiHTTP/commit/b815e4226ce8da8f4787db4c8eac2660fc1bc8d5)) +* **client:** revert response dispose — BroadcastHub shares objects ([4d210c5](https://github.com/Leberkas-org/GaudiHTTP/commit/4d210c588e91a1233e89725990e8add0611fdd8c)) +* **client:** route responses by compacting consumer index to fix same-name misroute ([f16d3a7](https://github.com/Leberkas-org/GaudiHTTP/commit/f16d3a76bc0dc0787d9fca4c25e19d0af9fdcb89)) +* **client:** stamp cancellation token into request options before channel enqueue ([28d422d](https://github.com/Leberkas-org/GaudiHTTP/commit/28d422dc342bb65c3fbc8d1c1daff639e40b6f37)) +* **cookies:** enforce __Host- and __Secure- prefix rules (RFC 6265bis) ([8978aeb](https://github.com/Leberkas-org/GaudiHTTP/commit/8978aeb09ac3d1a102c5a965b9506c96215954e0)) +* duplicate Content-Length in H1.1 server encoder + test fixes ([1880611](https://github.com/Leberkas-org/GaudiHTTP/commit/18806116892e58b9037a8c263021d07fae66511b)) +* **e2e:** add missing using directives and fix empty-echo response format ([7b96bd4](https://github.com/Leberkas-org/GaudiHTTP/commit/7b96bd4c2441e5ffabc6e56f41af5342338edef5)) +* **e2e:** skip H3 tests properly, reduce H11 pipelining concurrency ([e10ec98](https://github.com/Leberkas-org/GaudiHTTP/commit/e10ec98e0b5cde2f64fcdfdfc8423e7e435cf4a5)) +* **e2e:** stabilize E2E integration tests ([cbc2252](https://github.com/Leberkas-org/GaudiHTTP/commit/cbc22522d97a8f4a3089acb41b9be412571be0f4)) +* **e2e:** use ctx.RequestAborted instead of TestContext CancellationToken ([e6c6f56](https://github.com/Leberkas-org/GaudiHTTP/commit/e6c6f560be57920460f372dae9f5aec15bf0acc5)) +* **e2e:** use Results.Text for plain string assertions in ResilienceSpecs ([f4d0370](https://github.com/Leberkas-org/GaudiHTTP/commit/f4d0370fc14a570d4c2fe0baac1f6edd7beae1fa)) +* guard _headerCommit in CommitAndFlushAsync with try-finally ([730f9ef](https://github.com/Leberkas-org/GaudiHTTP/commit/730f9ef1ebc0f8b741e9d927e6631dbc83ef66ea)) +* **h1-client:** consume 101 in 1xx block instead of delivering as final response ([7966e39](https://github.com/Leberkas-org/GaudiHTTP/commit/7966e3928e0033990974922c0b68fa50ba85a562)) +* **h1-client:** exclude 101 Switching Protocols from 1xx forwarding ([45bc56c](https://github.com/Leberkas-org/GaudiHTTP/commit/45bc56c08dbc0765228abc47c79dded453b47080)) +* **h10-client:** use streaming CloseDelimitedFramingDecoder for connection-close bodies ([d06db52](https://github.com/Leberkas-org/GaudiHTTP/commit/d06db5247fe5a49856f62eca5989843ef65facb4)) +* **h10/server:** dispatch streaming request bodies before full receipt ([4ed9c42](https://github.com/Leberkas-org/GaudiHTTP/commit/4ed9c424126d91b38d5045919452984dd590388d)) +* **h10:** set Content-Length on large payload endpoints to prevent truncation ([9380956](https://github.com/Leberkas-org/GaudiHTTP/commit/93809562f22e62eff86860bd9fe7f0ce4a8dd381)) +* **h1:** retain unconsumed prefix across reads so split response headers don't desync ([32ded11](https://github.com/Leberkas-org/GaudiHTTP/commit/32ded11935da0b04f15e8bbc245200df51b7e671)) +* **h2-server:** prevent stream hang when all trailers are filtered + add SetReadOnly freeze ([f0c1ad1](https://github.com/Leberkas-org/GaudiHTTP/commit/f0c1ad1b759722e702dac1a57376cf21e8c60d84)) +* **h2/h3:** guard StackStreamStatePool against double-return ([fedc9e9](https://github.com/Leberkas-org/GaudiHTTP/commit/fedc9e99e04ce506fdcd7ab51ef4c6038d4eb752)) +* **h2/server:** partial send in DrainOutboundBuffer when flow control window < chunk ([2f57852](https://github.com/Leberkas-org/GaudiHTTP/commit/2f57852b8dadfd16202ce3a724aa6635e712e671)) +* **h2:** bound the receive WINDOW_UPDATE threshold to the advertised stream window ([af46609](https://github.com/Leberkas-org/GaudiHTTP/commit/af466092cfd8a64d48345f5d4525861f68a59e24)) +* **h2:** detect response body via HasStarted for H2 responses without Content-Length ([d84bcef](https://github.com/Leberkas-org/GaudiHTTP/commit/d84bcef8005ea86e29f7c1749447fa18fb5e59fd)) +* **h2:** detect response body via HasStarted when no Content-Length ([5ad82ad](https://github.com/Leberkas-org/GaudiHTTP/commit/5ad82adb81a3a9c6a3f0c21dcf3d1ce593be1776)) +* **h2:** drain in-flight streams on a graceful GOAWAY instead of dropping them (RFC 9113 6.8) ([4b027f2](https://github.com/Leberkas-org/GaudiHTTP/commit/4b027f23ffb3aa7109e47643de703072080a15df)) +* **h2:** fix FlowControlledBodyPump OnWindowUpdate deadlock + window leak ([78082fd](https://github.com/Leberkas-org/GaudiHTTP/commit/78082fd7bf991d75c97b09a991ef38ea646b4ff6)) +* **h2:** Pass request cancellation to body drain ([5e60f59](https://github.com/Leberkas-org/GaudiHTTP/commit/5e60f592f56fbbd5e06fb66e5ee2d7001624a7ce)) +* **h2:** prevent GC pressure from body buffering under high concurrency ([7cc0841](https://github.com/Leberkas-org/GaudiHTTP/commit/7cc0841c29a705276f3ba9daeb802ffce2f94664)) +* **h2:** sync HPACK decoder table size with announced SETTINGS + skip connection preface ([53205b7](https://github.com/Leberkas-org/GaudiHTTP/commit/53205b79dd39756be9faadd430e71b9d995a52ea)) +* **h2:** track stream-level send window in FlowController.OnDataSent ([f31784e](https://github.com/Leberkas-org/GaudiHTTP/commit/f31784ed7de48eb515b2eb838bca1495629aba34)) +* **h3-client:** handle 1xx informational responses without closing stream ([832ce2d](https://github.com/Leberkas-org/GaudiHTTP/commit/832ce2d793108c44864c18cd81abcc16dabfbd62)) +* **h3-client:** update edge-case tests for 1xx behavior + status validation ([041ce4f](https://github.com/Leberkas-org/GaudiHTTP/commit/041ce4fbf4e16c2e9621a763dde12107cc86108a)) +* **h3:** dispose decoded frames and copy blocked QPACK header blocks ([e51ab5d](https://github.com/Leberkas-org/GaudiHTTP/commit/e51ab5daca6cc913289d94e9aef3aa58656f45dc)) +* **h3:** drive reconnect from the state machine like TCP ([f5570b6](https://github.com/Leberkas-org/GaudiHTTP/commit/f5570b6b0f55fab662886d2929ad53af907ababa)) +* **http11:** Optimize request body pumping for synchronous reads ([7db4edf](https://github.com/Leberkas-org/GaudiHTTP/commit/7db4edf3b84a31af3365ac216f2d06bd75911bb6)) +* **http1:** stop chunked decoder duplicating a stashed partial control line ([a1a58a5](https://github.com/Leberkas-org/GaudiHTTP/commit/a1a58a5793870edb47ed338aa14ab250b413fc55)) +* **http1:** suppress response body for HEAD requests ([42f3637](https://github.com/Leberkas-org/GaudiHTTP/commit/42f36378317eaeb1cfda232e44b9cdd9baae851c)) +* **http2/3:** correct body read pending state ([f8d2485](https://github.com/Leberkas-org/GaudiHTTP/commit/f8d248538f839ed6246e8e7904017ba2e341199c)) +* **http2:** enforce the advertised HEADER_TABLE_SIZE in the server HPACK decoder ([4ad285c](https://github.com/Leberkas-org/GaudiHTTP/commit/4ad285c5cfddadf1d0547923566c7086805af808)) +* **http2:** make QueuedBodyReader thread-safe and fail truncated response bodies ([ba89a9c](https://github.com/Leberkas-org/GaudiHTTP/commit/ba89a9c508bc72b6ff6ce5a2754c37a932e03492)) +* **http2:** reject empty :path pseudo-header for non-CONNECT requests ([56876e3](https://github.com/Leberkas-org/GaudiHTTP/commit/56876e35294738ef58204ff2bd3888ab974cb363)) +* **http2:** RFC 9113 frame compliance — settings overflow, padded DATA flow control, half-closed(remote) ([d76c134](https://github.com/Leberkas-org/GaudiHTTP/commit/d76c1340089c68829472223be4f4ad09ff1c975a)) +* **http2:** size the HPACK encode buffer to the header block ([38625ab](https://github.com/Leberkas-org/GaudiHTTP/commit/38625ab9586afaea8d5eaea6ebdbd6b696ae4875)) +* **http2:** stop returning in-use body-drain buffers to the shared pool on teardown ([19b83c5](https://github.com/Leberkas-org/GaudiHTTP/commit/19b83c57b18c91836da5484dbbe444d0c8c1f3bf)) +* **http2:** suppress response body (DATA frames) for HEAD requests ([26b7841](https://github.com/Leberkas-org/GaudiHTTP/commit/26b7841421a53f2db772064de6230f56372a503c)) +* **http3:** process inbound QPACK encoder-stream and guard response body-drain UAF (server) ([ea45c9c](https://github.com/Leberkas-org/GaudiHTTP/commit/ea45c9c139fdeeafbf87878024caa5a080c04803)) +* **http3:** replay DATA received while response HEADERS are QPACK-blocked ([ab401a8](https://github.com/Leberkas-org/GaudiHTTP/commit/ab401a839a96454da5841d81cebd7f00df9f93cb)) +* **http3:** surface malformed frame bodies as HttpProtocolException ([c0a0462](https://github.com/Leberkas-org/GaudiHTTP/commit/c0a04622233041a2fff17f9044230a478734c878)) +* **http:** enforce body-size limit on Content-Length framed bodies ([025fc6b](https://github.com/Leberkas-org/GaudiHTTP/commit/025fc6baf7813edbcb45df2d8963b0fa9c0fcd60)) +* **http:** fix http version comparison and null checks ([91fdab1](https://github.com/Leberkas-org/GaudiHTTP/commit/91fdab1787a5793bc2c1cd7d9c2f2144c65c8ee2)) +* **http:** Improve flow control and stream draining ([6ec29cb](https://github.com/Leberkas-org/GaudiHTTP/commit/6ec29cb5d5bffed046d2c021990c84e819f5cfe4)) +* **http:** tighten Content-Length parsing, dup CL on H1.0, redirect credential leak ([fd16691](https://github.com/Leberkas-org/GaudiHTTP/commit/fd16691e30b3cfa661edffddb845edaeead81659)) +* **lifecycle:** ConnectionActor failure handler and PostStop cleanup ([327a54f](https://github.com/Leberkas-org/GaudiHTTP/commit/327a54f5246fa3ce64303b40ff1ea6100e90a2e6)) +* **lifecycle:** consistent full exception logging in CleanupForRetry ([0187c1d](https://github.com/Leberkas-org/GaudiHTTP/commit/0187c1d052773163f56c2bf5f48e316ea027bdb2)) +* **lifecycle:** Consumer stops on sink error instead of continuing ([9fe8885](https://github.com/Leberkas-org/GaudiHTTP/commit/9fe88851d68679f8d675c0849f3dddd460136d54)) +* **lifecycle:** ListenerActor PipeTo throw bug, BindFailed message, supervisor logging ([4e07e07](https://github.com/Leberkas-org/GaudiHTTP/commit/4e07e07f82be3111f68e0b58976d7397913fc6c9)) +* **lifecycle:** StreamOwner stops after retry exhaustion, actor-scoped materializer ([4ef77cd](https://github.com/Leberkas-org/GaudiHTTP/commit/4ef77cde3323da5be40d96e5477a1d35e50c3b62)) +* populate IServerAddressesFeature with resolved endpoint URLs ([23ebbd5](https://github.com/Leberkas-org/GaudiHTTP/commit/23ebbd53cb2f72741573494340ed33817bc714e0)) +* Potential fix for code scanning alert no. 2: Cookie 'Secure' attribute is not set to true ([9792830](https://github.com/Leberkas-org/GaudiHTTP/commit/979283029f029d48803cc5b5c4f3e182314b284c)) +* **quic:** only flush streams that actually wrote to the pipe (not opening-buffer) ([a900c1c](https://github.com/Leberkas-org/GaudiHTTP/commit/a900c1c056657d51fbe5c08af2e0e2280eabd01f)) +* **quic:** return pooled MultiplexedData after write + treat QuicException as graceful close ([da06cfd](https://github.com/Leberkas-org/GaudiHTTP/commit/da06cfdd91897079b520135b80191de3d574715d)) +* **quic:** update submodule — drain pending acquires on release/establish ([1defdbb](https://github.com/Leberkas-org/GaudiHTTP/commit/1defdbbfb2a732402513a4faef14d7da2fd34ea2)) +* **quic:** update submodule — server stream accept loop exception handling ([63a1319](https://github.com/Leberkas-org/GaudiHTTP/commit/63a1319b38f1a45449f5a364b70fff5362d0d866)) +* **quic:** update submodule with QUIC accept loop resilience ([7cee693](https://github.com/Leberkas-org/GaudiHTTP/commit/7cee6937709ab21b9068e51953a99a0dcbb040a5)) +* Remove unused OpenTelemetry package ([93a9f26](https://github.com/Leberkas-org/GaudiHTTP/commit/93a9f26af3f75dafbcb194d2d93e8eebdb2f51ef)) +* revert Servus 0.34.1 bump — caused 90% throughput regression ([7b140f9](https://github.com/Leberkas-org/GaudiHTTP/commit/7b140f94c77b7afc1614f20f19edb037be3ea1a4)) +* **server:** always call TryPullResponse from OnNetworkPull ([e18b2e3](https://github.com/Leberkas-org/GaudiHTTP/commit/e18b2e312793d36be962e85ebdccbe3a6237ed18)) +* **server:** await ActorSystem WhenTerminated in StopAsync, dispose responses in E2E tests ([bb87acc](https://github.com/Leberkas-org/GaudiHTTP/commit/bb87acc7a227c2ef2e12e261a10b8962c4a13942)) +* **server:** bound the cleartext protocol-sniffing window (DoS) ([d82c37f](https://github.com/Leberkas-org/GaudiHTTP/commit/d82c37f74335591f664c84bb2fb10a89e16c20bb)) +* **server:** bound the routing Pending queue by propagating backpressure ([c2965a8](https://github.com/Leberkas-org/GaudiHTTP/commit/c2965a846e6089a94dc23d0bf57cc24a7c859165)) +* **server:** cap _pendingSources queue in GroupByRequestEndpointStage ([4490f7d](https://github.com/Leberkas-org/GaudiHTTP/commit/4490f7dfee79c35a05116491db937c75fcf7f9c0)) +* **server:** check the cleartext sniff cap after protocol identification, not before ([ab3a40c](https://github.com/Leberkas-org/GaudiHTTP/commit/ab3a40c8bb438826752d2f6da713ba9f84ab8543)) +* **server:** close idle H2/H3 connections on keep-alive timeout ([86fae26](https://github.com/Leberkas-org/GaudiHTTP/commit/86fae2685b3e48593720b06be27323f4b72db61c)) +* **server:** defer H2 per-stream WINDOW_UPDATE until app consumes body ([5bd80aa](https://github.com/Leberkas-org/GaudiHTTP/commit/5bd80aaffbdaea018b17bf752b3c64ff6c9dd5a7)) +* **server:** empty-body responses, outbound queue drain, body-message ShouldComplete ([94332f4](https://github.com/Leberkas-org/GaudiHTTP/commit/94332f4c05e0544896289f42ede27f6977010acb)) +* **server:** guard buffered body fast path and serve single-segment bodies zero-copy ([3358b02](https://github.com/Leberkas-org/GaudiHTTP/commit/3358b0252e5b36337fda83bbb17dc5c516319ae6)) +* **server:** H1.x SerialBodyPump backpressure stall on streaming responses ([25eeb7a](https://github.com/Leberkas-org/GaudiHTTP/commit/25eeb7a3f9777d2750e4ef5fa3a015ec70855878)) +* **server:** Pool CancellationTokenSource to reduce allocations ([8c18619](https://github.com/Leberkas-org/GaudiHTTP/commit/8c18619024c47af45946dfe9c3277991b2c93b54)) +* **server:** pull next pipelined response after an outbound body completes ([a78c352](https://github.com/Leberkas-org/GaudiHTTP/commit/a78c352ca5738bf39010c5481c678d45981c0e59)) +* **server:** recycle the FeatureCollection on body-suppressed (204/304/HEAD) responses ([7eabbe5](https://github.com/Leberkas-org/GaudiHTTP/commit/7eabbe5fd13cb1c18c8886ba30a61953b27b5028)) +* **server:** remove response data-rate entry when body completes ([61a4b1e](https://github.com/Leberkas-org/GaudiHTTP/commit/61a4b1e9e506ee275db4caf2961d8ba68503f6e5)) +* **server:** serialize HTTP/1.x pipelined dispatch and fix WirePipeliningSpec under-read ([3429403](https://github.com/Leberkas-org/GaudiHTTP/commit/34294036036463b08538a905eb565ebcb702fa20)) +* **server:** split buffered body into MAX_FRAME_SIZE-compliant DATA frames ([a64f68b](https://github.com/Leberkas-org/GaudiHTTP/commit/a64f68bf788f59b89457bf4399fc057d7802f5f6)) +* **server:** stop ApplicationBridgeStage double-emitting on handler timeout ([51a1804](https://github.com/Leberkas-org/GaudiHTTP/commit/51a18047683b3a3f64928c73b225017bc105757e)) +* **server:** wire MaxConcurrentStreams to QUIC and MaxRequestBufferSize to the TCP input buffer ([ffc4f88](https://github.com/Leberkas-org/GaudiHTTP/commit/ffc4f8814c9431b71d763f3cfd129bfc98783812)) +* skip H2 connection preface in server FrameDecoder + fix client ActorSystem setup ([5b8736b](https://github.com/Leberkas-org/GaudiHTTP/commit/5b8736b47d1e954a91a949eec3688850950181b8)) +* **tcp:** update submodule with concurrent PipeWriter access fix ([ef32fea](https://github.com/Leberkas-org/GaudiHTTP/commit/ef32fea181f593dfd1f901ef352b5fba5e0e9e59)) +* **test:** Disable parallel test collections ([0dae2a3](https://github.com/Leberkas-org/GaudiHTTP/commit/0dae2a3e7837e005a2384c6fe19bca53a90362fa)) +* **test:** H10 RequestCompressionSpec must accumulate multi-chunk requests ([9456ce7](https://github.com/Leberkas-org/GaudiHTTP/commit/9456ce794b35d989280863cb1b00371b89b4096c)) +* **test:** make integration test infrastructure parallel-safe ([9dce6a6](https://github.com/Leberkas-org/GaudiHTTP/commit/9dce6a6be975cb850b4e056194757785f0208d3d)) +* **test:** raise client timeout in LargePayloadSpec for CI contention ([65dd73f](https://github.com/Leberkas-org/GaudiHTTP/commit/65dd73f853c9a23cde702cf545a3a0b6698331c7)) +* **test:** reduce H2 ConnectionWindowStarvation payload to prevent CI flake ([fb21883](https://github.com/Leberkas-org/GaudiHTTP/commit/fb218832b3d447bbfb984ffac9528bc6dfe321e8)) +* **tests:** adjust maxParallelThreads to 0.5x ([611e5b3](https://github.com/Leberkas-org/GaudiHTTP/commit/611e5b34bcc594ae702eed19d644491bbaa6e372)) +* **test:** tighten Trailer announcement header assertion in Http11ServerTrailerSpec ([9b2ccf0](https://github.com/Leberkas-org/GaudiHTTP/commit/9b2ccf0a428ca5c03159730bb2ba80293b146045)) +* **test:** update H1.1 stage test for 1xx forwarding behavior ([1c52d02](https://github.com/Leberkas-org/GaudiHTTP/commit/1c52d02c8b6523210bdaa79ab61ab43932b11844)) +* **test:** update Http3ServerTrailerSpec to use MultiplexedData.Rent() ([8182e5b](https://github.com/Leberkas-org/GaudiHTTP/commit/8182e5b37b0fe031f8d9a93c2625830dd6b199e8)) +* **test:** update starvation guard tests after removal ([1296649](https://github.com/Leberkas-org/GaudiHTTP/commit/12966493da2ac2f75a98789f8fafb1ad98f51d15)) + + +### Performance + +* Add Kestrel benchmarks for HttpClient ([539e99b](https://github.com/Leberkas-org/GaudiHTTP/commit/539e99b5f102ae8350626b27b582742dd1f07cfe)) +* batch HTTP/3 frame serialization into single TransportBuffer per request ([e7346bb](https://github.com/Leberkas-org/GaudiHTTP/commit/e7346bb71d46b20280b5b451e66e5bfe169e1858)) +* batch QPACK encoder instruction flushes in HTTP/3 client ([84e02d4](https://github.com/Leberkas-org/GaudiHTTP/commit/84e02d4f4fa8c44852c3f74bd1428d657d0da1e2)) +* **body:** override QueuedBodyStream.CopyToAsync to write pooled chunks directly ([032434d](https://github.com/Leberkas-org/GaudiHTTP/commit/032434d7be5ea39b0f41f72ca8281da5f449011a)) +* **body:** rent body buffers from a shared cross-thread pool ([8146ab6](https://github.com/Leberkas-org/GaudiHTTP/commit/8146ab601832c6bf7dc03cdb3ddb5c9101800ed7)) +* **client:** avoid CreateLinkedTokenSource when only caller token is cancelable ([0ce8fc3](https://github.com/Leberkas-org/GaudiHTTP/commit/0ce8fc38e1eba2b50ebfba48acbf11071289b762)) +* **client:** dispose the channel-path default-timeout source on completion ([3d99950](https://github.com/Leberkas-org/GaudiHTTP/commit/3d999505ecb42e7b0b9677c322f36499c02b8a1e)) +* **client:** remove .Async() boundary from EndpointDispatchStage ([f4a1bb4](https://github.com/Leberkas-org/GaudiHTTP/commit/f4a1bb4d9e2e5792b4dee441784fe442fa61daa4)) +* **client:** replace ConcurrentStack pools with ObjectPool in client path ([f070894](https://github.com/Leberkas-org/GaudiHTTP/commit/f070894443ebabb936d493f03657c3fe145f0e8a)) +* coalesce queued outbound TransportData writes into single buffer ([cdaf83b](https://github.com/Leberkas-org/GaudiHTTP/commit/cdaf83b0f35fbcc2e1bc1b8777b2ff0349009d6f)) +* direct-push bypass and pre-sized queues in HttpConnectionStageLogic ([758300f](https://github.com/Leberkas-org/GaudiHTTP/commit/758300fab2ac39fa0ae4771ee4f2e7d4d3c8d12a)) +* **h1:** coalesce buffered H1.1 response headers and body into one outbound ([40e5cb3](https://github.com/Leberkas-org/GaudiHTTP/commit/40e5cb30e37a13762cc7bc73d01ce7398eb04be1)) +* **h1:** drop per-message header-iteration allocations ([aed0f5e](https://github.com/Leberkas-org/GaudiHTTP/commit/aed0f5e2ea8a109580c10c120bc7a51e4e2399d8)) +* **h1:** scan response headers once instead of three passes ([fc29213](https://github.com/Leberkas-org/GaudiHTTP/commit/fc29213c8499ce5206560c08ecfff749fcf61034)) +* **h1:** single vectorized two-byte CRLF search in BufferSearch.FindCrlf ([7af8789](https://github.com/Leberkas-org/GaudiHTTP/commit/7af8789553b37c9cfc788d611d58457c94894df0)) +* **h1:** single-value header fast paths drop per-message allocations ([ca30605](https://github.com/Leberkas-org/GaudiHTTP/commit/ca306058bd0f319592a88006e8b3f450d9f05192)) +* **h1:** write pre-encoded u8 version bytes in the request line ([6735d94](https://github.com/Leberkas-org/GaudiHTTP/commit/6735d9470c67d6d7b0f72184787205543b9aee82)) +* **h2-server:** batch DATA frames into single TransportBuffer ([01dac31](https://github.com/Leberkas-org/GaudiHTTP/commit/01dac31e557cfedadc61e8385f2aa64047d57d64)) +* **h2-server:** defer UpgradeToPipe for buffered async handlers ([6d7d06d](https://github.com/Leberkas-org/GaudiHTTP/commit/6d7d06d2afb0eb78b9504fb5701164b99c435264)) +* **h2-server:** lazy Pipe upgrade on explicit write/flush instead of eager ([9e54ccc](https://github.com/Leberkas-org/GaudiHTTP/commit/9e54ccc261a210fc51b230d8f9b15e1844053bf6)) +* **h2,h3:** add per-connection HeaderNameCache for HPACK/QPACK decoding ([ddac45e](https://github.com/Leberkas-org/GaudiHTTP/commit/ddac45e61d2c4f6e32827f5b955486b37842d3ee)) +* **h2,h3:** sync fast-path for body drain reads, remove .AsTask() allocations ([fb19fd0](https://github.com/Leberkas-org/GaudiHTTP/commit/fb19fd0583bd73b41e30c0f9dbd050632a799a11)) +* **h2:** FrameDecoder.Decode returns its reused frame list (no per-read array alloc) ([2cd841b](https://github.com/Leberkas-org/GaudiHTTP/commit/2cd841ba99beb9f613941ae9ec137bcee4c384be)) +* **h2:** iterate stream windows in place on SETTINGS window-size change ([fbf8897](https://github.com/Leberkas-org/GaudiHTTP/commit/fbf88970173a2f881561202f1da1fb0f55819c3a)) +* **h3:** batch DATA frames into single TransportBuffer (match H2 pattern) ([e954bb4](https://github.com/Leberkas-org/GaudiHTTP/commit/e954bb4afcad20041c6f00c114ac114bb68921f6)) +* **h3:** cache QPACK encode buffer across Encode() calls ([1ff7130](https://github.com/Leberkas-org/GaudiHTTP/commit/1ff7130818e824abe8230e56e1ccbc20c04afacb)) +* **h3:** decode inbound frames zero-copy from the transport buffer ([1171012](https://github.com/Leberkas-org/GaudiHTTP/commit/11710123dd96f7155ed673f1100de52861c6529d)) +* **h3:** eliminate timer key strings, skip LinkedCTS, deduplicate correlation map ([1a054a1](https://github.com/Leberkas-org/GaudiHTTP/commit/1a054a1a72797c3337796ea573c08e50ad879b1b)) +* **h3:** pool FrameDecoder and rent StreamState from pool in server ([49b3032](https://github.com/Leberkas-org/GaudiHTTP/commit/49b303219df20dee3155ab3880a1b183f8b96b1e)) +* **h3:** pool MultiplexedData like TransportData (ObjectPool<256>) ([7e72c9a](https://github.com/Leberkas-org/GaudiHTTP/commit/7e72c9a128939ea7cd24338c56de809e8d352711)) +* **h3:** pre-compute QPACK static table name byte lengths and encoded sizes ([1544580](https://github.com/Leberkas-org/GaudiHTTP/commit/15445808d5083d470fcecd2957993e53d1af96be)) +* **h3:** reduce QUIC pipe MinimumSegmentSize from 16KB to 4KB ([35e45fa](https://github.com/Leberkas-org/GaudiHTTP/commit/35e45fa134839650083576e10c36a8a78ca892fb)) +* **h3:** remove 4 allocating dead-code methods from H3 production pathr ([9e8d511](https://github.com/Leberkas-org/GaudiHTTP/commit/9e8d511763a0e42c072882e4dc711ef5ab5a0636)) +* **h3:** reuse HeaderEncodingEntry[] array in QpackEncoder.PlanEncodings ([5903b56](https://github.com/Leberkas-org/GaudiHTTP/commit/5903b5649c2cac58a3ba6f94535d60a2a4382284)) +* **h3:** reuse QPACK encode buffer in Http3ServerEncoder ([09bf2db](https://github.com/Leberkas-org/GaudiHTTP/commit/09bf2db428c13b3f94695394a85e7a988da6d76b)) +* **h3:** reuse QpackInstructionDecoder in ProcessDecoderInstructions ([7347319](https://github.com/Leberkas-org/GaudiHTTP/commit/7347319161804ba725f85fa6d836843508edcf07)) +* **hpack:** decode Huffman over a flat struct-array tree ([8feb26b](https://github.com/Leberkas-org/GaudiHTTP/commit/8feb26b0a7040631f3b4500b250bbf1df71d6174)) +* **hpack:** reuse computed UTF-8 byte lengths when adding to the dynamic table ([c666294](https://github.com/Leberkas-org/GaudiHTTP/commit/c666294d5ee4262123db3c6eafce17ba1fda87c4)) +* **http11:** build request headers once and rent exact-size buffer ([9983d41](https://github.com/Leberkas-org/GaudiHTTP/commit/9983d4107cab328be144a5eacab88d2226b5f088)) +* increase H3 StreamState pool 16→256, reduce encoder buffer 8K→4K ([7585b11](https://github.com/Leberkas-org/GaudiHTTP/commit/7585b1158f4d18f5c194d83b9a18ac9f55849c0b)) +* pass sizeHint to GetMemory() + sync body read bypass for H10 server ([4b65fb3](https://github.com/Leberkas-org/GaudiHTTP/commit/4b65fb3c864eaae98885b49d709ee33d7198400a)) +* pool QueuedBodyReader per-connection for H2/H3 request bodies ([23ba3c0](https://github.com/Leberkas-org/GaudiHTTP/commit/23ba3c0119d7ce3263330936eb98e234171c768e)) +* pool TransportData wrappers + convert PipeTo messages to readonly record structs ([f27b895](https://github.com/Leberkas-org/GaudiHTTP/commit/f27b895b00839e3a8064f6fe9b9b803491540f82)) +* **protocol:** drop per-response decode allocations (reason phrase + header value) ([22ecdd1](https://github.com/Leberkas-org/GaudiHTTP/commit/22ecdd17adfc7d1caf41a1a9bfdd934b1a3cad58)) +* **protocol:** rent body chunks from a cross-thread ArrayPool ([e65bf75](https://github.com/Leberkas-org/GaudiHTTP/commit/e65bf75a76294f12c139508e469d8f332652bff7)) +* **quic:** adaptive read buffer 4KB-128KB for QUIC direct reads ([a8e25f6](https://github.com/Leberkas-org/GaudiHTTP/commit/a8e25f6e996acfaffe3b6830e315000c2bdf5116)) +* **quic:** bump servus.akka — direct-read + stream-type ordering fix ([e456760](https://github.com/Leberkas-org/GaudiHTTP/commit/e456760b1b0ab74f1889f5325c409aae31660093)) +* **quic:** cache read failure/success lambdas and body pump delegates ([6d332e2](https://github.com/Leberkas-org/GaudiHTTP/commit/6d332e2b65eafd0671647900b4d3d91f5df77073)) +* **quic:** defer PipeWriter flush until batch complete (write coalescing) ([5c5f4e9](https://github.com/Leberkas-org/GaudiHTTP/commit/5c5f4e9a3fd01b285eff51e6b9c7cf0b11bb071d)) +* quick-win allocation reductions across client and server ([deb2530](https://github.com/Leberkas-org/GaudiHTTP/commit/deb25307b6b1a6237a3e070fa650271cfbce972f)) +* **quic:** pool QuicStreamState objects (ObjectPool<256>) ([fbe0375](https://github.com/Leberkas-org/GaudiHTTP/commit/fbe0375718f2349e576eafe7db34d3dd58d9a50f)) +* reduce QueuedBodyReader default capacity from 64 to 8 ([1988ddb](https://github.com/Leberkas-org/GaudiHTTP/commit/1988ddb89b1b7f7ec583a0d404664bd21832d501)) +* replace H2/H3 pseudo-header Dictionary with typed fields ([9fbf854](https://github.com/Leberkas-org/GaudiHTTP/commit/9fbf85437319ed328c01761c534ee2adebc02d8b)) +* replace per-byte branching with lookup tables + H3 sawDate flag ([372d623](https://github.com/Leberkas-org/GaudiHTTP/commit/372d623f3d5aef6f5752fd034670d5583f88bed6)) +* replace QPACK per-decode MemoryPool.Rent with per-decoder scratch buffer ([c637773](https://github.com/Leberkas-org/GaudiHTTP/commit/c6377731fc0623d066f9a4dcb718dc29db4b8a87)) +* reuse content-header lists across pool cycles + Servus 0.34.1 ([7367de0](https://github.com/Leberkas-org/GaudiHTTP/commit/7367de0adda32140e87d40c0dce736d1709ec41e)) +* reuse HeaderCollection in H1.1 encoder, increase benchmark pipeline depth ([ed65553](https://github.com/Leberkas-org/GaudiHTTP/commit/ed65553ffe45f660631addb6c2bf418a8ac06e72)) +* right-size body drain buffers using content-length ([5e54fe3](https://github.com/Leberkas-org/GaudiHTTP/commit/5e54fe3c6ff1d648790cba7e221c97e999820049)) +* round 3 quick wins — pre-encode, scratch buffers, O(1) lookups ([61be7d5](https://github.com/Leberkas-org/GaudiHTTP/commit/61be7d5a6b15acf6496799754d61d689868062db)) +* round 4 — lock-free pending list, span-based parsing, pre-baked headers ([50918ff](https://github.com/Leberkas-org/GaudiHTTP/commit/50918ff2b3d9fa61e9552045434fcd586d593c90)) +* **server:** buffered body fast path for all protocol SMs ([8823dec](https://github.com/Leberkas-org/GaudiHTTP/commit/8823dec035f3174ad2fdb264ba431c6565d3cace)) +* **server:** cache send delegate and pool PassthroughFramingEncoder ([b29c23b](https://github.com/Leberkas-org/GaudiHTTP/commit/b29c23bb7002b351de635ca1b84cba0ce5e0ab9c)) +* **server:** cut per-request allocations on the H1.1 hot path ([05cbf9e](https://github.com/Leberkas-org/GaudiHTTP/commit/05cbf9e65f8c214c736b45a7f45454a58eed6fd7)) +* **server:** deduplicate data-rate timer scheduling and reuse response pipe writer ([0c0e157](https://github.com/Leberkas-org/GaudiHTTP/commit/0c0e15776b8f6a0eaef40b3bfdf5c4786888d22f)) +* **server:** dual-mode ResponsePipeWriter with lazy Pipe upgrade ([721c992](https://github.com/Leberkas-org/GaudiHTTP/commit/721c9928ae9935cc24c321d4d11028aa0bb20e39)) +* **server:** eliminate per-response pipe lock on the buffered write path ([6104e05](https://github.com/Leberkas-org/GaudiHTTP/commit/6104e0535200ec2d56677576f9bb8bd26b2b934b)) +* **server:** eliminate SetOnStarting closure allocation ([0ea3214](https://github.com/Leberkas-org/GaudiHTTP/commit/0ea3214607db8a258a4497ac94d29c1975c3154b)) +* **server:** fix QUIC stream leak, reduce allocations, improve H2 throughput ([03a6d9c](https://github.com/Leberkas-org/GaudiHTTP/commit/03a6d9c9b8f5e0481c787c832ffe4c4a3f3df402)) +* **server:** H2 HPACK header block cache for repeated response patterns ([29bf831](https://github.com/Leberkas-org/GaudiHTTP/commit/29bf83147f969fb44bec034553e12df31898ce0a)) +* **server:** intern common request targets to avoid per-request string alloc ([54d1355](https://github.com/Leberkas-org/GaudiHTTP/commit/54d135580f1adc83a59019ae1915d9f2c6963e94)) +* **server:** pool ArrayBufferWriter<byte> for response body buffering ([3db8272](https://github.com/Leberkas-org/GaudiHTTP/commit/3db8272f2b3192579edfa53faacbe3aef979022e)) +* **server:** pool H2 request feature + reduce QUIC receive buffer 64K→4K ([813a730](https://github.com/Leberkas-org/GaudiHTTP/commit/813a7300f413cb8eaf8e9de897a8b9c8f9aa21e3)) +* **server:** pool the feature collection per connection ([a9852ca](https://github.com/Leberkas-org/GaudiHTTP/commit/a9852ca09264762cba3e31f8255d486e03652257)) +* **server:** pool TurboHttpRequestFeature on the recycled feature-collection path ([ab291ed](https://github.com/Leberkas-org/GaudiHTTP/commit/ab291eda642eb2b29ce8341211a61807f69f822e)) +* **server:** pre-bake H1.x status lines as static byte tables ([22e192b](https://github.com/Leberkas-org/GaudiHTTP/commit/22e192b71739666f6b050d5e26c843f95e9bfb78)) +* **server:** recycle FeatureCollection after response body consumption ([6a06a89](https://github.com/Leberkas-org/GaudiHTTP/commit/6a06a89e6fec7f3a527cf0cac3c3c54edd50b69b)) +* **server:** remove TryCoalesceOutbound memcpy — writev handles scatter natively ([471c661](https://github.com/Leberkas-org/GaudiHTTP/commit/471c66107e22127f71a234966bc32f1a244b9a1b)) +* **server:** replace LINQ hot-path allocations in H1.1 state machine ([274a48e](https://github.com/Leberkas-org/GaudiHTTP/commit/274a48e2ae6c6620c3019b7458f4ead6fd1d07a9)) +* **server:** replace per-encode MemoryPool.Rent with scratch buffer in H2 encoder ([b88e5d9](https://github.com/Leberkas-org/GaudiHTTP/commit/b88e5d9261b816df85cacc5cf4f5c970e46da42f)) +* **server:** reuse the ASP.NET HttpContext per connection via IHostContextContainer ([7da9755](https://github.com/Leberkas-org/GaudiHTTP/commit/7da9755f02eb033a57a9f6de3325a84470b78a3f)) +* **server:** short-circuit body classification for no-body requests ([596e2da](https://github.com/Leberkas-org/GaudiHTTP/commit/596e2da0227bd941d23fbe6b8f9819f357695cec)) +* **server:** synchronous body read bypass for pre-buffered responses ([ea52a12](https://github.com/Leberkas-org/GaudiHTTP/commit/ea52a129638688772fe0991a5ea8c0fed1021c8c)) +* **server:** tune connection materializer input buffer to 32/128 ([a5995d4](https://github.com/Leberkas-org/GaudiHTTP/commit/a5995d4ee222de76d991483e48390c2acd0b95ce)) +* **servus.akka:** LIFO connection pool for warmer TCP reuse ([7539ff5](https://github.com/Leberkas-org/GaudiHTTP/commit/7539ff5e7efd7d53f47b6b2dbc53fd2b27eb3bac)) +* **servus.akka:** QUIC streams use PipeReader/Writer.Create instead of Task.Run loops ([b3b340a](https://github.com/Leberkas-org/GaudiHTTP/commit/b3b340ae05ac4eaf023a211c6687f7ce4c0e9638)) +* **tcp:** update submodule with server transport alignment ([a16fd7f](https://github.com/Leberkas-org/GaudiHTTP/commit/a16fd7f777737c1561ac1f676297e67290efc1ed)) +* **tcp:** update submodule with write coalescing ([e1b512f](https://github.com/Leberkas-org/GaudiHTTP/commit/e1b512fe79d069c97e70014c73dabfa35cac5adc)) +* **transport:** bounded sync fast-path for PipeReader.ReadAsync ([3830cf4](https://github.com/Leberkas-org/GaudiHTTP/commit/3830cf42048138bc59e378238b685eb6212c9b63)) + + +### Documentation + +* align option references and client API docs with current code ([4c3f186](https://github.com/Leberkas-org/GaudiHTTP/commit/4c3f186ff907e970b03d5f4601da6b889e0e0768)) +* **architecture:** update engine and pipeline descriptions ([e5331e7](https://github.com/Leberkas-org/GaudiHTTP/commit/e5331e7dc5f5d490db740761fed58d9c6f0da110)) +* **client:** correct namespaces, option defaults, and examples ([55cadd5](https://github.com/Leberkas-org/GaudiHTTP/commit/55cadd5746e02af86add524d6f41e45596d14423)) +* **diagrams:** fix LikeC4 client pipeline order and component metadata ([3e3e6e2](https://github.com/Leberkas-org/GaudiHTTP/commit/3e3e6e21c6b58202a7717b3fa080332a903bff30)) +* escape angle brackets in generic types to fix Vue parser ([88261dc](https://github.com/Leberkas-org/GaudiHTTP/commit/88261dc11a08120f4a9fc36d7f1c6d98498929e4)) +* fix old docs ([e025e18](https://github.com/Leberkas-org/GaudiHTTP/commit/e025e18155e819d8f14dee4ae995a4812e1ce850)) +* fix stale integration-test commands in CLAUDE.md ([fa76bf9](https://github.com/Leberkas-org/GaudiHTTP/commit/fa76bf9ad91225ef0d8746836570a7d5efa3a3e4)) +* fix table rendering in installation and aspnet-core pages ([0004b9c](https://github.com/Leberkas-org/GaudiHTTP/commit/0004b9c06c3ff9b08a7b10e04c8cbe8cf7a7722b)) +* **notes:** document H2 response truncation race with repro steps ([0db412f](https://github.com/Leberkas-org/GaudiHTTP/commit/0db412f39a1003004cda8f642eb6e196bed7d1c1)) +* replace stale ConnectionStage references with ConnectionActor ([da40648](https://github.com/Leberkas-org/GaudiHTTP/commit/da4064807100d9ffdbf878852130efaaf050dbd1)) +* restructure server documentation for IServer architecture ([cc3b2b5](https://github.com/Leberkas-org/GaudiHTTP/commit/cc3b2b5fa77e779a1f931a4633c8bc269398c988)) +* **server:** align option reference with code, fix stale architecture ([9043b06](https://github.com/Leberkas-org/GaudiHTTP/commit/9043b06048a391ec927f5e558a1a53bbd60692ed)) +* **server:** reflect ASP.NET Core IServer architecture and new options ([7b7c233](https://github.com/Leberkas-org/GaudiHTTP/commit/7b7c23347abfb51c97cb64664f9e7877dc8af9f5)) +* **site:** exclude internal docs from build, fix meta description, wire orphan pages ([1906807](https://github.com/Leberkas-org/GaudiHTTP/commit/1906807ec376951456ba6045f16a730a15e42b96)) +* Update benchmark context and use cases ([42d0f59](https://github.com/Leberkas-org/GaudiHTTP/commit/42d0f59601b5de6ec15c5f0f2f89ba7dbd1b117e)) +* update CLAUDE.md decode-buffer note to match FrameDecoder.Decode contract ([aa25817](https://github.com/Leberkas-org/GaudiHTTP/commit/aa2581707ecd11d18c48d294ac7d71a50b8b6ad3)) +* update CLAUDE.md for IServer pipeline architecture ([09ea765](https://github.com/Leberkas-org/GaudiHTTP/commit/09ea7651e722f58cc4802ca390f058286539b535)) +* update config docs ([b7b751f](https://github.com/Leberkas-org/GaudiHTTP/commit/b7b751fd2a9ac102fda4e43a755b9a3d5d12bcff)) +* update landing page and scenarios for IServer architecture ([3dc1919](https://github.com/Leberkas-org/GaudiHTTP/commit/3dc1919247b842d318c56da562a9cd6f66d63d6e)) + + +### Refactoring + +* **bench:** remove Binkraken benchmarks entirely ([fe255b2](https://github.com/Leberkas-org/GaudiHTTP/commit/fe255b2c2a7f71998e66a4efa3cb6632124555ff)) +* **body:** rewrite FlowControlledBodyPump on BodyPumpBase ([2c575a0](https://github.com/Leberkas-org/GaudiHTTP/commit/2c575a05f26dfbd706b97728bd974d837ecec67a)) +* **body:** rewrite MultiplexedBodyPump on BodyPumpBase ([539568e](https://github.com/Leberkas-org/GaudiHTTP/commit/539568eb4e5703a78b625132f389ba62a1b1f497)) +* **body:** rewrite SerialBodyPump on BodyPumpBase ([5316c41](https://github.com/Leberkas-org/GaudiHTTP/commit/5316c412900cd508af990db5057c0f663241f360)) +* **body:** simplify pump architecture ([ede4d6f](https://github.com/Leberkas-org/GaudiHTTP/commit/ede4d6fed3177b01c6f96d9102b0b65278000ddc)) +* **client:** drop Validate from client option records ([ccf32c2](https://github.com/Leberkas-org/GaudiHTTP/commit/ccf32c2df261ee6ea8a5afebe65f525712c5daf8)) +* **client:** flatten client protocol options and project via extensions ([b0c4e1f](https://github.com/Leberkas-org/GaudiHTTP/commit/b0c4e1ff86e689d44fad72fb46a66ecc806f9461)) +* **client:** move H1.1 MaxPipelineDepth out of decoder options ([7e47256](https://github.com/Leberkas-org/GaudiHTTP/commit/7e47256323f340c68253ded0e692c49005f27718)) +* **client:** remove dead dispatcher-sizing computation ([9fd702c](https://github.com/Leberkas-org/GaudiHTTP/commit/9fd702ca63bcc896d2b88ca7f80eaaa558aa0a75)) +* **codec:** bundle body encoder/decoder factory params into options records ([e75fce7](https://github.com/Leberkas-org/GaudiHTTP/commit/e75fce7245cd210c68bb2a03b43761e83fe6ea56)) +* **codec:** project BodyDecoderOptions via ToBodyDecoderOptions extension ([d0bd68e](https://github.com/Leberkas-org/GaudiHTTP/commit/d0bd68e9e43587ba0eca6606ea4d072be7161c80)) +* **e2e:** add protocol collections for partial runs, skip timeout tests ([8a95029](https://github.com/Leberkas-org/GaudiHTTP/commit/8a9502903aa32d7ff6ea63843a84324a5a9090e5)) +* exclude integration server tests pending IServer rewrite ([c743555](https://github.com/Leberkas-org/GaudiHTTP/commit/c743555f1f24887e66275444920da39e499c6035)) +* **h10:** use SerialBodyPump for known Content-Length, retain BufferedBodyWriter for unknown ([e2bb318](https://github.com/Leberkas-org/GaudiHTTP/commit/e2bb318fd973031f329e0111bca18e59c6ca1794)) +* **h11:** replace push-based body drain with SerialBodyPump ([26cb252](https://github.com/Leberkas-org/GaudiHTTP/commit/26cb2520b05f46da5848c283d2e81ce1188de2ff)) +* **h1x:** eliminate writer layer, use ConnectionPoolContext + ChunkedFramingHelper ([0ba8c0b](https://github.com/Leberkas-org/GaudiHTTP/commit/0ba8c0b66ffe39209f9ea443a0b448f023c6d888)) +* **h2,h3:** migrate to FlowControlledBodyPump/MultiplexedBodyPump with generic targets ([82e5feb](https://github.com/Leberkas-org/GaudiHTTP/commit/82e5febd3b9edad63b49229b8a5e324b41cc593d)) +* **h2:** replace push-based body drain with BodyDrainScheduler ([1d3b371](https://github.com/Leberkas-org/GaudiHTTP/commit/1d3b3719a0b0d096199aa436130b8a59c1993bd1)) +* **h3:** replace push-based body drain with MultiplexedBodyPump ([34f92da](https://github.com/Leberkas-org/GaudiHTTP/commit/34f92da05f03877c9571edaef8ad9da1bfc886ab)) +* **http2:** move RttEstimator ownership into FlowController ([db3e376](https://github.com/Leberkas-org/GaudiHTTP/commit/db3e3761158789b7914d36919e650ef11fbf9f47)) +* **http2:** Simplify session manager constructor ([5bf8b84](https://github.com/Leberkas-org/GaudiHTTP/commit/5bf8b848a26e58fba1fec45b6a675607ca5cce76)) +* **protocol:** streamline body encoders/decoders and content classification ([a1a1a7e](https://github.com/Leberkas-org/GaudiHTTP/commit/a1a1a7e44438ddff1f3cec43abc95b471926c96c)) +* Remove unused MemoryPool reference ([e56b38d](https://github.com/Leberkas-org/GaudiHTTP/commit/e56b38df69493f202352508a3bbe7ecf3bb0acc5)) +* rename instrumentation extensions ([28c8c07](https://github.com/Leberkas-org/GaudiHTTP/commit/28c8c07f72c1470533c90ab09fce0537190d5d84)) +* replace local Servus.Akka with git submodule ([7bd8566](https://github.com/Leberkas-org/GaudiHTTP/commit/7bd856673114389b81e3f70bd2932f5752ca514c)) +* **server:** FairShareAdmissionStage + ServerPipeline use actor-based coordinator ([67f875c](https://github.com/Leberkas-org/GaudiHTTP/commit/67f875ce1b8caea96f375747f9f8472152b902ad)) +* **server:** migrate H1.0/H1.1 data-rate clock to TimeProvider ([8a9b5b0](https://github.com/Leberkas-org/GaudiHTTP/commit/8a9b5b0a161d8d214f869f1f8823f385824a78d2)) +* **server:** move DynamicHub to shared Streams.Stages namespace ([6f97dc2](https://github.com/Leberkas-org/GaudiHTTP/commit/6f97dc2d7e27619b056f19f81b311ad5098c058d)) +* **server:** project BodyEncoderOptions via ToBodyEncoderOptions extension ([af232d6](https://github.com/Leberkas-org/GaudiHTTP/commit/af232d60b9e4a2d8a6e9a444ff4dd9371a850ce8)) +* **server:** remove unused form and header context abstractions ([22c84cc](https://github.com/Leberkas-org/GaudiHTTP/commit/22c84ccc2c153537c7077a77fe92cc0aabf7e88c)) +* **server:** rewrite ListenerActor to spawn ConnectionActor per connection ([638a946](https://github.com/Leberkas-org/GaudiHTTP/commit/638a946a7112b87675bb0aebc31ce1605681ab7d)) +* **server:** wire ServerPipeline, remove ResponseDispatcherHub ([0667861](https://github.com/Leberkas-org/GaudiHTTP/commit/0667861e6db11342b1b9bf8c6e91ac46e967dff3)) +* **servus:** convert backing fields to auto-properties across transport and IO stages ([9440aca](https://github.com/Leberkas-org/GaudiHTTP/commit/9440acaee4f911b111a0ec89c8e18ef5113ec62f)) +* simplify constructor parameter passing ([86363a4](https://github.com/Leberkas-org/GaudiHTTP/commit/86363a48a16ad26ce42ce4891f5ef880e2210fd0)) +* **transport:** inject TimeProvider into connection pool leases for deterministic eviction ([d878aa2](https://github.com/Leberkas-org/GaudiHTTP/commit/d878aa23b9ed5f7f543e035f88a758b99f74f457)) +* Use lowercase property names in ProtocolVariant ([d5d6eef](https://github.com/Leberkas-org/GaudiHTTP/commit/d5d6eef2912c6d7d496f593112273fd07de3361e)) + +## Changelog