Released4 May 2026Commit854aeb30Line0.1.x

v0.1.4

v0.1.4 — registration-timeout resilience for enclave restarts

Notes

Closes the production gap where enclave-server restarts crashed apiary's main event loop. The keepalive work in v0.1.2 covered connection-level drops; this release covers the registration-handshake-timeout path.

Changed: - do-reconnect! no longer raises on registration-timeout; returns 'ok / 'retry symbols. Per-step inline guards convert any raise to retry. No more crash when the registration handshake hangs against a server that's up but not yet accepting registrations. - +reconnect-handshake-timeout+ tightened 30s → 10s. Server-restart windows are typically <10s, so a tighter timeout cycles failed attempts faster. - New helpers: cleanup-partial-irc! (closes fds on retry paths) and await-registration! (extracted for clarity).

Validation: - Smoke harness (test/smoke-keepalive-integration.sh) phase 3 extended to span ≥3 reconnect attempts. All 12 cross-repo smoke assertions pass. - 18s outage trace shows clean exponential backoff (attempts 1→5, delays 1s/2s/4s/8s/16s) with channel rejoin, no crash.

Brief: folio tasks/apiary-resilient-to-server-restarts (archived at ship) Knowledge: folio topics/apiary-reconnect-resilience

Commit

854aeb30eb6ab8b7ee8a53302846f3aa5f0b2ebf

This commit is older than the 20 that keep a page here, so it has none. It is in the clone.

Releases