75b3fd15

By: Michael Lynch <git@mtlynch.io>

Thread client IP through login token creation interface

Change LoginTokenCreator from positional args (email, redirectPath) to a
LoginEmailRequest struct that also carries the client IP extracted from
the HTTP request. This prepares the auth interface for per-IP rate
limiting without changing the rate limiter itself.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 1s 7s 7s 9s 1s
Eval 7s 1m09s 1m09s 1m17s 0s
Build 10s 7m37s 1m26s 1m37s 0s
Suite 1s 8m55s 1m35s 1m37s 1s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s