Skip to content

v1.0.3 - Dedup, Rate Limiting & Idempotency

Choose a tag to compare

@albertje8118 albertje8118 released this 15 Feb 14:56
· 41 commits to main since this release

What's Changed

Anti-Loop Protections

  • In-flight request deduplication — concurrent requests for the same repo URL share a single Playwright fetch via threading.Event barrier (dedup.py)
  • Per-repo sliding-window rate limiter — max 10 calls per 60s window per repo URL; returns RATE_LIMITED error when exceeded (rate_limit.py)
  • Topic-list dedicated cache — 30-min TTL (vs 5-min for pages) since structural topic data rarely changes

Response Intelligence

  • Content hash in ResponseMeta — MD5-12 fingerprint lets clients detect unchanged responses
  • Idempotency key in ToolResponserepo_url::content_hash composite key for client-side dedup recognition
  • Response size hints in all 4 tool docstrings — agents can plan token budgets before calling

Code Quality

  • Pylint: 9.93/10
  • Ruff: all checks passed
  • Black: fully formatted
  • Tests: 129 passed (up from 101), 0 failures

Full Changelog: v1.0.2...v1.0.3