{ "stats": { "startTime": "2026-08-12T10:58:09.830Z", "duration": 804598.4550000001, "expected": 65, "skipped": 0, "unexpected": 0, "flaky": 0 }, "failures": [], "timeouts": [], "slow": [ { "title": "8 users with different signal configs can voice, mute, deafen, and chat concurrently", "file": "voice/mixed-signal-config-voice.spec.ts", "status": "passed", "duration": 128215, "error": null, "errors": [], "timeoutHint": false }, { "title": "keeps 8 users on 2 signal apis while voice, mute, and deafen stay consistent for 20+ seconds", "file": "voice/multi-signal-eight-user-voice.spec.ts", "status": "passed", "duration": 125136, "error": null, "errors": [], "timeoutHint": false }, { "title": "gives a new user a blank slate and restores only that user local data after account switches", "file": "auth/user-session-data-isolation.spec.ts", "status": "passed", "duration": 53448, "error": null, "errors": [], "timeoutHint": false }, { "title": "shows per-server channel lists on first saved-server click", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 33665, "error": null, "errors": [], "timeoutHint": false }, { "title": "syncs messages between same-user devices and late-joining users after offline gaps", "file": "chat/multi-client-chat-sync.spec.ts", "status": "passed", "duration": 30290, "error": null, "errors": [], "timeoutHint": false } ], "all": [ { "title": "unwraps nested login returnUrl chains after successful login", "file": "auth/login-return-url.spec.ts", "status": "passed", "duration": 3506, "timeoutHint": false }, { "title": "redirects unauthenticated /servers visits to login and returns there after login", "file": "auth/login-return-url.spec.ts", "status": "passed", "duration": 3088, "timeoutHint": false }, { "title": "lets a returning user log back in after an expired session redirect", "file": "auth/login-return-url.spec.ts", "status": "passed", "duration": 2811, "timeoutHint": false }, { "title": "covers identity, chat sync, typing exclusion, and voice exclusivity", "file": "auth/multi-device-session.spec.ts", "status": "passed", "duration": 8640, "timeoutHint": false }, { "title": "auto-provisions a foreign signal server when a new endpoint is added", "file": "auth/multi-signal-server-auth.spec.ts", "status": "passed", "duration": 3836, "timeoutHint": false }, { "title": "does not redirect to authorize login after a foreign server goes offline", "file": "auth/offline-signal-server-no-login-loop.spec.ts", "status": "passed", "duration": 3727, "timeoutHint": false }, { "title": "preserves a user saved rooms and local history across app restarts", "file": "auth/user-session-data-isolation.spec.ts", "status": "passed", "duration": 19725, "timeoutHint": false }, { "title": "gives a new user a blank slate and restores only that user local data after account switches", "file": "auth/user-session-data-isolation.spec.ts", "status": "passed", "duration": 53448, "timeoutHint": false }, { "title": "each caption-less attachment keeps its own message bubble and preview", "file": "chat/attachment-only-message-grouping.spec.ts", "status": "passed", "duration": 2507, "timeoutHint": false }, { "title": "shows per-server channel lists on first saved-server click", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 33665, "timeoutHint": false }, { "title": "shows local room history on first saved-server click", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 3598, "timeoutHint": false }, { "title": "syncs messages in a newly created text channel", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 19613, "timeoutHint": false }, { "title": "shows typing indicators to other users", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 4090, "timeoutHint": false }, { "title": "edits and removes messages for both users", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 5534, "timeoutHint": false }, { "title": "syncs image and file attachments between users", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 4442, "timeoutHint": false }, { "title": "syncs multi-chunk image attachments byte-identical between users", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 4369, "timeoutHint": false }, { "title": "renders link embeds for shared links", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 4303, "timeoutHint": false }, { "title": "sends KLIPY GIF messages with mocked API responses", "file": "chat/chat-message-features.spec.ts", "status": "passed", "duration": 4610, "timeoutHint": false }, { "title": "a second user on the same client does not inherit the first user library", "file": "chat/custom-emoji-user-binding.spec.ts", "status": "passed", "duration": 3929, "timeoutHint": false }, { "title": "opens a DM from a user card and queues messages while offline", "file": "chat/dm-flow.spec.ts", "status": "passed", "duration": 3882, "timeoutHint": false }, { "title": "delivers a live DM to the recipient conversation", "file": "chat/dm-flow.spec.ts", "status": "passed", "duration": 4024, "timeoutHint": false }, { "title": "shows friend and message actions on the search people list", "file": "chat/dm-flow.spec.ts", "status": "passed", "duration": 3849, "timeoutHint": false }, { "title": "browser receiver can request and download a generic file above the auto-save cap", "file": "chat/large-generic-file-transfer.spec.ts", "status": "passed", "duration": 5690, "timeoutHint": false }, { "title": "remembers sent image and file across a page reload with no peer connected", "file": "chat/local-attachment-persistence.spec.ts", "status": "passed", "duration": 2793, "timeoutHint": false }, { "title": "syncs messages between same-user devices and late-joining users after offline gaps", "file": "chat/multi-client-chat-sync.spec.ts", "status": "passed", "duration": 30290, "timeoutHint": false }, { "title": "only the uploading device claims \"Shared from your device\"; the second same-user device can request it", "file": "chat/multi-device-attachment-sharing.spec.ts", "status": "passed", "duration": 4333, "timeoutHint": false }, { "title": "relays file-announce metadata to a sibling device that is already online during upload", "file": "chat/multi-device-attachment-sharing.spec.ts", "status": "passed", "duration": 4266, "timeoutHint": false }, { "title": "groups three images in one message bubble with a visible grid", "file": "chat/multi-image-gallery.spec.ts", "status": "passed", "duration": 2294, "timeoutHint": false }, { "title": "shows desktop notifications and unread badges for inactive channels", "file": "chat/notifications.spec.ts", "status": "passed", "duration": 4758, "timeoutHint": false }, { "title": "keeps unread badges visible when a muted channel suppresses desktop popups", "file": "chat/notifications.spec.ts", "status": "passed", "duration": 20875, "timeoutHint": false }, { "title": "syncs avatar changes for online and late-joining users and persists after restart", "file": "chat/profile-avatar-sync.spec.ts", "status": "passed", "duration": 9605, "timeoutHint": false }, { "title": "syncs display name and description changes for online and late-joining users and persists after restart", "file": "chat/profile-avatar-sync.spec.ts", "status": "passed", "duration": 11864, "timeoutHint": false }, { "title": "loads the chat-server image for online, late-joining, restarted, and discovery users", "file": "chat/server-icon-sync.spec.ts", "status": "passed", "duration": 14204, "timeoutHint": false }, { "title": "ships a launcher icon and splash for every required density", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 1, "timeoutHint": false }, { "title": "replaces every stock Capacitor placeholder with the brand asset", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 2, "timeoutHint": false }, { "title": "uses the brand purple as the adaptive-icon background", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 1, "timeoutHint": false }, { "title": "renders the brand mark (white cat on a purple disc) in the launcher bitmap", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 13, "timeoutHint": false }, { "title": "renders the splash art as the brand mark centred on a purple field", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 7, "timeoutHint": false }, { "title": "insets the adaptive foreground so launcher masks do not clip the cat face", "file": "mobile/android-app-icon.spec.ts", "status": "passed", "duration": 3, "timeoutHint": false }, { "title": "greets a signed-out mobile visitor on /dashboard with the login screen", "file": "mobile/mobile-login-on-startup.spec.ts", "status": "passed", "duration": 1217, "timeoutHint": false }, { "title": "greets a signed-out mobile visitor on the app root with the login screen", "file": "mobile/mobile-login-on-startup.spec.ts", "status": "passed", "duration": 1181, "timeoutHint": false }, { "title": "exposes logout in the settings menu on mobile viewports", "file": "mobile/mobile-settings-logout.spec.ts", "status": "passed", "duration": 1704, "timeoutHint": false }, { "title": "runs chat, embed, soundboard, and profile APIs between two users", "file": "plugins/plugin-api-two-users.spec.ts", "status": "passed", "duration": 27382, "timeoutHint": false }, { "title": "installs, grants, activates, and logs an all-API test plugin", "file": "plugins/plugin-manager-ui.spec.ts", "status": "passed", "duration": 4564, "timeoutHint": false }, { "title": "covers plugin requirement, event, data, and websocket APIs with the fixture plugin", "file": "plugins/plugin-support-api.spec.ts", "status": "passed", "duration": 1913, "timeoutHint": false }, { "title": "single user screen share: video and audio flow to receiver, voice audio continues", "file": "screen-share/screen-share.spec.ts", "status": "passed", "duration": 15375, "timeoutHint": false }, { "title": "multiple users screen share simultaneously", "file": "screen-share/screen-share.spec.ts", "status": "passed", "duration": 11093, "timeoutHint": false }, { "title": "screen share connection stays stable for 10+ seconds", "file": "screen-share/screen-share.spec.ts", "status": "passed", "duration": 23371, "timeoutHint": false }, { "title": "a fresh account sees public servers in Popular Servers without searching", "file": "servers/server-discovery-default.spec.ts", "status": "passed", "duration": 3149, "timeoutHint": false }, { "title": "discovery falls back to the public listing when featured/trending routes 404", "file": "servers/server-discovery-default.spec.ts", "status": "passed", "duration": 3110, "timeoutHint": false }, { "title": "shows warning icon when a peer loses all connections", "file": "settings/connectivity-warning.spec.ts", "status": "passed", "duration": 21313, "timeoutHint": false }, { "title": "allows adding, removing, and reordering ICE servers", "file": "settings/ice-server-settings.spec.ts", "status": "passed", "duration": 3855, "timeoutHint": false }, { "title": "validates TURN entries require credentials", "file": "settings/ice-server-settings.spec.ts", "status": "passed", "duration": 2311, "timeoutHint": false }, { "title": "users with different ICE configs can voice chat together", "file": "settings/stun-turn-fallback.spec.ts", "status": "passed", "duration": 11549, "timeoutHint": false }, { "title": "keeps two users hearing each other after a data-channel error and close", "file": "voice/data-channel-recovery.spec.ts", "status": "passed", "duration": 10035, "timeoutHint": false }, { "title": "heals a three-user voice mesh when one client loses every data channel", "file": "voice/data-channel-recovery.spec.ts", "status": "passed", "duration": 12070, "timeoutHint": false }, { "title": "two users can ring, answer, chat, see self voice indicators, and exchange audio", "file": "voice/direct-call.spec.ts", "status": "passed", "duration": 17480, "timeoutHint": false }, { "title": "keeps private-call audio flowing after the data channel closes", "file": "voice/direct-call.spec.ts", "status": "passed", "duration": 8950, "timeoutHint": false }, { "title": "missing and ended private calls do not leave stale call controls behind", "file": "voice/direct-call.spec.ts", "status": "passed", "duration": 5345, "timeoutHint": false }, { "title": "callee is notified when the caller starts the call from the DM chat header", "file": "voice/dm-header-call-ring.spec.ts", "status": "passed", "duration": 4235, "timeoutHint": false }, { "title": "callee homed on another signal server is notified when called via their provisioned actor id", "file": "voice/dm-header-call-ring.spec.ts", "status": "passed", "duration": 4815, "timeoutHint": false }, { "title": "8 users with different signal configs can voice, mute, deafen, and chat concurrently", "file": "voice/mixed-signal-config-voice.spec.ts", "status": "passed", "duration": 128215, "timeoutHint": false }, { "title": "keeps 8 users on 2 signal apis while voice, mute, and deafen stay consistent for 20+ seconds", "file": "voice/multi-signal-eight-user-voice.spec.ts", "status": "passed", "duration": 125136, "timeoutHint": false }, { "title": "two users register, create server, join voice, and stay connected 10+ seconds with audio", "file": "voice/voice-full-journey.spec.ts", "status": "passed", "duration": 21107, "timeoutHint": false }, { "title": "clears stale mute state after abrupt disconnect and voice rejoin", "file": "voice/voice-mute-state-reset.spec.ts", "status": "passed", "duration": 6888, "timeoutHint": false } ] }