Bug
Two BookDB/Skaldleita API functions lack rate limiting:
contribute_to_bookdb() (bookdb.py ~line 488) — POSTs to Skaldleita without calling rate_limit_wait('bookdb'). Checks circuit breaker but has no per-call pacing.
lookup_community_consensus() (bookdb.py ~line 568) — GETs from Skaldleita with NO rate limiting AND no circuit breaker check.
While these are called per-book (not in tight loops), they bypass the 3.6s bookdb pacing that all other BookDB functions respect.
Fix
Add rate_limit_wait('bookdb') to both functions. Add is_circuit_open('bookdb') check to lookup_community_consensus().
Severity
Medium — indirect protection from pipeline batch delays, but direct protection is missing.
Found via code audit.
Bug
Two BookDB/Skaldleita API functions lack rate limiting:
contribute_to_bookdb()(bookdb.py ~line 488) — POSTs to Skaldleita without callingrate_limit_wait('bookdb'). Checks circuit breaker but has no per-call pacing.lookup_community_consensus()(bookdb.py ~line 568) — GETs from Skaldleita with NO rate limiting AND no circuit breaker check.While these are called per-book (not in tight loops), they bypass the 3.6s bookdb pacing that all other BookDB functions respect.
Fix
Add
rate_limit_wait('bookdb')to both functions. Addis_circuit_open('bookdb')check tolookup_community_consensus().Severity
Medium — indirect protection from pipeline batch delays, but direct protection is missing.
Found via code audit.