Fix bugs and clean noise reduction

This commit is contained in:
2026-03-06 02:22:43 +01:00
parent 0ed9ca93d3
commit 2d84fbd91a
39 changed files with 3443 additions and 1544 deletions

View File

@@ -49,6 +49,31 @@ export interface User {
screenShareState?: ScreenShareState;
}
/**
* Persisted membership record for a room/server.
*
* Unlike `User`, this survives when a member goes offline so the UI can
* continue to list known server members.
*/
export interface RoomMember {
/** The member's local application/database identifier. */
id: string;
/** Optional network-wide peer identifier. */
oderId?: string;
/** Login username (best effort; may be synthesized from display name). */
username: string;
/** Human-readable display name shown in the UI. */
displayName: string;
/** Optional avatar URL. */
avatarUrl?: string;
/** Role within the room/server. */
role: UserRole;
/** Epoch timestamp (ms) when the member first joined. */
joinedAt: number;
/** Epoch timestamp (ms) when the member was last seen online. */
lastSeenAt: number;
}
/**
* A communication channel within a server (either text or voice).
*/
@@ -141,6 +166,8 @@ export interface Room {
permissions?: RoomPermissions;
/** Text and voice channels within the server. */
channels?: Channel[];
/** Persisted member roster, including offline users. */
members?: RoomMember[];
}
/**
@@ -307,6 +334,9 @@ export type ChatEventType =
| 'room-settings-update'
| 'voice-state'
| 'chat-inventory-request'
| 'member-roster-request'
| 'member-roster'
| 'member-leave'
| 'voice-state-request'
| 'state-request'
| 'screen-state'
@@ -362,6 +392,8 @@ export interface ChatEvent {
role?: UserRole;
/** Updated channel list. */
channels?: Channel[];
/** Synced room member roster. */
members?: RoomMember[];
}
/**