- Se descapó
- 28 de agosto de 2026 a las 2:12 UTC
- Autor
- Kamo
- Compromit
- 1296159
Abrir una ventana de chat costó siete solicitudes antes de que un mensaje se hiciera historia, miembros, recibos, marca-le, la instantánea no leída, el avatar de la contraparte y la política del compositor más hasta uno traducir POST por mensaje, y en el servidor una fila de auditoría de PHI escrita por mensaje, individualmente. Cerrando la ventana Tiró todo, así que mirando una conversación y de vuelta pagado por un centenar filas para reconstruir la lista que acababa de ser descartada. Minimizar nunca fue el caso caro: el muelle mantiene montado una ventana minimizada. El cierre fue, y así fue el navegante maximizado, que se abre y demote ventanas todo el día. La vida de la ventana y la de la conversación no son lo mismo. Una ventana Ahora ACQUIRES una conversación y RELEASES, y la conversación sobrevive a la lanzamiento por cinco minutos (-kamo/tool-core's keep-alive register, limitado por el tiempo Y cuenta, nunca desalojar una ventana sigue mostrando). Reaborando dentro de eso No cuesta nada, y porque el enchufe nunca se dejó caer lo que vuelve es un conversación actual en lugar de una enjalacada. Pasado el conjunto de mantener-alive, chat-core Sólo pregunta por lo que llegó después del mensaje más nuevo que sostiene. El mismo registro ahora lleva las cuatro ventanas que cada uno laminó a mano de la misma Error: SMS, IA, boletos de apoyo y social mantuvieron su hilo en un uso cambios es que la re-fetch ocurre sobre la conversación en lugar de sobre un spinner. En lo social eso fue más que un flash: en blanco la lista también se en blanco últimaInboundTs, así que el compositor leyó la ventana de respuesta de 24 horas de Meta como CLOSED en un conversación que era perfectamente reutilizable. El render REDS la conversación y el efecto HOLDS él. Sólo un efecto garantiza una liberación a juego de una retención de renderizada sería un suscripción nada deja ir, pero un efecto se ejecuta después de la primera pintura, que dejaría una ventana reabierta parpadeando vacía para un marco antes de mostrar lo que ya tenía. La lectura no se sostiene, así que el mirador es seguro donde un adquirir no lo es. La adquisición espera a un espesor conocido. getMemberIdString () responde '' hasta useUserInfo cargas, y myMemberId decide si cada mensaje es del espesor propio; el viejo código construyó la conversación de todos modos y REBUILTuándo ser el verdadero identificador Llegó, lo que un registro clave en la sesión no puede hacer. No construir uno bajo una identidad que no tenemos todavía es la versión honesta, y se deja desperdiciar carga completa. También fuera del camino per-abierto: la re-leída no leída ahora sólo se dispara cuando un la conversación comienza genuinamente, no cuando una ventana adopta una viva cuyo no leído ya es cero y se mantiene allí; los avatares miembros se hacen memocizados como promesas, así que N ventanas comparten una lectura de directorio y una reapertura no cuesta nada; y el candado del compositor es semilla de la última respuesta, así que una ventana sobre una conversación congelada se detiene Rehacer un compositor abierto que cerrara un viaje de ida y vuelta más tarde. Lo que sobrevive una recarga dura es metadatos y nada más. tiene participante NAMES - qué herramientaWindowSnapshot ya persiste dentro de la el título de la ventana y dos booleans del estado de compositor, por lo que una ventana restaurada no es un Conversación con nadie en ella. No hay cuerpos de mensajes, nunca: MediaService las auditorías chat se lee como PHI, y una transcripción en el almacenamiento es una revelación sin Lea detrás de él. Los cuerpos siempre son re-fetched. El fichaje deja la vida conversaciones también, a las que no se puede llegar a la limpieza del almacenamiento. La BFF deja de analizar una página de cien mensajes en objetos y serializarlas espaldas hacia atrás para no cambiar los bytes, y lleva un ETag por lo que una lectura de repetición de una página sin cambios le cuesta a un validador en lugar de una transcripción. La corriente de arriba es todavía llamado cada vez. el OTK es de un solo uso y MediaService es el único lo que puede decir si este miembro puede leer esta sesión, así que un 304 servido sin hacer preguntas sería un caché respondiendo preguntas de autorización.