From 9c0804ca8d032fdaec4fcd74f3ab5df31385add4 Mon Sep 17 00:00:00 2001 From: zzstoatzz Date: Sun, 20 Sep 2026 13:28:57 -0500 Subject: [PATCH] release: v0.1.5 --- CHANGELOG.md | 5 ++--- README.md | 5 ++--- build.zig.zon | 2 +- docs/failover.md | 2 +- docs/upstream-review-2026-09-06.md | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c9f8c8..0c23728 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,13 @@ # changelog -## unreleased +## 0.1.5 - use timestamp cursors for live failover, without archive requests or API keys; preserve sequence deduplication on same-host reconnects and reset it for timestamp entry into a new host. - - decode archive zstd frames with omitted content size, including small blocks from the official Go writer, while retaining checksum and size limits. -- seed live duplicate suppression from the resume cursor, dropping boundary +- seed live duplicate suppression from sequence resume cursors, dropping boundary events even if the server sends them again. - report dictionary rejection through `onError` after refresh, honoring caller stop before reconnecting, matching upstream Go callback behavior. diff --git a/README.md b/README.md index 78c429b..dc12f37 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ the official Go client's shape, with multi-host live failover. built on requires Zig 0.16.0. ```sh -zig fetch --save https://tangled.org/zat.dev/jetstream/archive/v0.1.4.tar.gz +zig fetch --save https://tangled.org/zat.dev/jetstream/archive/v0.1.5.tar.gz ``` add the module to your executable in `build.zig`: @@ -20,8 +20,7 @@ const jetstream = b.dependency("jetstream", .{}).module("jetstream"); exe.root_module.addImport("jetstream", jetstream); ``` -the docs describe `main`. the timestamp-failover changes are unreleased; -see the [changelog](CHANGELOG.md) for differences from v0.1.4. +see the [changelog](CHANGELOG.md) for release changes. ## use diff --git a/build.zig.zon b/build.zig.zon index 3a8b1ef..92579b8 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,6 +1,6 @@ .{ .name = .jetstream, - .version = "0.1.4", + .version = "0.1.5", .minimum_zig_version = "0.16.0-dev.3070+b22eb176b", .fingerprint = 0xee435acce6d720e8, .dependencies = .{ diff --git a/docs/failover.md b/docs/failover.md index dfc4b53..6c2ac8b 100644 --- a/docs/failover.md +++ b/docs/failover.md @@ -1,6 +1,6 @@ # multi-host failover -Describes `main`; timestamp-based failover is not in v0.1.4. +Timestamp-based failover is available starting in v0.1.5. Live failover reconnects with `cursor = last_time_us - failover_rewind_us` (default ten seconds). Jetstream v2 accepts unix-microsecond timestamps on diff --git a/docs/upstream-review-2026-09-06.md b/docs/upstream-review-2026-09-06.md index e6f5801..718d9dc 100644 --- a/docs/upstream-review-2026-09-06.md +++ b/docs/upstream-review-2026-09-06.md @@ -20,7 +20,7 @@ to a sequence, and entered archive replay. An anchor-fetch failure continued the subscription loop on the new host with stale cursor variables: null variables restarted at the tip; sequence variables belonged to the old host. -The unreleased fix sends `last_time_us - failover_rewind_us` directly as the +The v0.1.5 fix sends `last_time_us - failover_rewind_us` directly as the new host's live cursor. It makes no archive requests. A caller-supplied timestamp transfers unchanged before first delivery; a caller-supplied sequence cannot transfer without a witnessed-time anchor. -- 2.51.2