From 3c6881403062d3ba44c6093575b94238900448e8 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 23 Sep 2026 21:24:09 +0200 Subject: [PATCH] Release 0.3.45 A mail stream that cannot be created at boot is a warning, not a failed start. Co-Authored-By: Claude Fable 5.1 --- CHANGELOG.md | 4 ++++ Cargo.lock | 2 +- Cargo.toml | 2 +- src/main.rs | 7 ++++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d27b8d..eb2ccbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ One line per change, grouped by the release that shipped it. Newest first. A release is a Cargo.toml bump plus a `v` tag; the content repos pin the tag they run (see the end of this file). +## 0.3.45 (2026-09-23) + +- A mail stream that cannot be created at boot (subjects owned by an older stream) is a warning, not a failed start; 0.3.44 took the kasse sites down for two minutes on the rename. + ## 0.3.44 (2026-09-23) - The mail stream is named `mail` (was `WORMHOLE`); gdo 0.1.2 matches. Delete the old stream on each NATS after upgrading both. diff --git a/Cargo.lock b/Cargo.lock index 5029afd..9cdbfe5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3265,7 +3265,7 @@ dependencies = [ [[package]] name = "portal" -version = "0.3.44" +version = "0.3.45" dependencies = [ "anyhow", "arc-swap", diff --git a/Cargo.toml b/Cargo.toml index 1371ab6..7ef928c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "portal" -version = "0.3.44" +version = "0.3.45" edition = "2021" [lib] diff --git a/src/main.rs b/src/main.rs index 05463f2..de4b244 100644 --- a/src/main.rs +++ b/src/main.rs @@ -62,7 +62,12 @@ async fn main() -> anyhow::Result<()> { portal::events::store::ensure_stream(&jetstream).await?; // Outgoing mail waits here for gdo; a mail is never lost to gdo // being down, and never sent by portal itself. - portal::mail::ensure_stream(&jetstream).await?; + // Best-effort: a stream that already owns these subjects under an + // older name (a rename mid-upgrade) must not keep a site from + // booting; mail waits until the old stream is removed. + if let Err(e) = portal::mail::ensure_stream(&jetstream).await { + tracing::warn!("the mail stream could not be created: {e} - outgoing mail is off until a stream owns portal.mail.>"); + } let oidc_state = Arc::new(oidc::Oidc::from_env().await?);