Motivation. Correct ownership in celld reduces entirely to the object store honoring conditional writes (compare-and-swap on lease records) and read-after-write visibility. Real AWS S3 and R2 are fine, but the S3-compatible ecosystem is uneven: some gateways and older MinIO/SeaweedFS configurations accept If-Match/If-None-Match and silently ignore them. On such a store, two nodes can both believe they own a cell, and the failure shows up later as split-brain data loss rather than at setup time.
Idea. Add a preflight to celld diagnose (or a dedicated celld preflight --bucket ...) that proves the guarantees empirically against a scratch prefix:
- Write an object, then issue two conditional overwrites with the same precondition; exactly one must succeed.
- Confirm the loser's write is not visible (no lost-update anomaly).
- Confirm read-after-write on a fresh key.
- Print a pass/fail matrix with the measured round-trip latency, since lease timing budgets depend on it.
A hard failure would name the store's gap directly ("this endpoint ignores If-Match; celld cannot run safely here"), which matches the repo's "loud failure over silent gap" policy. No patch attached per contribution policy; happy to elaborate on edge cases if useful.
Note for anyone picking this up: R2 and S3 both document conditional-write support, so the preflight's value is mostly for self-hosted S3-compatibles (MinIO, SeaweedFS, Ceph RGW, garage) where support varies by version and configuration.