bug: search queries with &, #, or + return wrong results — URL params not encoded
@deepak0x ya está trabajando en esto.
Desde el 6/4/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Comienza en packages/api/src/EmbeddedChatApi.ts, en getSearchMessages, y revisa la construcción de la URL en getUserStatus, userInfo y userData. Verifica el comportamiento con valores que contengan &, # y +; se considera terminado cuando estos valores llegan a la API como el texto de búsqueda, el ID de usuario o el nombre de usuario previsto, en lugar de alterar la consulta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Searching for anything with &, #, or + in it returns wrong results or nothing at all.
getSearchMessages in EmbeddedChatApi.ts (line 1124) builds the URL with a template literal:
`${this.host}/api/v1/chat.search?roomId=${this.rid}&searchText=${text}`
The text param goes straight into the URL without encoding. So:
hello & goodbye— the&starts a new query param. Server receivessearchText=helloand a straygoodbyeparam#channel— the#is treated as a URL fragment.searchTextarrives as an empty stringhello world+test— the+is read as a space. Server getshello world test
Same pattern in three other methods:
getUserStatus(line 1236) —userId=${reqUserId}userInfo(line 1253) —userId=${reqUserId}userData(line 1270) —username=${username}
The userId ones are less likely to hit this in practice since IDs are usually alphanumeric, but usernames with special characters would break userData.
File: packages/api/src/EmbeddedChatApi.ts
- Lenguaje dominante
- JavaScript
- Estrellas
- 168
- Forks
- 382
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de RocketChat/EmbeddedChat
-
docs: README says Node 22 is required, but .nvmrc pins v24 and preinstall enforces itPosiblemente ocupada @ishan-one8 la tomó hace 10 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
RocketChat/EmbeddedChat#1377 ·
-
test: isMessageSequential in layout_editor has no coveragePosiblemente ocupada @ishan-one8 la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
RocketChat/EmbeddedChat#1373 ·
-
feat : Keep Emoji Picker open for continuous multi-emoji selectionPosiblemente ocupada @iRahul360 la tomó hace 57 días. Abiertoenhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
RocketChat/EmbeddedChat#1360 · 1 comentario ·
-
Permissions change-detection in useFetchChatData is dead — applyPermissions re-runs on every callPosiblemente ocupada @yash113gadia la tomó hace 134 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
RocketChat/EmbeddedChat#1317 ·
-
Only the last emoji shortname in a message is converted to unicodePosiblemente ocupada @yash113gadia la tomó hace 134 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
RocketChat/EmbeddedChat#1315 ·
Todos los issues de RocketChat/EmbeddedChat
Issues similares
-
Access-request approve silently discards the decider's note (decision_note written only on deny)Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Uuriko/project-room#3378 ·
Los mantenedores suelen responder en 1 día
-
Notifications pagination accepts NaN and negative LIMIT/OFFSETPosiblemente ocupada @Senthil455 la tomó hoy. AbiertoBUGS MEDIUM
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
elixpo/blogs.elixpo#419 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
immich-app/immich#32426 ·
Los mantenedores suelen responder en 1 día