Follow Stalwart 0.16.22 in the mock

0.16.22 changed four things a client sees from CalendarEvent/get and
ContactCard/get. Read from its source and the tests that came with it:

- baseEventId is the master's id on a synthetic id and null otherwise; an
  event read by its stored id used to report its own id. A one-off from an
  expanded query still has a synthetic id, so it still carries a base.
- recurrenceRule and recurrenceOverrides named on a synthetic id come back
  null rather than absent.
- useDefaultAlerts is the reader's own and reads false until set.
- an empty properties list returns id alone, for both methods. pick already
  did that, so only a comment changes for contacts.

With properties omitted the stored object comes back as before.

The README said a one-off now carries a null base, which only holds for one
read by its stored id; it now says that, and that the mock follows.
This commit is contained in:
2026-09-13 17:55:36 -07:00
parent 029afc21c4
commit de71572b9d
4 changed files with 101 additions and 12 deletions
+6 -6
View File
@@ -91,12 +91,12 @@ on the first call.
**Validated against 0.16.22**, released 13 September 2026: the live instance
runs it and the app has been tested against it. 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.
`CalendarEvent/get` returns `baseEventId` only for a synthetic id, so an event
read by its stored id now carries `null` there rather than its own id; it
returns `null` for `recurrenceRule` and `recurrenceOverrides` asked for on a
synthetic id; `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 reproduces all four.
Before it, **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