events: reschedule notifications + 7 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 31s

ev/reschedule-notifications: when an event carries per-occurrence overrides,
reads the roster at each overridden occurrence's original occ-key and emits a
reschedule message per booked attendee (old-start/new-start/new-duration).
Idempotency key = original-key/reschedule/new-start. 272/272 green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 07:47:00 +00:00
parent 98ed2eebdf
commit 07e4cb5f4a
5 changed files with 121 additions and 7 deletions

View File

@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
## Status (rolling)
`bash lib/events/conformance.sh`**265/265** (Phases 1-4 + ext: fed free/busy, waitlist, EXDATE/RDATE, overrides, booking-notify)
`bash lib/events/conformance.sh`**272/272** (Phases 1-4 + 6 ext: fed f/b, waitlist, EXDATE/RDATE, overrides, booking-notify, reschedule-notify)
## Ground rules
@@ -86,6 +86,13 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
## Progress log
- 2026-06-07 — Reschedule notifications (extension). When an event carries
per-occurrence overrides, `ev/reschedule-notifications` reads the roster at
each overridden occurrence's ORIGINAL occ-key and produces a reschedule
message per booked attendee (old-start, new-start, new-duration). Idempotency
key = original-key/reschedule/new-start. `ev/reschedule-notify->msg` for the
notify wire shape. Combines overrides (calendar) + rosters (booking) + the
message-derivation pattern. +7 tests, 272/272 green.
- 2026-06-07 — Booking lifecycle notifications (extension). `booking-notify.sx`
walks the booking stream into ordered notifications classified by kind:
:booked / :promoted / :held / :confirmed / :released / :cancelled /