Files
Jamie Pineandcapy-ai-staging[bot] a2831ac9b2 Run the pairing suites in CI: device persistence, proxy pairing, and relay pairing through a local relay (#3152)
* Run the pairing suites in CI with condition waits and a local relay

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Say what the integration group's wall-time budget is and which relay the mDNS suites still reach

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Name where the integration group's 15 minute target comes from

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Keep a newer same-ALPN connection alive when an older one to the same node closes

The connection map is keyed by node and ALPN, so an incoming pairing
connection and an outbound one opened for a single message share a key.
When the older one closed, the handler and the per-node watcher removed
the key and took the newer connection's last handle, so QUIC closed it
under the peer before the message had been read. Carol's proxy acceptance
to Alice was lost this way in 1 of 13 proxy_pairing_test runs in sequence.
Removal now checks the stored connection is the closed one, and a one-shot
send waits for the peer to acknowledge the bytes before returning.

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Wait for the message acknowledgement off the event loop and say when a closed connection's key is kept

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

---------

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
2026-10-09 12:17:23 +00:00
..
…
…
…
…