@@ -125,3 +125,160 @@ def call(request)
125125 # ...
126126end
127127```
128+
129+ ## v0.29.0
130+
131+ - Introduce ` rewind ` and ` rewindable? ` methods for body rewinding capabilities.
132+ - Add support for output buffer in ` read_partial ` /` readpartial ` methods.
133+ - ` Reader#buffered! ` now returns ` self ` for method chaining.
134+
135+ ## v0.28.0
136+
137+ - Add convenient ` Reader#buffered! ` method to buffer the body.
138+ - Modernize gem infrastructure with RuboCop integration.
139+
140+ ## v0.27.0
141+
142+ - Expand stream interface to support ` gets ` /` puts ` operations.
143+ - Skip empty key/value pairs in header processing.
144+ - Prefer lowercase method names for consistency.
145+ - Add ` as_json ` support to avoid default Rails implementation.
146+ - Use ` @callback ` to track invocation state.
147+ - Drop ` base64 ` gem dependency.
148+
149+ ## v0.26.0
150+
151+ - Prefer connection ` close ` over ` keep-alive ` when both are present.
152+ - Add support for ` #readpartial ` method.
153+ - Add ` base64 ` dependency.
154+
155+ ## v0.25.0
156+
157+ - Introduce explicit support for informational responses (1xx status codes).
158+ - Add ` cache-control ` support for ` must-revalidate ` , ` proxy-revalidate ` , and ` s-maxage ` directives.
159+ - Add ` #strong_match? ` and ` #weak_match? ` methods to ` ETags ` header.
160+ - Fix ` last-modified ` , ` if-modified-since ` and ` if-unmodified-since ` headers to use proper ` Date ` parsing.
161+ - Improve date/expires header parsing.
162+ - Add tests for ` Stream#close_read ` .
163+ - Check if input is closed before raising ` IOError ` .
164+ - Ensure saved files truncate existing file by default.
165+
166+ ## v0.24.0
167+
168+ - Add output stream ` #<< ` as alias for ` #write ` .
169+ - Add support for ` Headers#include? ` and ` #key? ` methods.
170+ - Fix URL unescape functionality.
171+ - Fix cookie parsing issues.
172+ - Fix superclass mismatch in ` Protocol::HTTP::Middleware::Builder ` .
173+ - Allow trailers without explicit ` trailer ` header.
174+ - Fix cookie handling and Ruby 2 keyword arguments.
175+
176+ ## v0.23.0
177+
178+ - Improve argument handling.
179+ - Rename ` path ` parameter to ` target ` to better match RFCs.
180+
181+ ## v0.22.0
182+
183+ - Rename ` trailers ` to ` trailer ` for consistency.
184+
185+ ## v0.21.0
186+
187+ - Streaming interface improvements.
188+ - Rename ` Streamable ` to ` Completable ` .
189+
190+ ## v0.20.0
191+
192+ - Improve ` Authorization ` header implementation.
193+
194+ ## v0.19.0
195+
196+ - Expose ` Body#ready? ` for more efficient response handling.
197+
198+ ## v0.18.0
199+
200+ - Add ` #trailers ` method which enumerates trailers without marking tail.
201+ - Don't clear trailers in ` #dup ` , move functionality to ` flatten! ` .
202+ - All requests and responses must have mutable headers instance.
203+
204+ ## v0.17.0
205+
206+ - Remove deferred headers due to complexity.
207+ - Remove deprecated ` Headers#slice! ` .
208+ - Add support for static, dynamic and streaming content to ` cache-control ` model.
209+ - Initial support for trailers.
210+ - Add support for ` Response#not_modified? ` .
211+
212+ ## v0.16.0
213+
214+ - Add support for ` if-match ` and ` if-none-match ` headers.
215+ - Revert ` Request#target ` change for HTTP/2 compatibility.
216+
217+ ## v0.15.0
218+
219+ - Prefer ` Request#target ` over ` Request#path ` .
220+ - Add body implementation to support HEAD requests.
221+ - Add support for computing digest on buffered body.
222+ - Add ` Headers#set(key, value) ` to replace existing values.
223+ - Add support for ` vary ` header.
224+ - Add support for ` no-cache ` & ` no-store ` cache directives.
225+
226+ ## v0.14.0
227+
228+ - Add ` Cacheable ` body for buffering and caching responses.
229+ - Add support for ` cache-control ` header.
230+
231+ ## v0.13.0
232+
233+ - Add support for ` connection ` header.
234+ - Fix handling of keyword arguments.
235+
236+ ## v0.12.0
237+
238+ - Improved handling of ` cookie ` header.
239+ - Add ` Headers#clear ` method.
240+
241+ ## v0.11.0
242+
243+ - Ensure ` Body#call ` invokes ` stream.close ` when done.
244+
245+ ## v0.10.0
246+
247+ - Allow user to specify size for character devices.
248+
249+ ## v0.9.1
250+
251+ - Add support for ` authorization ` header.
252+
253+ ## v0.8.0
254+
255+ - Remove ` reason ` from ` Response ` .
256+
257+ ## v0.7.0
258+
259+ - Explicit path handling in ` Reference#with ` .
260+
261+ ## v0.6.0
262+
263+ - Initial version with basic HTTP protocol support.
264+
265+ ## v0.5.1
266+
267+ - Fix path splitting behavior when path is empty.
268+ - Add ` connect ` method.
269+ - Support protocol in ` [] ` constructor.
270+ - Incorporate middleware functionality.
271+
272+ ## v0.4.0
273+
274+ - Add ` Request ` , ` Response ` and ` Body ` classes from ` async-http ` .
275+ - Allow deletion of non-existent header fields.
276+
277+ ## v0.3.0
278+
279+ - ** Initial release** of ` protocol-http ` gem.
280+ - Initial implementation of HTTP/2 flow control.
281+ - Support for connection preface and settings frames.
282+ - Initial headers support.
283+ - Implementation of ` Connection ` , ` Client ` & ` Server ` classes.
284+ - HTTP/2 protocol framing and headers.
0 commit comments