unarr/internal
Deivid Soto 2398707cc1 fix(ws): add ping/pong keepalive and read deadline to detect zombie connections
Without a SetReadDeadline, a silently dead WebSocket (e.g. Cloudflare
dropping the connection without a close frame) would block readLoop
forever. The daemon would appear connected but never receive tasks,
and never fall back to HTTP polling.

- Send RFC 6455 pings every 30s (resets Cloudflare's idle timer)
- SetReadDeadline of 45s, refreshed on every pong and text message
- SetWriteDeadline of 10s on all writes to prevent blocked sends
- On timeout, readLoop emits "disconnected" → HybridTransport falls
  back to HTTP and starts WS reconnection loop
2026-04-08 00:06:19 +02:00
..
agent fix(ws): add ping/pong keepalive and read deadline to detect zombie connections 2026-04-08 00:06:19 +02:00
arr feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
cmd chore(release): 0.5.5 2026-04-07 23:33:24 +02:00
config fix(progress): always report status transitions and poll for control signals 2026-03-31 16:55:50 +02:00
engine fix(daemon): cancel watch reporter on stream switch and re-notify ready 2026-04-07 23:30:53 +02:00
library test(mediainfo): add ffprobe download unit tests 2026-04-06 10:16:27 +02:00
mediaserver feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
parser feat: initial commit — unarr CLI 2026-03-28 11:29:42 +01:00
sentry feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
ui fix(ci): fix lint errors and pin CI to Go 1.25 2026-03-31 22:15:12 +02:00
upgrade fix(daemon): use correct systemd user target and isolate test cache 2026-04-06 18:49:44 +02:00
usenet fix(ci): fix lint errors and pin CI to Go 1.25 2026-03-31 22:15:12 +02:00