feature/render-pipeline-optimization
main
get_event_loop() is deprecated in Python 3.10+ when called inside a running coroutine. get_running_loop() is the correct replacement. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace sequential upload loop with asyncio.gather + Semaphore(8) (WP-04) - Offload synchronous boto3 S3 calls to thread pool executor - Increase fetch_card_image timeout from 6s to 10s - Add --concurrency/-j CLI flag to pd-cards upload - Add progress reporting every 20 completions - Individual card failures no longer abort batch - Apply same concurrency pattern to legacy check_cards_and_upload.py (WP-05) - Add benchmark script for render pipeline measurements (WP-00) Target: 800-card upload from ~40 min to <5 min (with server-side persistent browser deployed). Refs: #87, #91, #92 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>