Skip to content

Feat/filtro de chat - #66

Merged
ErickUser1 merged 3 commits into
mainfrom
feat/filtro-de-chat
Sep 6, 2026
Merged

ErickUser1 merged 3 commits into
mainfrom
feat/filtro-de-chat

Conversation

@ErickUser1

Copy link
Copy Markdown
Owner

No description provided.

ErickHub192 and others added 3 commits September 5, 2026 21:00
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
@ErickUser1
ErickUser1 merged commit d20f9d4 into main Sep 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants