feat(phase-6): implement atomic find_one_and_update rate limiting and concurrency test
Muhammad Usman
b518121
- implement ResearchStorage.atomic_check_and_consume_quota with find_one_and_update and condition filter
- integrate threading.RLock and database atomic mutations into RateLimiter.check_and_consume
- add TestAtomicConcurrencyProtection with 20 parallel threads racing against daily cap
fix(phase-6): resolve review findings for rate limiting and quota gating
Muhammad Usman
91ab715
- validate and sanitize query before consuming rate limit allocations
- scope unauthenticated guest rate limits by session to prevent global lockouts
- remove leftover count_documents query in ResearchStorage.save_rate_limit_record
- add global aggregate search limit protection for shared Tavily monthly budget
- add comprehensive unit tests for validation-first gate and guest scoping
feat(phase-6): implement rate limiting, daily search quotas, and brute-force lockout
Muhammad Usman
a992a58
fix(phase-5): enforce credential authentication gates and eliminate hardcoded JWT secrets
Muhammad Usman
427a853
feat(phase-5): implement cryptographic JWT authentication and dual-key MongoDB user isolation