15
- [Routing V1 HTTP API now exposed by default](#routing-v1-http-api-now-exposed-by-default)
16
- [Track total size when adding pins](#track-total-size-when-adding-pins)
17
- [IPIP-523: `?format=` takes precedence over `Accept` header](#ipip-523-format-takes-precedence-over-accept-header)
18
+ - [IPIP-524: Gateway codec conversion disabled by default](#ipip-524-gateway-codec-conversion-disabled-by-default)
19
- [Improved IPNS over PubSub validation](#improved-ipns-over-pubsub-validation)
20
- [New `ipfs diag datastore` commands](#new-ipfs-diag-datastore-commands)
21
- [🚇 Improved `ipfs p2p` tunnels with foreground mode](#-improved-ipfs-p2p-tunnels-with-foreground-mode)
100
101
The only breaking change is for edge cases where a client sends both a specific `Accept` header and a different `?format=` value for an explicitly supported format (`tar`, `raw`, `car`, `dag-json`, `dag-cbor`, etc.). Previously `Accept` would win. Now `?format=` always wins.
102
103
+#### IPIP-524: Gateway codec conversion disabled by default
104
+
105
+Codec conversion is now disabled by default per [IPIP-524](https://github.com/ipfs/specs/pull/524).
106
+Requests for a format that differs from the block's codec will return `406 Not Acceptable`.
107
+
108
+**Migration**: Clients should fetch raw blocks (`?format=raw` or `Accept: application/vnd.ipld.raw`)
109
+and convert client-side using libraries like [@helia/verified-fetch](https://www.npmjs.com/package/@helia/verified-fetch).
110
+
111
+This change removes gateways from a gatekeeping role: new codecs can now be adopted by clients
112
+immediately without waiting for gateway operator updates. Set [`Gateway.AllowCodecConversion`](https://github.com/ipfs/kubo/blob/master/docs/config.md#gatewayallowcodecconversion)
113
+to `true` to restore previous behavior.
114
+
115
#### Improved IPNS over PubSub validation
116
117
[IPNS over PubSub](https://specs.ipfs.tech/ipns/ipns-pubsub-router/) implementation in Kubo is now more reliable. Duplicate messages are rejected even in large networks where messages may cycle back after the in-memory cache expires.
275
- update `boxo` to [v0.36.0](https://github.com/ipfs/boxo/releases/tag/v0.36.0)
276
- update `go-libp2p-kad-dht` to [v0.37.1](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.37.1) (includes [v0.37.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.37.0))
277
- update `ipfs-webui` to [v4.11.0](https://github.com/ipfs/ipfs-webui/releases/tag/v4.11.0)
265
-- update `gateway-conformance` tests to [v0.9](https://github.com/ipfs/gateway-conformance/releases/tag/v0.9.0)
278
+- update `gateway-conformance` tests to [v0.10](https://github.com/ipfs/gateway-conformance/releases/tag/v0.10.0) (incl. [v0.9](https://github.com/ipfs/gateway-conformance/releases/tag/v0.9.0))
279
280
### 📝 Changelog
281