1e3b34ec03
A home whose Claude raced the server's refresh kept a spent pair the pool no longer recognised; the next beat dropped the home, and pick() then treated it as the member's own login forever — the member was asked to /login while every other home worked. The pool now remembers hashes of its past refresh tokens (a home holding one stays the pool's and gets the newest pair), never drops a home while fetchOwner cannot answer, and re-reads the record after each await so a spawn's placement is not lost.
28 KiB
28 KiB