+0
−13
Loading
Replaces the per-call check_unique/peek_unique entry points with an optional count_distinct: Symbol field on Rule. Callers always use #check(identifier) / #peek(identifier); the rule's shape decides INCR vs SADD+SCARD. Per !292 review. A matched count_distinct rule whose identifier is missing the named key fails open: emits rate_limit_missing_count_distinct, bumps errors_total, and the loop continues to the next rule. peek does not require the count_distinct key (reads bucket cardinality). Co-Authored-By:Claude Opus 4.7 (1M context) <noreply@anthropic.com>