From 28acad6865e9d0ace95df5550e7a3e636f960c1c Mon Sep 17 00:00:00 2001 From: John Coffey Date: Sun, 13 Sep 2026 17:49:08 -0700 Subject: [PATCH] Say 0.16.22 in the README, and what it changed for a client The live instance moved to Stalwart 0.16.22 on 2026-09-13. The badge and the requirements section now say so. The hand validation stays credited to 0.16.21, because 0.16.22 was read against its diff rather than re-run, and the four calendar and contacts JMAP changes it makes are listed, along with the fact that the mock does not follow them yet. --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 719a7a5..ca2339c 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@

Licence: AGPL-3.0-or-later - Requires Stalwart 0.16 or newer; tested against 0.16.21 + Requires Stalwart 0.16 or newer; runs on 0.16.22 Documentation: docs.ihasmail.org by Coffey Labs

@@ -88,8 +88,18 @@ wrong guess had somewhere to fall back to, so it failed *quietly* — and that reached production. With one supported generation a wrong guess is a loud error on the first call. -**Validated against 0.16.21**, released 6 September 2026: the app was run -against a real instance of it and the mail, calendar and contacts paths were +**The live instance runs 0.16.22**, released 13 September 2026 and upgraded to +the same day. It was read against its diff rather than re-run, and four of its +JMAP changes are visible to a client, all in calendars and contacts: +`CalendarEvent/get` returns `baseEventId` only on a synthetic occurrence, so a +one-off event now carries `null` there; it returns `null` for `recurrenceRule` +and `recurrenceOverrides` asked for on an occurrence; `useDefaultAlerts` is +stored per user and reads `false` when never set; and `CalendarEvent/get` and +`ContactCard/get` return only `id` for an empty `properties` list, rather than +everything. The mock does not follow these yet. + +**Validated by hand against 0.16.21**, released 6 September 2026: the app was +run against a real instance of it and the mail, calendar and contacts paths were exercised by hand. Four of that release's JMAP changes are visible to a client — an occurrence of a recurring event is now identified by its recurrence id rather than by its position in the series, so an id held across a write no @@ -97,7 +107,7 @@ longer silently names a different date; `Calendar/get` and `AddressBook/get` return every property when none are named; EventSource advertises its ping interval in seconds rather than milliseconds; and a calendar write that asks for scheduling messages is refused when the account may not send them. The mock -reproduces all four. +reproduces those four. - Still on 0.15? The last release that runs on it is tagged [`stalwart-0.15-support`](https://github.com/Coffey-Labs/ihasmail/releases/tag/stalwart-0.15-support). - Upgrading? [stalwart-migrator](https://github.com/Coffey-Labs/stalwart-migrator) does it in place, checkpointing every phase and validating afterwards. The live instance moved 0.15.5 → 0.16.19 with eight seconds of downtime and nothing lost.