Acknowledged consume→markSeen propagation gap (§6.1): sub-millisecond on
single Redis instance, ~1ms under realistic jitter. Bounded fraction of
sane challenge TTL. Security impact zero (both unknown and replayed
cause caller to reject). Audit signal impact bounded.
ChallengeCeremony composition: combines ChallengeStore (issue/find/ consume) and ReplaySeenSet (markSeen/contains) into the 3-outcome wrapper (consumed | replayed | unknown).
Three-branch control flow:
replayed | unknownconsumedreplayed(race-loss / TTL boundary, fail-closed)Acknowledged consume→markSeen propagation gap (§6.1): sub-millisecond on single Redis instance, ~1ms under realistic jitter. Bounded fraction of sane challenge TTL. Security impact zero (both
unknownandreplayedcause caller to reject). Audit signal impact bounded.Per A1 §6 + §6.1.