Added test_hits_expire_after_window_elapses() which uses unittest.mock.patch to deterministically advance time and verify that expired hits are evicted from the rolling window. This exercises the while loop in RateLimiter.allow() that was previously untested. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof