v0.3.2 — live relay handshake deadlock fix
Fixed
A running signer connected to relays but never received any requests. The live relay connection deadlocked the websocket opening handshake: IoStream.read used readSliceShort, which blocks until it fills the whole read buffer, so reading the short 101 Switching Protocols response into a 4 KiB buffer waited forever for bytes the relay only sends after we subscribe — dial never returned and no subscription was sent.
It now reads once and returns whatever is available (readVec), like a POSIX read. Verified live end-to-end: the signer now receives a NIP-46 request over a relay, holds it for approval, signs on approval, and returns a valid signed event — the key never leaving the signer. Adds a regression test that pins the read primitive. (#44, closes #43)
Full changelog: https://github.com/zig-nostr/nostr/blob/main/CHANGELOG.md