AtlatestRepositorysigil-web
1
# Changelog3
All notable changes to **sigil-web** are documented in this file.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).8
## [0.17.0] - 2026-08-2510
### Breaking12
- **This release requires Sigil 0.19 or newer.** Upgrading is not a range bump;13
it moves your runtime. Raise `sigil` to `^0.19` in your own `package.sgl` in the14
same commit that raises `sigil-web`, then relock.16
Nothing will tell you if you skip that. A dependency's `sigil:` floor is not17
enforced during resolution, only the root package's, so a consumer left on the18
0.17 or 0.18 runtime resolves a 0.17 stdlib alongside 0.19-line packages and19
builds green with no error and no warning.21
The minor bump is the signal. A patch release would have been picked up22
automatically by anyone pinned `^0.16`, silently; `0.17.0` makes you opt in.24
### Changed26
- Crossed the Sigil 0.19 stdlib boundary. `sigil-stdlib` absorbed the `ansi`,27
`socket`, `hooks`, `version`, `fp` and `match` modules at 0.19.0, and this28
release moves every dependency range that still reached a standalone copy of29
one of them. The lock drops from 18 entries to 12: `sigil-ansi`,30
`sigil-hooks`, `sigil-docs`, `sigil-socket`, `sigil-version`, `sigil-args`31
and `sigil-git` leave it, and `sigil-repl` now resolves to the `sigil-repl`32
package inside `codeberg:sigil/sigil` rather than the archived standalone33
repository.35
Crossing the boundary is not a single-range change. Bumping one range alone36
leaves the remaining standalones in the lock beside a 0.19 stdlib, which37
yields two providers of the same module compiling to one output path, where38
whichever section builds last silently wins. The ranges moved together:40
| dependency | from | to | why |41
|---|---|---|---|42
| `sigil` | `^0.17` | `^0.19` | `sigil-nrepl` 0.17.1 requires it |43
| `sigil-nrepl` | `^0.16` | `^0.17.1` | 0.17.1 is the first release consuming `sigil-repl` from the monorepo; 0.17.0 still reaches the archived standalone |44
| `sigil-http` | `^0.18.0` | `^0.18.4` | 0.18.4 is the first release that stopped declaring `sigil-socket` |45
| `sigil-test` (dev) | `^0.17` | `^0.19` | keeps the runner pair on one release line |46
| `sigil-test-runner` (dev) | `^0.17` | `^0.19` | 0.17.3 declares `sigil-ansi`, and pulls `sigil-version` and `sigil-git` through the workspace |48
- `sigil-tls` moves `0.16.3` -> `0.16.6` as part of the relock. That release49
line bounds the TLS handshake as a whole rather than per read, makes50
`tls-write` yield instead of blocking, and fixes a descriptor leak, so HTTPS51
behaviour changes with it.52
- `sigil-crypto` moves `0.16.3` -> `0.16.5`, and `sigil-sqlite` `0.16.2` enters53
the lock transitively. `sigil-sqlite` vendors a SQLite amalgamation that is54
compiled as part of a build.56
## [0.16.1] - 2026-07-1058
### Fixed60
- Live-stream SSE endpoints (`live-routes`) no longer return `500 Internal61
Server Error` with `car: expected pair` when a client connects.62
`stream-events-handler` now passes the broadcast handler (`identity`)63
explicitly to `http-response/sse-broadcast` instead of relying on its default.64
The stream hub carries pre-formatted SSE strings, so `identity` is the correct65
handler; passing it explicitly keeps `GET` on a live-stream endpoint working66
across every `sigil-http` release, including ones that type the broadcast67
handler as a required positional argument.69
## [0.16.0] - 2026-07-1071
### Added73
- `serve-file` honors a request's `Range:` header. Pass the request as an74
optional second argument (`make-static-handler` now threads it through): a75
satisfiable range yields `206 Partial Content`, an unsatisfiable one `41676
Range Not Satisfiable`, served via `http-response/file`. Full-file responses77
now advertise `Accept-Ranges: bytes`, so static assets support byte-range78
seeking and resumable downloads. Existing single-argument `serve-file` callers79
are unaffected.81
### Changed83
- Bumped the `sigil-http` dependency to `^0.18.0`, which provides84
`http-response/file`'s `range:` keyword.86
<!-- Releases before 0.16.0 predate this changelog; see the git history. -->