feat: add cross-pod pause consumer handling

Merged
HA
2mo ago
+312-18

Closes: #75


Summary by cubic

Adds cross-pod pause consumer handling so viewers on a different pod than the room owner can pause consumers; previously pauseConsumer only worked when the socket and consumer lived on the same pod. Also fixes missing acks and timeout cleanup in several cross-pod error paths.

New Features

  • Forwards pauseConsumer requests to the pod that owns the room via Redis when redisRoom.nodeId differs from the local instance.
  • Adds pauseConsumer handling in podConnection.ts for incoming cross-pod requests.
  • Documents the full cross-pod pause flow in docs/MultiplePodSignaling/pauseConsumer.md.

Bug Fixes

  • Sends failure acks when Redis lookup fails, nodeId is missing, or publishCommand delivers to no receivers.
  • Moves clearTimeout and failure acks into the correct callback paths for consume, resume, and transport-connection handlers.