perf: fix rate-limit hang and parallelize compliance checks
What does this MR do and why?
perf: fix rate-limit hang and parallelize compliance checks
Three changes for 200-user load:
-
client.py: cap retry-after at 15s and fail fast when GitLab returns 2000+ second rate limits, instead of sleeping 45 minutes per request.
-
compliance_service.py: run all 9 checkers concurrently with ThreadPoolExecutor instead of sequentially, cutting wall time from ~40s to ~5s per analysis.
-
ui/compliance.py: cache full compliance results for 5 minutes so 200 users checking the same project share one API call set, not 200.
-
docs_checker.py, speckit_checker.py: parallelize per-file API calls within each checker.
Co-Authored-By: Claude Sonnet 4.6 [email protected]
References
Screenshots or screen recordings
| Before | After |
|---|---|
How to set up and validate locally
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.