Commit Graph
100 Commits
Author SHA1 Message Date
myxelium 9d0a4478b2 Repair connectivity correctly v1 2026-05-17 15:15:14 +02:00
myxelium e769a6ee4a Fix private calls 2026-05-17 15:14:52 +02:00
myxelium 0f6cb3ee77 fix: browser bug with plugins, and improve joining 2026-05-04 23:35:40 +02:00
myxelium a49e18b9f0 fix: recurriing network issue
Queue Release Build / prepare (push) Successful in 18s
Deploy Web Apps / deploy (push) Successful in 6m32s
Queue Release Build / build-windows (push) Successful in 26m8s
Queue Release Build / build-linux (push) Successful in 40m18s
Queue Release Build / finalize (push) Successful in 42s
2026-04-30 04:04:34 +02:00
myxelium 0a714428f6 docs: improve doucmentation
improve doucmentation and fix small store changes
2026-04-30 01:16:48 +02:00
myxelium 3f92e74350 feat: expose more apis 2026-04-29 23:39:09 +02:00
myxelium fa2cca6fa4 fix: improve plugins functionality with server management 2026-04-29 20:33:54 +02:00
myxelium b8f6d58d99 test: repair broken tests 2026-04-29 19:05:38 +02:00
myxelium e1ac1d1bc0 feat: server image 2026-04-29 18:54:08 +02:00
myxelium 3d81c34159 feat: Add browser documentation 2026-04-29 17:15:01 +02:00
myxelium d261bac0ed feat: plugins v1.7 2026-04-29 15:24:56 +02:00
myxelium eabbc08896 feat: plugins v1.5 2026-04-29 01:14:30 +02:00
myxelium 6920f93b41 feat: plugins v1 2026-04-29 01:14:14 +02:00
myxelium ec3802ade6 test: fix broken dm test
Queue Release Build / prepare (push) Successful in 23s
Deploy Web Apps / deploy (push) Successful in 6m5s
Queue Release Build / build-windows (push) Successful in 17m1s
Queue Release Build / build-linux (push) Successful in 29m15s
Queue Release Build / finalize (push) Successful in 38s
2026-04-27 22:48:45 +02:00
myxelium 66c6f34cd3 feat: Add game activity status (Experimental)
Queue Release Build / prepare (push) Successful in 21s
Deploy Web Apps / deploy (push) Successful in 5m14s
Queue Release Build / build-windows (push) Successful in 16m18s
Queue Release Build / build-linux (push) Successful in 29m20s
Queue Release Build / finalize (push) Successful in 36s
2026-04-27 11:02:34 +02:00
myxelium 3858beb28e feat: Data management 2026-04-27 03:29:41 +02:00
myxelium 1b91eacb5b feat: Theme studio v2 2026-04-27 03:02:13 +02:00
myxelium 11c2588e45 feat: Add pm 2026-04-27 01:02:39 +02:00
myxelium bc2fa7de22 fix: multiple bug fixes
isolated users, db backup, weird disconnect issues for long voice sessions,
2026-04-26 22:54:13 +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 bd21568726 feat: Add user metadata changing display name and description with sync
Queue Release Build / prepare (push) Successful in 28s
Deploy Web Apps / deploy (push) Successful in 5m2s
Queue Release Build / build-windows (push) Successful in 16m44s
Queue Release Build / build-linux (push) Successful in 27m12s
Queue Release Build / finalize (push) Successful in 22s
2026-04-17 22:55:50 +02:00
myxelium 3ba8a2c9eb fix: Fix corrupt database, Add soundcloud and spotify embeds 2026-04-17 19:44:26 +02:00
myxelium 28797a0141 perf: use lookup for chats
Queue Release Build / prepare (push) Successful in 16s
Deploy Web Apps / deploy (push) Successful in 15m8s
Queue Release Build / build-linux (push) Successful in 26m49s
Queue Release Build / build-windows (push) Failing after 12m6s
Queue Release Build / finalize (push) Has been skipped
2026-04-17 03:53:53 +02:00
myxelium 17738ec484 feat: Add profile images 2026-04-17 03:06:44 +02:00
myxelium 35b616fb77 refactor: Clean lint errors and organise files 2026-04-17 01:06:01 +02:00
myxelium 2927a86fbb feat: Add user statuses and cards 2026-04-16 22:52:45 +02:00
myxelium b4ac0cdc92 fix: Windows audio mute fix 2026-04-16 19:07:44 +02:00
myxelium f3b56fb1cc fix: Db corruption fix
Queue Release Build / prepare (push) Successful in 17s
Deploy Web Apps / deploy (push) Successful in 10m0s
Queue Release Build / build-linux (push) Successful in 25m59s
Queue Release Build / build-windows (push) Successful in 21m44s
Queue Release Build / finalize (push) Successful in 18s
2026-04-13 02:23:09 +02:00
myxelium 315820d487 ci: attempt to fix
Queue Release Build / prepare (push) Successful in 16s
Deploy Web Apps / deploy (push) Successful in 11m21s
Queue Release Build / build-linux (push) Successful in 25m31s
Queue Release Build / build-windows (push) Successful in 21m42s
Queue Release Build / finalize (push) Successful in 22s
2026-04-12 22:05:39 +02:00
myxelium 878fd1c766 ci: Attempt to speed up build
Queue Release Build / prepare (push) Successful in 50s
Queue Release Build / build-windows (push) Failing after 11m49s
Queue Release Build / build-linux (push) Successful in 34m1s
Queue Release Build / finalize (push) Has been skipped
Deploy Web Apps / deploy (push) Failing after 7m46s
2026-04-12 03:19:51 +02:00
myxelium 391d9235f1 test: Add playwright main usage test
Deploy Web Apps / deploy (push) Has been cancelled
Queue Release Build / prepare (push) Successful in 21s
Queue Release Build / build-windows (push) Successful in 32m16s
Queue Release Build / finalize (push) Successful in 1m54s
Queue Release Build / build-linux (push) Successful in 27m44s
2026-04-12 03:02:29 +02:00
myxelium f33440a827 test: Initate instructions 2026-04-11 15:38:16 +02:00
myxelium 52912327ae refactor: stricter domain: voice-session 2026-04-11 15:12:54 +02:00
myxelium 7a0664b3c4 refactor: stricter domain: voice-connection 2026-04-11 15:08:04 +02:00
myxelium cea3dccef1 refactor: stricter domain: theme 2026-04-11 15:01:39 +02:00
myxelium c8bb82feb5 refactor: stricter domain: server-directory 2026-04-11 14:50:38 +02:00
myxelium 3fb5515c3a refactor: stricter domain: screen-share 2026-04-11 14:42:12 +02:00
myxelium a6bdac1a25 refactor: true facades 2026-04-11 14:35:02 +02:00
myxelium db7e683504 refactor: stricer domain: notifications 2026-04-11 14:23:50 +02:00
myxelium 98ed8eeb68 refactor: stricter domain: chat 2026-04-11 14:01:19 +02:00
myxelium 39b85e2e3a refactor: stricter domain: auth 2026-04-11 13:52:59 +02:00
myxelium 58e338246f refactor: stricter domain: attachments 2026-04-11 13:39:27 +02:00
myxelium 0b9a9f311e refactor: stricter domain: access-control 2026-04-11 13:31:25 +02:00
myxelium 6800c73292 refactor: Cleaning rooms store 2026-04-11 13:07:46 +02:00
myxelium ef1182d46f fix: Broken voice states and connectivity drops 2026-04-11 12:32:22 +02:00
myxelium 0865c2fe33 feat: Basic general context menu
Queue Release Build / prepare (push) Successful in 14s
Deploy Web Apps / deploy (push) Successful in 14m39s
Queue Release Build / build-linux (push) Successful in 40m59s
Queue Release Build / build-windows (push) Successful in 28m59s
Queue Release Build / finalize (push) Successful in 1m58s
2026-04-04 05:38:05 +02:00
myxelium 4a41de79d6 fix: debugger lagging from too many logs 2026-04-04 04:55:13 +02:00
myxelium 84fa45985a feat: Add chat embeds v1
Youtube and Website metadata embeds
2026-04-04 04:47:04 +02:00
myxelium 35352923a5 feat: Youtube embed support 2026-04-04 03:30:21 +02:00
myxelium b9df9c92f2 fix: links not getting recognised in chat 2026-04-04 03:14:25 +02:00
myxelium 8674579b19 fix: leave and reconnect sound randomly playing, also fix leave sound when muting 2026-04-04 03:09:44 +02:00
myxelium de2d3300d4 fix: Fix users unable to see or hear each other in voice channels due to
stale server sockets, passive non-initiators, and race conditions
during peer connection setup.

Fix users unable to see or hear each other in voice channels due to
stale server sockets, passive non-initiators, and race conditions
during peer connection setup.

Server:
- Close stale WebSocket connections sharing the same oderId in
  handleIdentify instead of letting them linger up to 45s
- Make user_joined/user_left broadcasts identity-aware so duplicate
  sockets don't produce phantom join/leave events
- Include serverIds in user_left payload for multi-room presence
- Simplify findUserByOderId now that stale sockets are cleaned up

Client - signaling:
- Add fallback offer system with 1s timer for missed user_joined races
- Add non-initiator takeover after 5s when the initiator fails to send
  an offer (NON_INITIATOR_GIVE_UP_MS)
- Scope peerServerMap per signaling URL to prevent cross-server
  collisions
- Add socket identity guards on all signaling event handlers
- Replace canReusePeerConnection with hasActivePeerConnection and
  isPeerConnectionNegotiating with extended grace periods

Client - peer connections:
- Extract replaceUnusablePeer helper to deduplicate stale peer
  replacement in offer and ICE handlers
- Add stale connectionstatechange guard to ignore events from replaced
  RTCPeerConnection instances
- Use deterministic initiator election in peer recovery reconnects
- Track createdAt on PeerData for staleness detection

Client - presence:
- Add multi-room presence tracking via presenceServerIds on User
- Replace clearUsers + individual userJoined with syncServerPresence
  for atomic server roster updates
- Make userLeft handle partial server removal instead of full eviction

Documentation:
- Add server-side connection hygiene, non-initiator takeover, and stale
  peer replacement sections to the realtime README
2026-04-04 02:47:58 +02:00
myxelium ae0ee8fac7 Fix lint, make design more consistent, add license texts,
Queue Release Build / prepare (push) Successful in 11s
Deploy Web Apps / deploy (push) Successful in 14m0s
Queue Release Build / build-linux (push) Successful in 35m41s
Queue Release Build / build-windows (push) Successful in 28m53s
Queue Release Build / finalize (push) Successful in 2m6s
2026-04-02 04:08:53 +02:00
myxelium 37cac95b38 Add access control rework 2026-04-02 03:18:37 +02:00
myxelium 314a26325f Database changes to make it better practise 2026-04-02 01:32:08 +02:00
myxelium 5d7e045764 feat: Add chat seperator and restore last viewed chat on restart 2026-04-02 00:47:44 +02:00
myxelium bbb6deb0a2 feat: Theme engine
big changes
2026-04-02 00:08:38 +02:00
myxelium 65b9419869 Rework design part 1 2026-04-01 19:31:00 +02:00
myxelium fed270d28d Fix issues with server navigation 2026-04-01 18:18:31 +02:00
myxelium 8b6578da3c fix: Notification audio
Queue Release Build / prepare (push) Successful in 16s
Deploy Web Apps / deploy (push) Successful in 11m55s
Queue Release Build / build-linux (push) Successful in 30m56s
Queue Release Build / build-windows (push) Successful in 27m50s
Queue Release Build / finalize (push) Successful in 2m0s
2026-03-30 21:14:26 +02:00
myxelium 851d6ae759 fix: Prefer cached channels before loaded 2026-03-30 20:37:24 +02:00
myxelium 64e34ad586 feat: basic selected server indicator 2026-03-30 04:54:02 +02:00
myxelium e3b23247a9 feat: Close to tray 2026-03-30 04:48:34 +02:00
myxelium 42ac712571 feat: Add notifications 2026-03-30 04:41:58 +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 83694570e3 feat: Allow admin to create new text channels 2026-03-30 01:25:56 +02:00
myxelium 109402cdd6 perf: Health snapshot changes 2026-03-30 00:28:45 +02:00
myxelium eb23fd71ec perf: Optimizing the image loading
Does no longer load all klipy images through image proxy from signal server. Improves loading performance.
2026-03-30 00:26:28 +02:00
myxelium 11917f3412 fix: Make attachments unique when downloaded
Fixes the issue with attachments replacing each other locally so files with same filename appears as the same file
2026-03-30 00:08:53 +02:00
myxelium 8162e0444a Move toju-app into own its folder 2026-03-29 23:55:24 +02:00
myxelium 0467a7b612 documentation improvement 2026-03-23 01:34:18 +01:00
myxelium 971a5afb8b ddd test 2 2026-03-23 00:42:08 +01:00
myxelium fe9c1dd1c0 ddd test 2026-03-20 03:05:29 +01:00
myxelium 429bb9d8ff Chat message placeholder adjustment 2026-03-19 21:39:47 +01:00
myxelium b5d676fb78 New attempt to fix windows screenshare 2026-03-19 21:39:20 +01:00
myxelium aa595c45d8 Fix autostart on linux 2026-03-19 21:38:47 +01:00
myxelium 1c7e535057 Possibly screensharing fix for windows where they get deafened when screensharing with audio
Queue Release Build / prepare (push) Successful in 14s
Deploy Web Apps / deploy (push) Successful in 9m24s
Queue Release Build / build-linux (push) Successful in 24m57s
Queue Release Build / build-windows (push) Successful in 25m21s
Queue Release Build / finalize (push) Successful in 1m43s
2026-03-19 04:15:59 +01:00
myxelium 8f960be1e9 Resync username instead of using Anonymous 2026-03-19 03:57:51 +01:00
myxelium 9a173792a4 Fix users list to only show server users 2026-03-19 03:48:41 +01:00
myxelium cb2c0495b9 hotfix handshake issue
Queue Release Build / prepare (push) Successful in 16s
Deploy Web Apps / deploy (push) Successful in 10m15s
Queue Release Build / build-linux (push) Successful in 26m14s
Queue Release Build / build-windows (push) Successful in 25m41s
Queue Release Build / finalize (push) Successful in 1m51s
2026-03-19 03:34:26 +01:00
myxelium c3ef8e8800 Allow multiple signal servers (might need rollback)
Queue Release Build / prepare (push) Successful in 17s
Deploy Web Apps / deploy (push) Successful in 9m58s
Queue Release Build / build-linux (push) Successful in 26m26s
Queue Release Build / build-windows (push) Successful in 25m3s
Queue Release Build / finalize (push) Successful in 1m43s
2026-03-19 02:11:15 +01:00
myxelium c862c2fe03 Auto start with system
Queue Release Build / prepare (push) Has been cancelled
Queue Release Build / build-linux (push) Has been cancelled
Queue Release Build / build-windows (push) Has been cancelled
Queue Release Build / finalize (push) Has been cancelled
Deploy Web Apps / deploy (push) Successful in 6m2s
2026-03-18 23:46:16 +01:00
myxelium 4faa62864d Fix syncing issues
Queue Release Build / prepare (push) Has been cancelled
Queue Release Build / build-linux (push) Has been cancelled
Deploy Web Apps / deploy (push) Has been cancelled
Queue Release Build / build-windows (push) Has been cancelled
Queue Release Build / finalize (push) Has been cancelled
2026-03-18 23:11:48 +01:00
myxelium 1cdd1c5d2b fix typing indicator on wrong server
Queue Release Build / build-linux (push) Blocked by required conditions
Queue Release Build / prepare (push) Successful in 15s
Queue Release Build / finalize (push) Has been cancelled
Queue Release Build / build-windows (push) Has been cancelled
Deploy Web Apps / deploy (push) Successful in 16m15s
2026-03-18 22:10:11 +01:00
myxelium 141de64767 Reconnection when signal server is not active and minor changes 2026-03-18 20:45:31 +01:00
myxelium eb987ac672 Private servers with password and invite links (Experimental) 2026-03-18 20:42:40 +01:00
myxelium f8fd78d21a Add server variables
Queue Release Build / prepare (push) Successful in 21s
Deploy Web Apps / deploy (push) Successful in 15m14s
Queue Release Build / build-linux (push) Successful in 22m12s
Queue Release Build / build-windows (push) Successful in 23m20s
Queue Release Build / finalize (push) Successful in 2m12s
2026-03-15 16:12:21 +01:00
myxelium 150c45c31a Use wayland if possible on linux
Queue Release Build / prepare (push) Successful in 58s
Deploy Web Apps / deploy (push) Successful in 22m58s
Queue Release Build / build-windows (push) Successful in 32m8s
Queue Release Build / finalize (push) Successful in 3m11s
Queue Release Build / build-linux (push) Successful in 1h10m11s
2026-03-13 20:14:19 +01:00
myxelium 00adf39121 Add translation support for website
Queue Release Build / prepare (push) Successful in 1m20s
Deploy Web Apps / deploy (push) Successful in 17m37s
Queue Release Build / build-windows (push) Successful in 39m8s
Queue Release Build / build-linux (push) Successful in 1h3m53s
Queue Release Build / finalize (push) Successful in 5m43s
2026-03-13 03:45:29 +01:00
myxelium 2b6e477c9a [Attempt 1] fix slow website
Queue Release Build / prepare (push) Successful in 25s
Queue Release Build / finalize (push) Has been cancelled
Queue Release Build / build-linux (push) Has started running
Queue Release Build / build-windows (push) Has been cancelled
Deploy Web Apps / deploy (push) Successful in 17m20s
2026-03-13 02:46:21 +01:00
myxelium 22d355a522 [Experimental Screenshare audio fix] Seperate logic to own files (minor change can possibly revert) 2026-03-13 02:26:55 +01:00
myxelium 15c5952e29 Improved logger 2026-03-13 00:48:33 +01:00
myxelium 781c05294f feat!: [Experimental hotfix 2] Fix Audio stream handling on windows electron
Experimental fix for solving replacement of mic audio when enabling screenshare audio on windows electron

On Windows Electron, startWithElectronDesktopCapturer uses getUserMedia({ chromeMediaSource: 'desktop' }) for both video and audio. This getUserMedia desktop audio call can interfere with / replace the existing mic getUserMedia stream, killing voice audio.

BREAKING CHANGE: possibly streaming
2026-03-12 23:55:38 +01:00
myxelium 778e75bef5 fix: [Experimental hotfix 1] Fix Signaling issues Toju App
1. Server: WebSocket ping/pong heartbeat (index.ts)
Added a 30-second ping interval that pings all connected clients
Connections without a pong response for 45 seconds are terminated and cleaned up
Extracted removeDeadConnection() to deduplicate the cleanup logic between close events and dead connection reaping
2. Server: Fixed sendServerUsers filter bug (handler.ts:13)
Removed && cu.displayName from the filter — users who joined a server before their identify message was processed were silently invisible to everyone. This was the direct cause of "can't see each other" in session 2.
3. Client: Typing message now includes serverId
Added serverId: this.webrtc.currentServerId to the typing payload
Added a currentServerId getter on WebRTCService
2026-03-12 23:53:10 +01:00
myxelium 7bf37ba510 Website v3
Queue Release Build / prepare (push) Successful in 39s
Deploy Web Apps / deploy (push) Successful in 16m30s
Queue Release Build / build-linux (push) Successful in 52m31s
Queue Release Build / build-windows (push) Successful in 36m48s
Queue Release Build / finalize (push) Successful in 3m20s
2026-03-12 14:32:48 +01:00
myxelium 3c04b5db26 Add webapp release
Queue Release Build / prepare (push) Successful in 50s
Queue Release Build / build-windows (push) Has been cancelled
Queue Release Build / finalize (push) Has been cancelled
Queue Release Build / build-linux (push) Has been cancelled
Deploy Web Apps / deploy (push) Has been cancelled
2026-03-12 13:37:46 +01:00
myxelium 45e0b09af8 Toju Website V2 2026-03-12 13:21:33 +01:00
myxelium 106212ef3d feat: Add website v1
Queue Release Build / prepare (push) Successful in 13s
Queue Release Build / build-windows (push) Successful in 36m11s
Queue Release Build / build-linux (push) Successful in 41m21s
Queue Release Build / finalize (push) Successful in 3m44s
Not final:
Needs more file icons
clean up some text
2026-03-12 01:33:45 +01:00