From c62393e2db17d6ff055dbf1c958b1765cdf4b842 Mon Sep 17 00:00:00 2001 From: zzstoatzz Date: Thu, 13 Aug 2026 22:35:13 -0500 Subject: [PATCH] changelog: the 0.4.0 section that the release commit failed to write MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the release-time edit anchored on a section header that 0.3.30's cut had already restructured, and the scripted replace no-opped silently. also corrects the record: the ArchiveBackfill improvements DID ship in zat, in 0.3.30 — 0.4.0 is the move-out. Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b170ee..654c0ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # changelog +## 0.4.0 + +The protocol/service split. `network.bsky.jetstream.*` is a Bluesky service +API, not atproto — the same line Bluesky drew splitting `@bsky/sdk` out of +`@atproto/api` at the Jetstream v2 launch (2026-08-13). zat is now the +protocol side of that line. + +- **BREAKING**: `zat.ArchiveBackfill` (released through 0.3.30) moved to + [zat.dev/jetstream](https://tangled.org/zat.dev/jetstream), the zig + jetstream service SDK, along with the streamplace example, the archive + smoke script, and the vendored decode-only libzstd (zat links no zstd at + all now). Archive consumers: depend on the `jetstream` package; it + delivers the same `zat.JetstreamEvent`s through the same handler. +- `zat.JetstreamClient` (the v1 `/subscribe` wire) remains here, functional + and deprecated-in-home, until its consumers migrate; the subscribeEvents + v2 client lands in the jetstream repo. +- **feat**: `zat.Datetime` — the atproto datetime profile as a first-class + syntax type next to Tid/Did/Nsid/Rkey: `parse` (offsets normalized to + UTC, arbitrary fractional digits truncated at microseconds, the spec's + year-zero floor enforced on the normalized instant) and `toString` + (canonical `YYYY-MM-DDTHH:MM:SS.ffffffZ`). The atproto interop datetime + fixtures now drive this parser directly. Civil math is Hinnant's + days_from_civil/civil_from_days — signed and exact over 0000..9999, + unlike std.time.epoch. Deliberate divergences from general RFC 3339 + parsers (reject leap-second `:60`, reject `-00:00`, upper-case T/Z only) + are the atproto spec's, cross-checked against rust's jiff and chrono and + documented in the type. Replaces four hand-rolled formatters in stream + and the SDK example's 45-line parser. + ## 0.3.30 Every phase of an HTTP fetch is now bounded. The 2026-08-13 zlay authority -- 2.51.2