--- snapshot-1790924832+++ snapshot-1791011234@@ -2,7 +2,11 @@
Release notes from caddy
-2026-09-30T22:22:43Z tag:github.com,2008:Repository/29207621/v2.11.6 2026-10-01T19:02:27Z
+2026-10-03T05:25:14Z tag:github.com,2008:Repository/29207621/v2.11.7 2026-10-03T05:58:33Z
+
+v2.11.7
+
+
This patch release fixes regressions from 2.11.6, including a crash when proxying over HTTP/2 and streams that were cut off after a minute. If you're on 2.11.6, we recommend upgrading. It also adds support for the brand new Incremental header field (RFC 10036).
Huge thank you to our sponsors for keeping the project alive with resources, and for our maintainers who triage and assist tirelessly in this relentless new age of AI.
Highlights
-
Fixed: crash and dropped streams caused by the new idle timeouts. 2.11.6 introduced default idle read/write timeouts, which caused some problems:
-
In 2.11.6, the request body's idle deadline could outlive the handler that set it:
- Over HTTP/2, Caddy could panic with a nil pointer dereference when the reverse proxy was still reading a request body after the handler had returned. (#8101)
- Over HTTP/1.1, streaming responses to requests with a body, such as SSE clients that open the stream with a
POST, were cut off exactly 60 seconds after the body was read. (#8103)
Both are fixed in #8107. Thanks @steadytao!
-
Over HTTP/2, streaming responses that paused between writes for longer than write_idle (1 minute by default), like quiet SSE streams, were reset with a stream error. As documented, only a write that stalls should count. Thanks @WeidiDeng! (#8118, #8119)
-
Fixed: placeholders for missing cookies are empty again. Since 2.11.6, places that keep unknown placeholders as written, like respond headers, would output {http.request.cookie.*} literally when the cookie wasn't in the request. The same happened to {http.request.tls.*} on plain HTTP requests. Both are empty again. Thanks @steadytao! (#8019)
-
New: support for the Incremental header field (RFC 10036). It's the standard replacement for NGINX's proprietary X-Accel-Buffering header. If an upstream response has Incremental: ?1, reverse_proxy forwards it immediately, the same as flush_interval -1, and encode streams it instead of holding it back. Great for Mercure, SSE and other streaming apps.
- If the
request_buffers or response_buffers options would prevent incremental forwarding, Caddy responds with 501 Not Implemented instead of silently buffering, as the RFC requires. - The new
proxy_status_name option adds a Proxy-Status header to those responses, explaining why the message was refused.
Thanks @dunglas! (#8020)
-
Faster TLS handshakes: When nothing subscribes to certificate events and debug logging is off, CertMagic no longer builds event data for every handshake. Certificate lookup per handshake is about twice as fast, with 10 allocations instead of 15. Thanks @u5surf! (#8010)
-
Unix sockets: When a reload moves a listener (or the admin endpoint) off a Unix socket, the old socket now closes right away and its file is removed. Before, clients connecting to the old path would hang until the next garbage collection, about 2 minutes later. Thanks @littfed! (#8061)
-
Headers handler: Multiple Set-Cookie values in a JSON config's set are now sent as separate header fields, instead of being joined with commas into one field that clients can't parse. Thanks @Indra55! (#8080)
-
caddy fmt no longer deletes an opening brace at the very end of the input. Thanks @n0liu! (#8047)
What's Changed
- events: tell CertMagic which events are worth emitting by @u5surf in #8010
- feat: implement the Incremental header field (RFC 10036) by @dunglas in #8020
- caddyfile: Keep an opening brace that ends the input by @n0liu in #8047
- listeners: close unix socket immediately and unlink file on reload by @littfed in #8061
- reverseproxy: stabilise half-close test by @steadytao in #8049
- caddyhttp: keep absent optional placeholders empty by @steadytao in #8019
- headers: Preserve separate Set-Cookie values by @Indra55 in #8080
- caddyhttp: end request-body deadline ownership with handler by @steadytao in #8107
- timeouts: fix idle writer terminate h2 response writers between writes by @WeidiDeng in #8119
New Contributors
Full Changelog: v2.11.6...v2.11.7
github-actions[bot] tag:github.com,2008:Repository/29207621/v2.11.6 2026-10-01T19:02:27Z
v2.11.6
@@ -38,8 +42,4 @@
v2.11.0-beta.1
-Welcome to the beta version of 2.11. This is the first release made by our new, automated release process developed by @mohammed90 that was carried out and approved entirely by our maintainer team (together with @francislavoie) without intervention from @mholt, the original Caddy author. This represents a significant step forward in project autonomy and growth, ensuring that the project's stability and longevity is not reliant upon a single person.
This first beta release was primarily to test our new workflow, so there's still a couple things left to do before the stable release.
Featured here are numerous, mostly minor, bug fixes and enhancements, mostly affecting edge cases or niche corners of the software; for example, proxying H2C or HTTP/3, obscure Caddyfile scenarios, and named socket activation.
Some notable changes:
- SIGUSR1 can be used to reload configuration only if it was loaded from a file using the CLI, and not changed by the API since then.
- We replaced "lumberjack", our logging library, with a fork "timberjack" that supports the oft-requested time-rolling ability.
- Caddy can now bind listeners with named socket activation.
Before the final release, we expect ECH key rotation to be enabled as well as a few other patches/features
Thank you to our sponsors and contributors for all that you do!
Changelog
- 5473eb9 encode: fix response corruption when handle_errors is used (#7235)
- 13a4ec7 basicauth: Implement argon2id (#7186)
- 6d90c77 build(deps): bump github.com/slackhq/nebula from 1.9.5 to 1.9.7 (#7315)
- eead249 build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#7355)
- 2d0f3f8 build(deps): bump the actions-deps group with 5 updates (#7237)
- afbdcec build(deps): bump the actions-deps group with 8 updates (#7284)
- cd1c203 build(deps): bump the all-updates group across 1 directory with 2 updates (#7307)
- 39357d3 build(deps): bump the all-updates group with 17 updates (#7236)
- 786d537 build(deps): bump the all-updates group with 3 updates (#7376)
- 07d2aaf build(deps): bump the all-updates group with 4 updates (#7333)
- 0ba8786 caddyfile: Allow
block to do nothing if nothing passed to import (#7206) - 92c8bc7 caddyfile: fix nested quotes formatted incorrectly by fmt (#7045)
- 6d73d85 caddyfile: prevent adding trailing space on line before env variable (#7215)
- d7185fd caddyhttp: Add
trusted_proxies_unix for trusting unix socket X-Forwarded-* headers (#7265) - de6b780 caddyhttp: Add server options
keepalive_idle and keepalive_count (#7298) - e0a8f95 caddyhttp: Normalize (lowercase) {label.N} placeholders
- 5e29536 caddyhttp: add replacer placeholders for escaped values (#7181)
- 8285eba caddyhttp: allow customizing the Server header (#7338)
- bc0e184 caddyhttp: omit unnecessary reassignment (#7276)
- 3553cfb caddyhttp: remove redundant middleware next copy (#7217)
- 1ce2a13 caddyhttp: wrap accepted connection to suppress tls.ConnectionState (#7247)
- d9cc24f caddypki: Disable internal auto-CA when auto_https is disabled (fix #7211) (#7238)
- 1e82f96 caddypki: check intermediate lifetime to actual root cert lifetime (#7272)
- 38848f7 caddytls: Allow disabling distributed solving (except http-01)
- ddec183 caddytls: correct documentation of
LeafFolderLoader (#7327) - f5c3094 cmd: prevent commas in header values from being split (#7268)
- 65e0ddc core: Reloading with
SIGUSR1 if config never changed via admin (#7258) - b3f2db2 core: custom slog handlers for modules (log contextual data) (#7346)
- b2ab419 core: use reflect.TypeFor to check for encoding/json.RawMessage (#7274)
- 806fef8 encode: add graphql-response header to list (#7214)
- 2cb4267 encode: modernize, replace HasSuffix+TrimSuffix with CutSuffix (#7357)
- b462615 fileserver: set Content-Length for precompressed files (#7251)
- 0c8798f go.mod: update quic-go to v0.54.1 (#7273)
- 3c003de httpcaddyfile: Add missing DNS challenge check for
acme_dns (#7270) - 2f1d270 httpcaddyfile: Map default_bind to BindHost in globalACMEDefaults (#7278)
- a7885aa intercept: use already buffered response if possible when intercepting (#7028)
- 156ce99 listeners: Add support for named socket activation (#7243)
- 39ace45 logging: Adjustments to BufferedLog to keep logs in the correct order (#7257)
- 012b4b3 logging: Buffer the logs before config is loaded (#7245)
- 10ac7da logging: Switch from
lumberjack to timberjack, add time-rolling options (#7244) - f5f25d8 logging: fix multiple regexp filters on same field (fixes #7049) (#7061)
- 595aab8 metrics: resolve per-host inifinite cardinality (#7306)
- 57587ed refactor: use reflect.TypeFor (#7313)
- 2ec28bc reverse_proxy: use http1 for outbound tls requests with placeholder that are likely websockets (#7296)
- a6da1ac reverse_proxy: use interfaces to modify the behaviors of the transports (#7353)
- 67a9e06 reverseproxy: Fix retries for requests with bodies (#7360)
- 7fb39ec reverseproxy: Use http1.1 upgrade for websocket for extended connect of http2 and http3 (#7305)
- 8aca108 reverseproxy: do not disable keepalive if proxy protocol is used (#7300)
- abe0aca reverseproxy: set default values for keepalive if only some of them are set (#7318)
- 1e21b66 reverseproxy: use http.Protocols to handle h2c requests (#6990)
- b54e870 tracing: switch to autoexport for OpenTelemetry span exporter (#7317)
What's Changed
- caddyhttp: add replacer placeholders for escaped values by @Qusic in #7181
- AI assistance disclosure by @mholt in #7212
- caddyfile: Prevent trailing space on line before env variable - Fixes #6881 by @arpansaha13 in #7215
- add: encode header Content-Type graphql-response by @aro-lew in #7214
- caddyhttp: Removing redundant middleware next copy by @maxcelant in #7217
- build(deps): bump the all-updates group with 17 updates by @dependabot[bot] in #7236
- build(deps): bump the actions-deps group with 5 updates by @dependabot[bot] in #7237
- encode: fix response corruption when handle_errors is used by @Siomachkin in #7235
- Fix PKI creation when auto_https is disabled (#7211) by @Siomachkin in #7238
- logging: Buffer the logs before config is loaded by @francislavoie in #7245
- fileserver: set Content-Length for precompressed files by @WeidiDeng in #7251
- refactor: use WaitGroup.Go to simplify code by @mickychang9 in #7253
- caddyfile: Allow
block to do nothing if nothing passed to import by @BeeJay28 in #7206 - logging: Adjustments to BufferedLog to keep logs in the correct order by @francislavoie in #7257
- caddyhttp: Prevent commas in header values from being split in CLI commands by @gilbsgilbs in #7268
- update quic-go to v0.54.1 by @marten-seemann in #7273
- chore: ugh, lint fix... by @mohammed90 in #7275
- caddypki: check intermediate lifetime to actual root cert lifetime by @u5surf in #7272
- refactor: omit unnecessary reassignment by @asttool in #7276
- core: use reflect.TypeFor to check for encoding/json.RawMessage by @WeidiDeng in #7274
- core: Reloading with
SIGUSR1 if config never changed via admin by @francislavoie in #7258 - build(deps): bump the actions-deps group with 8 updates by @dependabot[bot] in #7284
- httpcaddyfile: Add missing DNS challenge check for
acme_dns by @rightaditya in #7270 - httpcaddyfile: Map default_bind to BindHost in globalACMEDefaults by @Monviech in #7278
- Argon2id Support for Basic Auth by @GreyXor in #7186
- update quic-go to v0.55.0 by @marten-seemann in #7288
- reverse_proxy: use http1 for outbound tls requests with placeholder t… by @WeidiDeng in #7296
- caddyhttp: Add server options
keepalive_idle and keepalive_count by @joshuamcbeth in #7298 - chore: fix some comments by @wyrapeseed in #7303
- logging: Switch from
lumberjack to timberjack, add time-rolling options by @aeris in #7244 - reverseproxy: Use http1.1 upgrade for websocket for extended connect of http2 and http3. by @tonyb486 in #7305
- caddyhttp: Add
trusted_proxies_unix for trusting unix socket X-Forwarded-* headers by @cseufert in #7265 - caddyhttp: wrap accepted connection to suppress tls.ConnectionState by @WeidiDeng in #7247
- logging: fix multiple regexp filters on same field (fixes #7049) by @S2010 in #7061
- intercept: use already buffered response if possible when intercepting by @WeidiDeng in #7028
- listeners: Add support for named socket activation by @Siomachkin in #7243
- reverseproxy: do not disable keepalive if proxy protocol is used by @WeidiDeng in #7300
- metrics: resolve per-host inifinite cardinality by @mohammed90 in #7306
- reverseproxy: use http.Protocols to handle h2c requests by @WeidiDeng in #6990
- refactor: use reflect.TypeFor by @wyrapeseed in #7313
- build(deps): bump the all-updates group across 1 directory with 2 updates by @dependabot[bot] in #7307
- build(deps): bump github.com/slackhq/nebula from 1.9.5 to 1.9.7 by @dependabot[bot] in #7315
- feat: switch to autoexport for OpenTelemetry span exporter by @PKeidel in #7317
- reverse_proxy: set default values for keepalive if only some of them are set by @WeidiDeng in #7318
- fix quote within quotes formatted incorrectly by fmt by @keystroke3 in #7045
- caddytls: correct documentation of
LeafFolderLoader by @mohammed90 in #7327 - fix golangci-lint error G602 in caddyhttp by @cdenicola in #7334
- feat: allow customizing the Server header by @dunglas in #7338
- update quic-go to v0.56.0, enable qlog for HTTP/3 by @marten-seemann in #7345
- build(deps): bump the all-updates group with 4 updates by @dependabot[bot] in #7333
- feat: custom slog handlers for modules (log contextual data) by @dunglas in #7346
- ci: implement new release flow by @mohammed90 in #7341
- reverse_proxy: use interfaces to modify the behaviors of the transports by @WeidiDeng in #7353
- build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 by @dependabot[bot] in #7355
- update quic-go to v0.57.0 by @marten-seemann in #7359
- refactor: replace HasSuffix+TrimSuffix with CutSuffix by @ledigang in #7357
- Fix retries for requests with bodies by @chebyrash in #7360
- build(deps): bump the all-updates group with 3 updates by @dependabot[bot] in #7376
- ci: escape backticks in changelogs embedded in JS by @mohammed90 in #7382
New Contributors
Full Changelog: v2.10.2...v2.11.0-beta.1
github-actions[bot] tag:github.com,2008:Repository/29207621/v2.10.2 2025-08-23T03:10:31Z
-
-v2.10.2
-
-This is a hotfix release to fix a couple critical issues from v2.10.1
What's Changed
Changelog
- 551f793 caddyfile: Fix importing nested tokens for
{block} (#7189) - 16fe83c http: Make logger first, before TLS provisioning (#7198)
- 4564261 httpcaddyfile: Fix
acme_dns regression (#7199)
New Contributors
Full Changelog: v2.10.1...v2.10.2
github-actions[bot]+Welcome to the beta version of 2.11. This is the first release made by our new, automated release process developed by @mohammed90 that was carried out and approved entirely by our maintainer team (together with @francislavoie) without intervention from @mholt, the original Caddy author. This represents a significant step forward in project autonomy and growth, ensuring that the project's stability and longevity is not reliant upon a single person.
This first beta release was primarily to test our new workflow, so there's still a couple things left to do before the stable release.
Featured here are numerous, mostly minor, bug fixes and enhancements, mostly affecting edge cases or niche corners of the software; for example, proxying H2C or HTTP/3, obscure Caddyfile scenarios, and named socket activation.
Some notable changes:
- SIGUSR1 can be used to reload configuration only if it was loaded from a file using the CLI, and not changed by the API since then.
- We replaced "lumberjack", our logging library, with a fork "timberjack" that supports the oft-requested time-rolling ability.
- Caddy can now bind listeners with named socket activation.
Before the final release, we expect ECH key rotation to be enabled as well as a few other patches/features
Thank you to our sponsors and contributors for all that you do!
Changelog
- 5473eb9 encode: fix response corruption when handle_errors is used (#7235)
- 13a4ec7 basicauth: Implement argon2id (#7186)
- 6d90c77 build(deps): bump github.com/slackhq/nebula from 1.9.5 to 1.9.7 (#7315)
- eead249 build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#7355)
- 2d0f3f8 build(deps): bump the actions-deps group with 5 updates (#7237)
- afbdcec build(deps): bump the actions-deps group with 8 updates (#7284)
- cd1c203 build(deps): bump the all-updates group across 1 directory with 2 updates (#7307)
- 39357d3 build(deps): bump the all-updates group with 17 updates (#7236)
- 786d537 build(deps): bump the all-updates group with 3 updates (#7376)
- 07d2aaf build(deps): bump the all-updates group with 4 updates (#7333)
- 0ba8786 caddyfile: Allow
block to do nothing if nothing passed to import (#7206) - 92c8bc7 caddyfile: fix nested quotes formatted incorrectly by fmt (#7045)
- 6d73d85 caddyfile: prevent adding trailing space on line before env variable (#7215)
- d7185fd caddyhttp: Add
trusted_proxies_unix for trusting unix socket X-Forwarded-* headers (#7265) - de6b780 caddyhttp: Add server options
keepalive_idle and keepalive_count (#7298) - e0a8f95 caddyhttp: Normalize (lowercase) {label.N} placeholders
- 5e29536 caddyhttp: add replacer placeholders for escaped values (#7181)
- 8285eba caddyhttp: allow customizing the Server header (#7338)
- bc0e184 caddyhttp: omit unnecessary reassignment (#7276)
- 3553cfb caddyhttp: remove redundant middleware next copy (#7217)
- 1ce2a13 caddyhttp: wrap accepted connection to suppress tls.ConnectionState (#7247)
- d9cc24f caddypki: Disable internal auto-CA when auto_https is disabled (fix #7211) (#7238)
- 1e82f96 caddypki: check intermediate lifetime to actual root cert lifetime (#7272)
- 38848f7 caddytls: Allow disabling distributed solving (except http-01)
- ddec183 caddytls: correct documentation of
LeafFolderLoader (#7327) - f5c3094 cmd: prevent commas in header values from being split (#7268)
- 65e0ddc core: Reloading with
SIGUSR1 if config never changed via admin (#7258) - b3f2db2 core: custom slog handlers for modules (log contextual data) (#7346)
- b2ab419 core: use reflect.TypeFor to check for encoding/json.RawMessage (#7274)
- 806fef8 encode: add graphql-response header to list (#7214)
- 2cb4267 encode: modernize, replace HasSuffix+TrimSuffix with CutSuffix (#7357)
- b462615 fileserver: set Content-Length for precompressed files (#7251)
- 0c8798f go.mod: update quic-go to v0.54.1 (#7273)
- 3c003de httpcaddyfile: Add missing DNS challenge check for
acme_dns (#7270) - 2f1d270 httpcaddyfile: Map default_bind to BindHost in globalACMEDefaults (#7278)
- a7885aa intercept: use already buffered response if possible when intercepting (#7028)
- 156ce99 listeners: Add support for named socket activation (#7243)
- 39ace45 logging: Adjustments to BufferedLog to keep logs in the correct order (#7257)
- 012b4b3 logging: Buffer the logs before config is loaded (#7245)
- 10ac7da logging: Switch from
lumberjack to timberjack, add time-rolling options (#7244) - f5f25d8 logging: fix multiple regexp filters on same field (fixes #7049) (#7061)
- 595aab8 metrics: resolve per-host inifinite cardinality (#7306)
- 57587ed refactor: use reflect.TypeFor (#7313)
- 2ec28bc reverse_proxy: use http1 for outbound tls requests with placeholder that are likely websockets (#7296)
- a6da1ac reverse_proxy: use interfaces to modify the behaviors of the transports (#7353)
- 67a9e06 reverseproxy: Fix retries for requests with bodies (#7360)
- 7fb39ec reverseproxy: Use http1.1 upgrade for websocket for extended connect of http2 and http3 (#7305)
- 8aca108 reverseproxy: do not disable keepalive if proxy protocol is used (#7300)
- abe0aca reverseproxy: set default values for keepalive if only some of them are set (#7318)
- 1e21b66 reverseproxy: use http.Protocols to handle h2c requests (#6990)
- b54e870 tracing: switch to autoexport for OpenTelemetry span exporter (#7317)
What's Changed
- caddyhttp: add replacer placeholders for escaped values by @Qusic in #7181
- AI assistance disclosure by @mholt in #7212
- caddyfile: Prevent trailing space on line before env variable - Fixes #6881 by @arpansaha13 in #7215
- add: encode header Content-Type graphql-response by @aro-lew in #7214
- caddyhttp: Removing redundant middleware next copy by @maxcelant in #7217
- build(deps): bump the all-updates group with 17 updates by @dependabot[bot] in #7236
- build(deps): bump the actions-deps group with 5 updates by @dependabot[bot] in #7237
- encode: fix response corruption when handle_errors is used by @Siomachkin in #7235
- Fix PKI creation when auto_https is disabled (#7211) by @Siomachkin in #7238
- logging: Buffer the logs before config is loaded by @francislavoie in #7245
- fileserver: set Content-Length for precompressed files by @WeidiDeng in #7251
- refactor: use WaitGroup.Go to simplify code by @mickychang9 in #7253
- caddyfile: Allow
block to do nothing if nothing passed to import by @BeeJay28 in #7206 - logging: Adjustments to BufferedLog to keep logs in the correct order by @francislavoie in #7257
- caddyhttp: Prevent commas in header values from being split in CLI commands by @gilbsgilbs in #7268
- update quic-go to v0.54.1 by @marten-seemann in #7273
- chore: ugh, lint fix... by @mohammed90 in #7275
- caddypki: check intermediate lifetime to actual root cert lifetime by @u5surf in #7272
- refactor: omit unnecessary reassignment by @asttool in #7276
- core: use reflect.TypeFor to check for encoding/json.RawMessage by @WeidiDeng in #7274
- core: Reloading with
SIGUSR1 if config never changed via admin by @francislavoie in #7258 - build(deps): bump the actions-deps group with 8 updates by @dependabot[bot] in #7284
- httpcaddyfile: Add missing DNS challenge check for
acme_dns by @rightaditya in #7270 - httpcaddyfile: Map default_bind to BindHost in globalACMEDefaults by @Monviech in #7278
- Argon2id Support for Basic Auth by @GreyXor in #7186
- update quic-go to v0.55.0 by @marten-seemann in #7288
- reverse_proxy: use http1 for outbound tls requests with placeholder t… by @WeidiDeng in #7296
- caddyhttp: Add server options
keepalive_idle and keepalive_count by @joshuamcbeth in #7298 - chore: fix some comments by @wyrapeseed in #7303
- logging: Switch from
lumberjack to timberjack, add time-rolling options by @aeris in #7244 - reverseproxy: Use http1.1 upgrade for websocket for extended connect of http2 and http3. by @tonyb486 in #7305
- caddyhttp: Add
trusted_proxies_unix for trusting unix socket X-Forwarded-* headers by @cseufert in #7265 - caddyhttp: wrap accepted connection to suppress tls.ConnectionState by @WeidiDeng in #7247
- logging: fix multiple regexp filters on same field (fixes #7049) by @S2010 in #7061
- intercept: use already buffered response if possible when intercepting by @WeidiDeng in #7028
- listeners: Add support for named socket activation by @Siomachkin in #7243
- reverseproxy: do not disable keepalive if proxy protocol is used by @WeidiDeng in #7300
- metrics: resolve per-host inifinite cardinality by @mohammed90 in #7306
- reverseproxy: use http.Protocols to handle h2c requests by @WeidiDeng in #6990
- refactor: use reflect.TypeFor by @wyrapeseed in #7313
- build(deps): bump the all-updates group across 1 directory with 2 updates by @dependabot[bot] in #7307
- build(deps): bump github.com/slackhq/nebula from 1.9.5 to 1.9.7 by @dependabot[bot] in #7315
- feat: switch to autoexport for OpenTelemetry span exporter by @PKeidel in #7317
- reverse_proxy: set default values for keepalive if only some of them are set by @WeidiDeng in #7318
- fix quote within quotes formatted incorrectly by fmt by @keystroke3 in #7045
- caddytls: correct documentation of
LeafFolderLoader by @mohammed90 in #7327 - fix golangci-lint error G602 in caddyhttp by @cdenicola in #7334
- feat: allow customizing the Server header by @dunglas in #7338
- update quic-go to v0.56.0, enable qlog for HTTP/3 by @marten-seemann in #7345
- build(deps): bump the all-updates group with 4 updates by @dependabot[bot] in #7333
- feat: custom slog handlers for modules (log contextual data) by @dunglas in #7346
- ci: implement new release flow by @mohammed90 in #7341
- reverse_proxy: use interfaces to modify the behaviors of the transports by @WeidiDeng in #7353
- build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 by @dependabot[bot] in #7355
- update quic-go to v0.57.0 by @marten-seemann in #7359
- refactor: replace HasSuffix+TrimSuffix with CutSuffix by @ledigang in #7357
- Fix retries for requests with bodies by @chebyrash in #7360
- build(deps): bump the all-updates group with 3 updates by @dependabot[bot] in #7376
- ci: escape backticks in changelogs embedded in JS by @mohammed90 in #7382
New Contributors
Full Changelog: v2.10.2...v2.11.0-beta.1
github-actions[bot]