AtlatestRepositorysigil-web
1# Changelog
2
3All notable changes to **sigil-web** are documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## [0.17.0] - 2026-08-25
9
10### Breaking
12- **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 the
14 same commit that raises `sigil-web`, then relock.
16 Nothing will tell you if you skip that. A dependency's `sigil:` floor is not
17 enforced during resolution, only the root package's, so a consumer left on the
18 0.17 or 0.18 runtime resolves a 0.17 stdlib alongside 0.19-line packages and
19 builds green with no error and no warning.
21 The minor bump is the signal. A patch release would have been picked up
22 automatically by anyone pinned `^0.16`, silently; `0.17.0` makes you opt in.
24### Changed
26- 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 this
28 release moves every dependency range that still reached a standalone copy of
29 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 standalone
33 repository.
35 Crossing the boundary is not a single-range change. Bumping one range alone
36 leaves the remaining standalones in the lock beside a 0.19 stdlib, which
37 yields two providers of the same module compiling to one output path, where
38 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 release
49 line bounds the TLS handshake as a whole rather than per read, makes
50 `tls-write` yield instead of blocking, and fixes a descriptor leak, so HTTPS
51 behaviour changes with it.
52- `sigil-crypto` moves `0.16.3` -> `0.16.5`, and `sigil-sqlite` `0.16.2` enters
53 the lock transitively. `sigil-sqlite` vendors a SQLite amalgamation that is
54 compiled as part of a build.
56## [0.16.1] - 2026-07-10
58### Fixed
60- Live-stream SSE endpoints (`live-routes`) no longer return `500 Internal
61 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 correct
65 handler; passing it explicitly keeps `GET` on a live-stream endpoint working
66 across every `sigil-http` release, including ones that type the broadcast
67 handler as a required positional argument.
69## [0.16.0] - 2026-07-10
71### Added
73- `serve-file` honors a request's `Range:` header. Pass the request as an
74 optional second argument (`make-static-handler` now threads it through): a
75 satisfiable range yields `206 Partial Content`, an unsatisfiable one `416
76 Range Not Satisfiable`, served via `http-response/file`. Full-file responses
77 now advertise `Accept-Ranges: bytes`, so static assets support byte-range
78 seeking and resumable downloads. Existing single-argument `serve-file` callers
79 are unaffected.
81### Changed
83- Bumped the `sigil-http` dependency to `^0.18.0`, which provides
84 `http-response/file`'s `range:` keyword.
86<!-- Releases before 0.16.0 predate this changelog; see the git history. -->