fix seq rewind: broadcast only after durable flush (restore indigo invariant) master
zlay broadcast relay_seq from the persist callers, before the event was written to disk. an unclean kill (OOM/crashloop) lost the unflushed tail, so on restart the seq counter resumed below already-broadcast seq — consumers saw seq go backwards. confirmed live against a downstream consumer on 2026-05-31. indigo broadcasts only from flushLog, after the durable write, so a broadcast seq can never exceed the on-disk seq and a rewind is structurally impossible. zlay's event log is a port of that file but had moved the broadcast out of the flush. this restores the invariant: - DiskPersist.setBroadcaster() + broadcast from flushLocked after the write, in seq order. producers (frame_worker/subscriber/host_ops) just persist(). - broadcaster.broadcastPersisted resequences + enqueues, invoked post-flush. - regression test: "broadcast is gated on durable flush". also fix DB test isolation: the runner executes test binaries concurrently against one server and the relay tables are global, so tests contaminated each other through shared rows. each DB test now creates/drops its own database. recovery hardening (scanForLastSeq fail-loud, fsync) and persist_order removal tracked as follow-ups in docs/incident-2026-05-31-seq-rewind.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>