Skip to content

fix(room): join presence channel as node listener#1342

Merged
itskai-dev merged 1 commit into
mainfrom
pixel-room-presence-track
May 13, 2026
Merged

fix(room): join presence channel as node listener#1342
itskai-dev merged 1 commit into
mainfrom
pixel-room-presence-track

Conversation

@itskai-dev
Copy link
Copy Markdown
Collaborator

Summary

  • track a non-human node sentinel after the room presence channel reaches SUBSCRIBED
  • keep filtering non-human presence payloads so the node listener never appears as a participant
  • add a regression test covering the subscribe->track handshake

Why

The canonical narrowing now shows the cloud/browser path is live and returns 200, but the payload stays empty (participants: []). The node room subscriber was subscribing to room:${hostId} with a presence key but never calling track(). Supabase presence semantics require joining the presence set after SUBSCRIBED; otherwise the node cache can remain empty even while browsers are in the room.

Validation

  • npm run build
  • npx vitest run tests/room-presence-store.test.ts tests/room-presence-subscribe.test.ts tests/chat-context-room-active.test.ts

@itskai-dev itskai-dev merged commit 7f020d9 into main May 13, 2026
11 checks passed
@itskai-dev itskai-dev deleted the pixel-room-presence-track branch May 13, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant