events: availability.sx — free/busy + conflict detection on Datalog + 16 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m1s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m1s
occurrence/booking EDB; rules busy/conflict (canonical pair, half-open overlap)/busy_in. API ev-busy, ev-conflicts, ev-has-conflict?, ev-free? (transient qwindow). Integrates with calendar expansion. 53/53 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` → **37/37** (Phase 1: calendar recurrence)
|
||||
`bash lib/events/conformance.sh` → **53/53** (Phase 1: calendar + availability)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -56,7 +56,8 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
## Phase 1 — Calendar + recurrence
|
||||
- [x] `calendar.sx` — event facts, RRULE expansion in a window (DAILY/WEEKLY)
|
||||
- [x] `calendar.sx` — MONTHLY (bymonthday + nth-weekday byday)
|
||||
- [ ] `availability.sx` — free/busy rules
|
||||
- [x] `availability.sx` — free/busy rules (busy/conflict/busy_in on Datalog)
|
||||
- [ ] `availability.sx` — next-free slot search (same rules, different bindings)
|
||||
- [ ] `api.sx` + tests + scoreboard + conformance.sh
|
||||
|
||||
## Phase 2 — Ticketing + booking
|
||||
@@ -77,6 +78,12 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-07 — `availability.sx`: free/busy + conflict detection as forward-
|
||||
chained Datalog over `occurrence`/`booking` EDB. Rules `busy(A,S,E)`,
|
||||
`conflict(A,O1,O2)` (canonical `O1<O2`, half-open overlap `S1<E2 ∧ S2<E1`),
|
||||
`busy_in(A,QS,QE)` for window queries. API: `ev-busy`, `ev-conflicts`,
|
||||
`ev-has-conflict?`, `ev-free?` (transient qwindow assert/retract). Integrates
|
||||
with calendar expansion (book expanded occurrences). 16 tests, 53/53 green.
|
||||
- 2026-06-06 — MONTHLY recurrence. `ev-days-in-month`, `ev-add-months`,
|
||||
BYMONTHDAY (incl. negative = from month end), ordinal BYDAY (`{:ord N :wd W}`,
|
||||
ord<0 = nth-from-last), default day-of-month (skips months too short, e.g.
|
||||
|
||||
Reference in New Issue
Block a user