Bug Fix
AbuseIPDB rate limit not resetting after daily quota renewal
After the daily API quota was exhausted, the app never detected that it had renewed — manual enrichments showed 0 remaining indefinitely. The reset detection logic existed but only ran inside lookup(), which was never called because everything gated on the stale remaining: 0.
Fix:
remaining_budgetnow triggers reset detection before reading state- Reset detection persists cleared state to the shared stats file
- Manual enrich endpoint checks
reset_attimestamp before rejecting - Status endpoint flags
quota_reset_pendingfor the UI