+20
−36
+21
−11
Loading
- Bug 3: guard against empty rule name producing malformed Redis key; Rule constructor now raises for empty name regardless of env; sanitize_rule_name falls back to "unnamed_rule" as belt-and-suspenders - Bug 4: enforce KNOWN_ACTIONS in Rule constructor (always, not just dev/test) — moved constant to RateLimit module level to avoid Lint/ConstantDefinitionInBlock - Design smell: Evaluator::KNOWN_CHARACTERISTICS now references RateLimit::KNOWN_CHARACTERISTICS — eliminates the "must stay in sync" maintenance trap - Bug 1: fix test description "dropped_occurrence: 2" -> 1 (0-indexed) - Bug 2: rename duplicate "scenario 11" to "scenario 15" - Coverage: add integration test for :log rule exceeded -> :allow + INFO - Coverage: add boundary test for char_value of exactly 200 chars - Known limitation: document INCR/EXPIRE TOCTOU gap in incr_with_ttl (@max) Co-Authored-By:Claude Sonnet 4.6 <noreply@anthropic.com>