events: cross-event conflict-checked booking + 8 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 31s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 31s
ev/book-checked! prevents an attendee double-booking themselves across different events: consults their persist-derived availability (ev/free-p?) for the occurrence window, returns :time-conflict on overlap else the normal ev/book-occ! result. Re-booking the same occurrence stays idempotent (:already); other actors unaffected. ev/would-time-conflict? predicate. 311/311 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/events/conformance.sh` → **303/303** (Phases 1-4 + 9 ext: fed f/b, waitlist, EXDATE/RDATE, overrides, booking/reschedule-notify, fed transport, timezones+DST, e2e delivery pipeline)
|
||||
`bash lib/events/conformance.sh` → **311/311** (Phases 1-4 + 10 ext: …timezones+DST, e2e delivery pipeline, cross-event conflict-checked booking)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -88,6 +88,13 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-07 — Cross-event conflict-checked booking (extension). Capacity is
|
||||
per-event, but `ev/book-checked!` also prevents an attendee double-booking
|
||||
THEMSELVES across different events: it consults the actor's persist-derived
|
||||
availability (ev/free-p?) for the occurrence's window and returns
|
||||
:time-conflict on overlap, else the normal ev/book-occ! result. Re-booking
|
||||
the same occurrence is idempotent (:already, not a conflict); other actors are
|
||||
unaffected. `ev/would-time-conflict?` predicate. +8 tests, 311/311 green.
|
||||
- 2026-06-07 — End-to-end delivery pipeline (closes the derivation↔delivery
|
||||
gap). `ev/deliver-messages` bridges SX notification messages to the Scheme
|
||||
notify flow: each (id recipient body) is `serialize`d to s-expression text,
|
||||
|
||||
Reference in New Issue
Block a user