From 3857b65762c9838b3059c033c3da5aca2cf7fa53 Mon Sep 17 00:00:00 2001 From: Nicholas Penree Date: Wed, 14 Oct 2026 16:38:08 -0400 Subject: [PATCH 1/2] Add 1.7.1 release notes --- CHANGELOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 065241cf..15ba342a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,56 @@ Create a passphrase-sealed application backup before upgrading and keep mixed-version cluster windows short. Cross-version restore and downgrade compatibility are not yet a published contract. +## [1.7.1] - 2026-10-14 + +Sable 1.7.1 opens the Logs page instantly on a large query log. On a log of +about 5 million queries, the page took 2.7 seconds to open and now takes about +30 milliseconds. Filtered query logs count faster too, and public TLS +certificates issue again with OVHcloud, Hetzner, and Porkbun DNS. + +### Upgrading from 1.7.0 + +Nothing new is needed. In a cluster, upgrade replicas first and the lead last; +**Cluster → Rolling Updates** does it in that order. + +### Console + +- **Logs** reads only the tab that's open. The other tab loads when you click + it, and a hidden tab no longer refreshes in the background. +- A query log of more than 50,000 queries shows an approximate total, marked + with `~`, instead of counting every row: unfiltered, or filtered by source, + response code, or a single record type, which take their total from the + hourly summaries. A filter such as blocked-only opens in milliseconds + instead of hundreds. Other filters, exports, and the API still count + exactly. +- With an approximate total, **Last** no longer repeats rows from the page + before it, and **Next** and **Last** always reach the oldest queries. The + total stays close to the real count after old queries are removed. + +### API + +- The query log CSV export starts streaming right away instead of counting + the log first. + +### Fixes + +- **OVHcloud** DNS-01 challenges no longer fail with `cannot unmarshal object + into Go value of type int64`, so public TLS certificates issue and renew. + Dynamic DNS can also create a record that doesn't exist yet. +- **Hetzner** DNS-01 challenges send the TXT value quoted, as Hetzner's DNS + API requires, so public TLS certificates issue and the challenge record is + removed afterwards. +- **Porkbun** removes the DNS-01 challenge record after issuing a certificate + when Porkbun returns record IDs as numbers, instead of leaving it behind. + Dynamic DNS updates and removes duplicate records the same way. +- Removing old queries no longer waits on counting the log, so a failed count + can't hold back retention of summaries and client sightings. + +### Dependencies + +- Updated golang.org/x/crypto, x/net, x/sys, and related golang.org/x modules, + the templ console renderer, and the CBOR library used for passkeys. + ## [1.7.1-beta.4] - 2026-10-14 Sable 1.7.1-beta.4 fixes public TLS certificates with OVHcloud, Hetzner, and From affb7b691893c26464273b7f36c9d45ad0f63429 Mon Sep 17 00:00:00 2001 From: Nicholas Penree Date: Wed, 14 Oct 2026 16:41:24 -0400 Subject: [PATCH 2/2] docs: name 1.7.1 as the latest stable release --- docs/guides/technitium-migration.md | 2 +- docs/index.md | 2 +- docs/navigation.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/technitium-migration.md b/docs/guides/technitium-migration.md index d25f78b2..5c31880d 100644 --- a/docs/guides/technitium-migration.md +++ b/docs/guides/technitium-migration.md @@ -3,7 +3,7 @@ Build Sable alongside your current DNS service, move one test zone, and verify it before moving clients. This guide covers migration to Sable: zone-file import, a one-time AXFR snapshot, synchronized Secondary staging, or bulk import from a catalog. The older-version cutover procedure is retained below. > [!NOTE] -> **Version availability:** This guide covers Sable 1.7.0. Authoritative conversion and Import from Catalog arrived in 1.2.0; forwarder import, synchronization, and conversion require 1.3.2. Users on 1.1.0 and earlier can upgrade or follow the older export/remove/import procedure below. +> **Version availability:** This guide covers Sable 1.7.1. Authoritative conversion and Import from Catalog arrived in 1.2.0; forwarder import, synchronization, and conversion require 1.3.2. Users on 1.1.0 and earlier can upgrade or follow the older export/remove/import procedure below. ## Choose a migration path diff --git a/docs/index.md b/docs/index.md index da26f0f3..52ee615d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,7 +18,7 @@ Start with one Sable server and one test device. Get your first DNS answer, then - **Configuration and operations references** describe exact behavior when you need to go deeper. > [!NOTE] -These guides cover Sable 1.7.0. [Download the release](https://github.com/drudge/sable/releases/tag/v1.7.0) or read the [release notes](../CHANGELOG.md). +These guides cover Sable 1.7.1. [Download the release](https://github.com/drudge/sable/releases/tag/v1.7.1) or read the [release notes](../CHANGELOG.md). ## Migrating from Technitium diff --git a/docs/navigation.json b/docs/navigation.json index 0f498e7b..6e1088f1 100644 --- a/docs/navigation.json +++ b/docs/navigation.json @@ -1,6 +1,6 @@ { - "version": "1.7.0", - "versionLabel": "1.7.0", + "version": "1.7.1", + "versionLabel": "1.7.1", "navigationLabels": { "getting-started": "First server", "guides/technitium-migration": "From Technitium",