c1a818c2e2
KeyPackageFetcher.fetchKeyPackage used client.fetchFirst, which closes the subscription on the first event a relay sends. For kind:443 (KeyPackage) that's wrong after a rotation: the publisher does not replace the prior event (kind:443 is not addressable), so relays may still hold the old KP and whichever one wins the race gets returned. Switch to fetchAll — drain every matching event until EOSE, then pick the one with the highest created_at. Keeps freshly-rotated bundles reachable and matches whitenoise/mdk semantics. Unskips interop test 16 (wn rotates, amy discovers). The inverse path (test 13) already worked because `wn keys check` looks up via the addressable kind:10051 index instead of kind:443 directly. https://claude.ai/code/session_01Unm6uLHGLj9UcBY7hWfJVW