Commit Graph
13 Commits
Author SHA1 Message Date
myxelium 92c2f578e2 fix(voice): route media on evidence and switch devices without dropping the call
Outgoing voice was gated on the observer's roster copy of the remote user's
voice state, which is signaling gossip. The signal server broadcasts
`user_left` for any socket it declares dead, so a suspended laptop or a flaky
hop wiped that copy and the observer detached its microphone from a peer that
never left the channel - a silent member with no way back through the UI.

`decideVoicePathRouting` now closes a path only on positive evidence: we left
voice, the peer itself reported another channel or none, or the connection is
gone. Missing gossip holds an established path instead. Opening still needs
confirmation, so a guess never starts sending; the same rule gates playback,
camera video, and the microphone a new connection puts in its first offer.
Peers are also asked for their voice state when a connection or data channel
comes up, so a rebuilt path re-confirms itself.

Alongside it, the microphone can be switched mid-call: capture moves to a
device service and rules, the live track is swapped with `replaceTrack` so
the session is never renegotiated, and the speaking indicator follows the new
stream.
2026-08-14 03:19:29 +02:00
myxeliumandCursor 31962aeb1a fix: restore build and stabilize E2E cross-signal behavior
Revert the automated member-ordering pass that broke Angular field init
(TS2729) and disable that rule until a safe reorder strategy exists.
Fix modal/confirm dialog i18n defaults via template fallbacks, search all
active endpoints (including offline), register foreign rooms with actor
owner IDs, sync profile display names from avatar summaries, and guard
dm-chat when a private call converts to a group conversation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 12:16:40 +02:00
myxeliumandCursor 79c6f91cd6 chore: enforce lint across codebase and ban "maybe" in identifiers
Remove member-ordering and complexity eslint-disable comments by reordering
class members and applying targeted fixes. Add metoyou/no-maybe-in-naming,
type-safe WebRTC e2e harness helpers, and resolve remaining lint errors so
npm run lint exits cleanly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 11:08:26 +02:00
myxelium 83456c018c fix: Fix multiple bugs with new authentication flow 2026-06-07 15:04:21 +02:00
myxelium 155fe20862 wip: optimizations 2026-05-23 15:28:40 +02:00
myxelium 44588e8789 feat: Add TURN server support
Queue Release Build / prepare (push) Successful in 15s
Deploy Web Apps / deploy (push) Successful in 5m35s
Queue Release Build / build-linux (push) Successful in 24m45s
Queue Release Build / build-windows (push) Successful in 13m52s
Queue Release Build / finalize (push) Successful in 23s
2026-04-18 21:27:04 +02:00
myxelium 167c45ba8d test: Add 8 people voice tests 2026-04-18 14:24:11 +02:00
myxelium 7a0664b3c4 refactor: stricter domain: voice-connection 2026-04-11 15:08:04 +02:00
myxelium ef1182d46f fix: Broken voice states and connectivity drops 2026-04-11 12:32:22 +02:00
myxelium 37cac95b38 Add access control rework 2026-04-02 03:18:37 +02:00
myxelium b7d4bf20e3 feat: Add webcam basic support 2026-03-30 03:10:44 +02:00
myxelium 727059fb52 Add seperation of voice channels, creation of new ones, and move around users 2026-03-30 02:11:39 +02:00
myxelium 8162e0444a Move toju-app into own its folder 2026-03-29 23:55:24 +02:00