events: injected federation transport (fed-sx-ready) + 6 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 41s

fetch abstracts how a peer's agenda arrives: (fetch peer-id ws we) ->
{:status :ok :occurrences} | {:status :error}. ev/federated-agenda-via merges
local + trusted peers fetched via the transport; unreachable peers degrade
gracefully. ev/peer-fetch = in-process adapter; ev/federation-status reports
reachability. A real fed-sx transport drops in unchanged. 278/278 green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 08:12:37 +00:00
parent 07e4cb5f4a
commit c991c7c3d3
5 changed files with 142 additions and 8 deletions

View File

@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
## Status (rolling)
`bash lib/events/conformance.sh`**272/272** (Phases 1-4 + 6 ext: fed f/b, waitlist, EXDATE/RDATE, overrides, booking-notify, reschedule-notify)
`bash lib/events/conformance.sh`**278/278** (Phases 1-4 + 7 ext: fed f/b, waitlist, EXDATE/RDATE, overrides, booking/reschedule-notify, fed transport)
## Ground rules
@@ -82,10 +82,19 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
- [x] cross-instance events (peer calendar) — trust-gated stub
- [x] tests: federated agenda merge
- [x] federated availability/free-busy across trusted peers
- [ ] real transport behind `ev/peer-agenda` (fed-sx / signed fetch)
- [x] injected transport (`ev/federated-agenda-via` + fetch) — fed-sx-ready, graceful degradation
## Progress log
- 2026-06-07 — Injected federation transport (last plan item). `fetch` abstracts
how a peer's agenda arrives: (fetch peer-id ws we) -> {:status :ok :occurrences}
| {:status :error}. `ev/federated-agenda-via` merges local + each trusted
peer fetched via the transport, tagged with :origin; an unreachable peer is
skipped (graceful degradation), never breaking the agenda.
`ev/peer-fetch` is the in-process adapter (runs the existing store model
through the same interface); a real fed-sx/signed-fetch transport drops in
unchanged. `ev/federation-status` reports per-peer reachability. +6 tests,
278/278 green. All plan checkboxes (incl. extensions) now ticked.
- 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