events: Phase 1 calendar — DAILY/WEEKLY RRULE expansion + 24 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 32s

Civil date arithmetic (Hinnant), integer epoch-minute datetimes, bounded
windowed RRULE expansion (DAILY/WEEKLY with INTERVAL/COUNT/UNTIL/BYDAY),
multi-event merge. Conformance harness + scoreboard wired.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 23:48:34 +00:00
parent d446562ed1
commit 797c5f9147
7 changed files with 669 additions and 4 deletions

View File

@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
## Status (rolling)
`bash lib/events/conformance.sh`**0/0** (not yet started)
`bash lib/events/conformance.sh`**24/24** (Phase 1: calendar recurrence)
## Ground rules
@@ -54,7 +54,8 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
```
## Phase 1 — Calendar + recurrence
- [ ] `calendar.sx` — event facts, RRULE expansion in a window
- [x] `calendar.sx` — event facts, RRULE expansion in a window (DAILY/WEEKLY)
- [ ] `calendar.sx` — MONTHLY (bymonthday + nth-weekday byday)
- [ ] `availability.sx` — free/busy rules
- [ ] `api.sx` + tests + scoreboard + conformance.sh
@@ -75,7 +76,15 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
- [ ] tests: federated agenda merge
## Progress log
(loop fills this in)
- 2026-06-06 — Phase 1 scaffold + calendar recurrence. `calendar.sx`: integer
epoch-minute datetimes, Hinnant civil<->day-number conversion, DAILY/WEEKLY
RRULE expansion in a bounded (start,end) window with INTERVAL, COUNT (window-
independent), UNTIL, BYDAY (weekly). `ev-expand-all` merges + sorts. Wired
conformance harness (conf + thin wrapper reusing `lib/guest/conformance.sh`),
scoreboard. 24/24 green. MONTHLY deferred to next commit.
## Blockers
(loop fills this in)
- None. Substrates present: `lib/datalog` (276/276), `lib/persist`, `lib/flow`
all exist — Phase 2/3 unblocked when reached.