Skip to content

refactor: split call / group-call / voice-channel / beacon-mesh into signalling + view #59

Description

@krwg

Summary

call.js, group-call.js, voice-channel.js, and beacon-mesh.js mix WebRTC/mesh protocol state with DOM room UI. Split each into signalling (no DOM) and view (subscribes to signalling events) so ICE bugs and badge bugs are not both “somewhere in the same 1k+ line file”, and signalling becomes Vitest-testable.

Pattern (per domain)

  • *-signalling.js — WebRTC / mesh protocol only
  • *-view.js — roster/room render; EventEmitter or callbacks; no direct mutation of signalling internals

Acceptance

  • At least call + voice-channel (or all four) follow the split
  • Unit tests cover a non-DOM signalling path where practical
  • Call / group / voice / beacon smoke still works on LAN

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions