Feat/filtro de chat - #66
Merged
Merged
Conversation
Lo pidio el profe despues de ver una sesion: con cinco personas en una sala el chat es un caos. Y va a doler mas con veinte alumnos y en un proyecto de meses entre cuatro. Se hace todo en el cliente: el historial ya llega completo en el `joined` y `msg.from` trae el nombre del autor, comparable contra `member.name` y `agent.name`. Sin tocar el server ni el protocolo. El control son los avatares que ya estaban arriba, ahora clicables. Se reutilizan en vez de meter una fila de chips: en una columna de 340px cada control nuevo se paga caro, y el nombre y el color ya estaban en pantalla. Los agentes se suman a esa misma fila. Los mensajes de sistema no son todos iguales. "Entro agente-1 a la sala" es justo el ruido que hay que quitar; "agente-2: se acabo el credito" es algo que si no ves, te quedas esperando sin saber por que nada pasa. Se ocultan los de rutina y se dejan los fallos, apoyandose en el color con el que el server ya los distingue. Dos trampas que costaron encontrar: `esSeguido` agrupa mensajes contiguos del mismo autor al estilo Discord y recibe el array con el indice. Hay que pasarle el array YA FILTRADO: con el completo, dos mensajes que quedan contiguos tras filtrar se pintarian como no-seguidos, repitiendo avatar y nombre. Y el streaming del agente no sale de `messages` sino de un estado aparte indexado por agentId. Sin filtrarlo tambien, un agente excluido seguiria apareciendo mientras escribe. Con filtro puesto se avisa cuantos mensajes hay ocultos: un chat filtrado se ve igual que uno vacio, y sin esa linea no habria forma de saber que te estas perdiendo algo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBNGubbzvoNEBs8268pzzo
Los avatares clicables funcionan, pero nada en ellos anuncia que se puede filtrar: con cinco personas hablando, un filtro que hay que descubrir por accidente no sirve de nada. Las dos formas conviven: el boton hace descubrible la funcion, los avatares son el atajo para quien ya lo sabe. Y el desplegable escala mejor — con tres agentes y cinco personas la fila de avatares se llena, mientras que una lista con nombres se lee igual. Con filtro puesto el boton deja de ser neutro y dice a cuantos esta filtrando: es la unica pista permanente de que lo que se ve no es todo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBNGubbzvoNEBs8268pzzo
Se vio en una sala real: en el filtro salian el dueño y los dos agentes, pero no el otro participante — sus mensajes estaban en el chat y no habia forma de aislarlos. `members` es la lista de quien esta AHORA, y quien cierra la pestaña desaparece de ahi aunque su conversacion siga. Y filtrar por alguien que ya se fue es justo lo que se quiere poder hacer: es su hilo el que interesa aislar cuando el chat se lleno. Ahora la lista se arma de los conectados MAS los autores del historial. A los que siguen dentro se les toma el color real; a los que se fueron, el que ya trae su mensaje. Los avatares de arriba se quedan como estan: esa fila es la presencia y debe decir quien esta, no quien estuvo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBNGubbzvoNEBs8268pzzo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.