Commitab98329cRecorded10 Jul 2026Repositorysigil-http

Add CHANGELOG (Keep a Changelog, backfilled v0.16.0 through 0.17.0)

Changed
 CHANGELOG.md | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)
Diff
CHANGELOG.mdadded
@@ -0,0 +1,106 @@
+1
# Changelog
+2
+3
All notable changes to **sigil-http** are documented in this file.
+4
+5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
+6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+7
+8
## [0.17.0] - 2026-07-10
+9
+10
### Changed
+11
+12
- Streaming responses (`http-response/file`, SSE) now work from a bare
+13
`http-serve` / `http-server-start` **without** wrapping the call in
+14
`with-async`. The server establishes its own async scheduler when none is
+15
active, and reuses the caller's when one is present. This fixes streaming and
+16
SSE routes throwing `go: not running in an async context` on a default
+17
server, which caused large assets to intermittently fail to download.
+18
- `HEAD` requests now return identical status and headers (including a correct
+19
`Content-Length`) with **zero body bytes**, instead of sending the full body.
+20
+21
### Added
+22
+23
- Opt-in automatic gzip via a `gzip:` option on `make-http-server` /
+24
`http-serve` (default `#f`, so the default server is unchanged). When enabled,
+25
non-streaming responses are gzip-encoded per the request's `Accept-Encoding`
+26
(compressible content types over a size floor), adding `Content-Encoding:
+27
gzip` and `Vary: Accept-Encoding`. Streaming and incompressible bodies are
+28
left untouched.
+29
+30
## [0.16.7] - 2026-07-07
+31
+32
### Changed
+33
+34
- Realigned the sigil toolchain pin to `^0.17`.
+35
- `http-response/json` now accepts either a dict or an already-encoded string.
+36
- `http-response/sse-broadcast` defaults its message handler to identity.
+37
+38
## [0.16.6] - 2026-06-30
+39
+40
### Fixed
+41
+42
- HTTP client `timeout:` callers can now distinguish a request that was never
+43
sent from one that was delivered but whose ack is unconfirmed.
+44
+45
## [0.16.5] - 2026-06-30
+46
+47
### Changed
+48
+49
- Threaded a `connect-timeout:` option through the HTTP client and relocked onto
+50
sigil-tls 0.16.2.
+51
+52
## [0.16.4] - 2026-06-30
+53
+54
### Fixed
+55
+56
- Response reads now terminate on HTTP framing rather than on connection close.
+57
+58
## [0.16.3] - 2026-06-29
+59
+60
### Added
+61
+62
- Opt-in `timeout:` keyword for HTTP client reads.
+63
+64
## [0.16.2] - 2026-06-24
+65
+66
### Changed
+67
+68
- Repointed sigil-test dev-dependencies at the reintegrated monorepo.
+69
+70
## [0.16.1] - 2026-05-31
+71
+72
### Added
+73
+74
- `http-response-gzip` response helper (gzip content negotiation).
+75
+76
### Changed
+77
+78
- Response send loop rewritten to be O(n) via offset-based partial writes,
+79
avoiding O(n²) recopying of large bodies over slow links.
+80
+81
## [0.16.0] - 2026-05-06
+82
+83
Initial tagged release of the standalone `sigil-http` package, extracted from
+84
the sigil monorepo (requires sigil `^0.16`).
+85
+86
### Fixed
+87
+88
- Non-blocking HTTP response writes.
+89
- HTTP request body byte handling (Content-Length counted in bytes).
+90
+91
### Added
+92
+93
- Server crash diagnostics and guard blocks around the handler, streaming
+94
goroutine, and server loop; an outer server-loop guard that restarts on an
+95
otherwise-escaping exception.
+96
- SSE heartbeat utility for dead-client detection.
+97
+98
[0.17.0]: https://codeberg.org/sigil/sigil-http/compare/v0.16.7...v0.17.0
+99
[0.16.7]: https://codeberg.org/sigil/sigil-http/compare/v0.16.6...v0.16.7
+100
[0.16.6]: https://codeberg.org/sigil/sigil-http/compare/v0.16.5...v0.16.6
+101
[0.16.5]: https://codeberg.org/sigil/sigil-http/compare/v0.16.4...v0.16.5
+102
[0.16.4]: https://codeberg.org/sigil/sigil-http/compare/v0.16.3...v0.16.4
+103
[0.16.3]: https://codeberg.org/sigil/sigil-http/compare/v0.16.2...v0.16.3
+104
[0.16.2]: https://codeberg.org/sigil/sigil-http/compare/v0.16.1...v0.16.2
+105
[0.16.1]: https://codeberg.org/sigil/sigil-http/compare/v0.16.0...v0.16.1
+106
[0.16.0]: https://codeberg.org/sigil/sigil-http/releases/tag/v0.16.0