myxelium and Cursor
1671a04f03
fix: Bug - Emojis should be user bound not client bound
...
Bind custom emoji library membership to the signed-in user instead of the
client. CustomEmojiService now tracks saved emoji ids per user id in
localStorage (metoyou_custom_emoji_saved:<userId>) and the picker only shows
the active user's set, seeded on first load from legacy savedByUser rows the
user created. This stops a second account on the same client (or Electron's
shared SQLite database) from inheriting another user's emoji picker, while
keeping synced assets available for message rendering.
Adds unit coverage for per-user scoping and a single-page-load Playwright e2e
that switches users client-side (second user joins the first user's server)
and asserts no library leak.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 04:09:06 +02:00
myxelium and Cursor
cb386394d0
fix: Bug - No login screen mobile phone on startup
...
Signed-out mobile visitors landing on / or /dashboard were intentionally
kept on a logged-out /dashboard, so they were never greeted with a login
screen on startup. Replace the imperative startup-redirect logic in
App.ngOnInit with a platform-agnostic pure rule
resolveUnauthenticatedStartupRedirect: non-public routes redirect to
/login (with a safe returnUrl), public routes (/login, /register,
/invite/...) are left alone. Mobile is no longer special-cased.
- Unit: auth-navigation.rules.spec.ts
- E2E: e2e/tests/mobile/mobile-login-on-startup.spec.ts (mobile viewport
set before navigation; /dashboard and / both land on /login)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 03:38:16 +02:00
myxelium and Cursor
182828bb1e
fix: Bug - Two devices sharing same user says "Shared from your device"
...
Gate the "Shared from your device" label and the hidden download
affordance on whether this device actually holds the file bytes, not on
whether the current user uploaded it. uploaderPeerId is the user id, so
the old check claimed ownership on every device of the uploader,
blocking view/download on second devices that only synced metadata.
Also include attachment metadata in the account_sync chat-sync-batch so
sibling devices learn about synced attachments at all.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 03:29:47 +02:00
myxelium
49b602dbda
fix: Bug - No android app icon
2026-06-11 03:03:10 +02:00
myxelium
d72a027c9a
fix: Bug - Video attachment on android gets sent in the message bubble above with no preview image
2026-06-11 02:44:22 +02:00
myxelium
b1b3d93851
fix: Bug - Fresh users have the server list in dashboard completely empty until anything searched
2026-06-11 02:11:31 +02:00
myxelium
494a05e606
fix: Bug - Local files should be remembered by client
2026-06-11 01:54:00 +02:00
myxelium
5bf4f698df
fix: Bug - Attachments gets syncronized corrupt
2026-06-11 00:37:06 +02:00
myxelium
d174536272
fix: Chats doesn't sync for multi client users
2026-06-11 00:04:49 +02:00
myxelium
d0aff6319d
fix: should now sync with other devices
Queue Release Build / prepare (push) Successful in 25s
Deploy Web Apps / deploy (push) Successful in 7m8s
Queue Release Build / build-windows (push) Successful in 28m10s
Queue Release Build / build-linux (push) Successful in 44m38s
Queue Release Build / build-android (push) Successful in 18m36s
Queue Release Build / finalize (push) Successful in 1m40s
2026-06-09 22:00:39 +02:00
myxelium
1274ad9b46
fix: search
2026-06-09 22:00:06 +02:00
myxelium
eb51f043ac
fix: Major bug cleanup pass 1
Queue Release Build / prepare (push) Successful in 19s
Deploy Web Apps / deploy (push) Successful in 8m12s
Queue Release Build / build-windows (push) Successful in 27m44s
Queue Release Build / build-linux (push) Successful in 48m1s
Queue Release Build / finalize (push) Successful in 2m42s
Queue Release Build / build-android (push) Successful in 22m7s
2026-06-09 17:59:54 +02:00
myxelium
80d7728e66
fix: No longer displays edited on all messages and fix Disconnected from signaling server on multiple clients
Queue Release Build / prepare (push) Successful in 19s
Deploy Web Apps / deploy (push) Successful in 8m19s
Queue Release Build / build-windows (push) Successful in 27m48s
Queue Release Build / build-linux (push) Successful in 47m35s
Queue Release Build / build-android (push) Successful in 21m15s
Queue Release Build / finalize (push) Successful in 2m30s
2026-06-07 15:05:12 +02:00
myxelium
83456c018c
fix: Fix multiple bugs with new authentication flow
2026-06-07 15:04:21 +02:00
myxelium
9fc26b1ccf
ci: fix apk build
Queue Release Build / prepare (push) Successful in 23s
Deploy Web Apps / deploy (push) Successful in 6m35s
Queue Release Build / build-windows (push) Successful in 27m49s
Queue Release Build / build-linux (push) Successful in 44m3s
Queue Release Build / build-android (push) Successful in 20m59s
Queue Release Build / finalize (push) Successful in 2m40s
2026-06-05 18:37:17 +02:00
myxelium
45675192a5
feat: Security
2026-06-05 18:34:01 +02:00
myxelium
ee293d7daf
feat: Rename to Toju and add translation
Deploy Web Apps / deploy (push) Successful in 5m52s
Build Android APK / build-android-apk (push) Failing after 23m15s
Queue Release Build / prepare (push) Successful in 1m42s
Queue Release Build / build-linux (push) Failing after 9m33s
Queue Release Build / build-windows (push) Successful in 26m5s
Queue Release Build / finalize (push) Has been skipped
2026-06-05 17:17:29 +02:00
myxelium
8ecfc9a1fe
feat: Add slashcommand api
2026-06-05 17:12:26 +02:00
myxelium
4070ef6caf
perf: Add ram metric
2026-06-05 15:27:33 +02:00
myxelium
a675f12e61
feat: Add deafen to pc, fix mobiel view, fix freeze on startup
2026-06-05 15:27:06 +02:00
myxelium
35f52b0356
fix: attachments broken
Build Android APK / build-android-apk (push) Failing after 3m5s
Queue Release Build / prepare (push) Successful in 32s
Deploy Web Apps / deploy (push) Successful in 9m30s
Queue Release Build / build-linux (push) Successful in 47m6s
Queue Release Build / finalize (push) Successful in 58s
Queue Release Build / build-windows (push) Successful in 28m7s
2026-06-05 08:02:29 +02:00
myxelium
9a1305f976
feat: Android APP V1 - Experimental Alpha
2026-06-05 07:40:25 +02:00
myxelium
bf4e6891d1
feat: signal server tag
2026-06-05 06:16:02 +02:00
myxelium
6865147e8f
feat: Add emoji and alot of other fixes
2026-06-05 05:40:18 +02:00
myxelium
ca069e2f61
fix: chat scroll fix
2026-06-05 02:46:39 +02:00
myxelium
9e1d75d038
style: Consistent backdrop and create server in server-rail
...
wider server rail with larger icons ans slightly animated.
2026-06-05 02:34:02 +02:00
myxelium
2f6c52e73c
feat: dashboard
2026-06-05 01:51:03 +02:00
myxelium
147858de2f
fix: Improve autoscroll to bottom
2026-06-04 18:34:38 +02:00
myxelium
6d021a296b
fix: Unread notificaitons on startup
2026-06-04 18:18:22 +02:00
myxelium
161f57f52e
fix: solve small pm chat ui issues
...
unwrap the pill
fix the fetching images in pm not auto download
2026-05-25 17:17:32 +02:00
myxelium
1259645706
style: Update default theme
2026-05-25 16:51:44 +02:00
myxelium
155fe20862
wip: optimizations
2026-05-23 15:28:40 +02:00
myxelium
232a9ea8ea
test: Ensure tests work after latest changes
Queue Release Build / prepare (push) Successful in 17s
Deploy Web Apps / deploy (push) Successful in 7m20s
Queue Release Build / build-linux (push) Successful in 33m59s
Queue Release Build / finalize (push) Successful in 41s
Queue Release Build / build-windows (push) Successful in 25m4s
2026-05-19 00:52:28 +02:00
myxelium
54e8b9a5e4
feat: Update how messages load and sync, allow plugins to import messages
Queue Release Build / prepare (push) Successful in 23s
Deploy Web Apps / deploy (push) Successful in 7m36s
Queue Release Build / build-windows (push) Successful in 28m3s
Queue Release Build / build-linux (push) Successful in 44m14s
Queue Release Build / finalize (push) Successful in 39s
2026-05-18 23:21:09 +02:00
myxelium
94428ed170
fix: Mobile style fixes and other small ui fixes
2026-05-18 23:20:32 +02:00
myxelium
afb64520ed
perf: server navigation
2026-05-18 19:38:08 +02:00
myxelium
0152ed9dd2
fix: memory leak hunting and reconnecting on data error
2026-05-18 19:37:30 +02:00
myxelium
dea114aed0
feat: Response mobile layout support v1
Queue Release Build / prepare (push) Successful in 1m6s
Deploy Web Apps / deploy (push) Successful in 7m35s
Queue Release Build / build-linux (push) Successful in 46m28s
Queue Release Build / finalize (push) Successful in 49s
Queue Release Build / build-windows (push) Successful in 29m57s
2026-05-18 03:03:55 +02:00
myxelium
ecb1a4b3a0
refactor: Remove hardcoded values
Queue Release Build / prepare (push) Successful in 2m28s
Deploy Web Apps / deploy (push) Successful in 7m58s
Queue Release Build / build-linux (push) Successful in 46m59s
Queue Release Build / build-windows (push) Successful in 26m2s
Queue Release Build / finalize (push) Successful in 23s
2026-05-17 18:18:14 +02:00
myxelium
a173299ad3
fix: Game detection improvements
Queue Release Build / prepare (push) Successful in 27s
Deploy Web Apps / deploy (push) Successful in 10m8s
Queue Release Build / finalize (push) Has been cancelled
Queue Release Build / build-linux (push) Has been cancelled
Queue Release Build / build-windows (push) Has been cancelled
2026-05-17 17:47:40 +02:00
myxelium
8631290c01
fix: Improve plugin ui entry points, Fix chat scroll, fix notifications, fix user rights
2026-05-17 16:09:16 +02:00
myxelium
8e3ccf4157
feat: Add incoming call modal
2026-05-17 16:08:24 +02:00
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