All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project follows Semantic Versioning.
[1.2.2] - 2026-07-14
Changed
- Fixed
gun_opts[:ws_opts]handling so documented websocket upgrade options are forwarded via:gun.ws_upgrade/4.
Tests
- Added coverage verifying
ws_optsis passed through to the Gun websocket upgrade call.
[1.2.1] - 2026-03-22
Added
- Added optional
:headers_fnconnection option for dynamic websocket upgrade header refresh on each connect/reconnect attempt. - Added HexDocs guide for auth-header refresh and handshake-failure behavior.
Changed
OffBroadwayWebSocket.Client.connect_once/1now resolves headers through:headers_fnwhen configured and returns typed errors for invalid callback results.- Handshake failures with
:gun_responsein both:nofinand:finvariants now stop deterministically with{:handshake_failure, {status, headers}}.
Tests
- Added coverage for
headers_fnsuccess/error paths and:finhandshake-failure handling.
[1.2.0] - 2026-03-13
Added
- Added
:on_upgradeto send outbound websocket frames immediately after upgrade and before the connection is considered ready. - Added
:frame_handlerand:frame_handler_statefor session-aware inbound websocket protocols. - Added reconnect-time reset of connection-local frame-handler state.
- Added HexDocs guide structure for configuration, bootstrap hooks, frame handlers, retry/liveness, and telemetry.
Changed
- Treat immediate
on_upgradecallback failures and immediate:gun.ws_send/3failures as bootstrap failures that follow reconnect/backoff. - Allow skipped inbound frames to refresh liveness when using a
:frame_handler. - Delay connection-success telemetry and ready-state transition until bootstrap frames have been sent successfully.
Tests
- Expanded producer and state coverage for bootstrap success/failure, frame-handler emit/skip/error paths, and reconnect state reset.
[1.1.1] - 2025-03-05
Changed
- Released the current
1.1.xline after the signal-handling improvements from1.1.0.
[1.1.0] - 2025-03-02
Added
- Added a dedicated telemetry module and expanded connection telemetry coverage.
- Added handling for missing
:gun_wssignal clauses.
Changed
- Improved connection defaults and state enforcement.
- Refactored producer and state handling around websocket lifecycle and retry behavior.
- Improved project documentation.
[1.0.2] - 2024-10-29
Changed
- Released the
1.0.xline before the later signal-handling and telemetry refactor work.