A Playwright layer that drives QR login, CAPTCHA relay to the seller, two-factor prompts and full session lifecycle. Sessions are per-tenant and fail-closed: seller A can never resolve seller B's session, and a test guards that boundary. A coverage ledger records which calendar days were provably collected in full, so a gap gets backfilled instead of becoming a permanent hole. Fourteen background job modules on Redis/RQ handle session warmup, collection, backfill and reply posting.