Pathfinder: parseJsonRpc joins multiple SSE data: lines with empty string
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- backend
Línea de trabajo
Comienza en packages/outpost/ai/src/pathfinder.ts, en parseJsonRpc, y revisa cómo se gestionan actualmente las líneas de datos SSE y los límites entre eventos. Añade cobertura para un body con varios eventos o varias líneas de datos, asegurándote de que los payloads de los eventos se separen correctamente y de que las líneas de datos dentro de un mismo evento se unan con saltos de línea; se considera terminado cuando la respuesta JSON-RPC se analiza sin una concatenación no válida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Spun out of the #112 review (non-blocking, edge case).
parseJsonRpc concatenates all data: payloads with ''. Per the SSE spec, data lines within one event join with \n, and separate events are distinct messages. So a reply chunked across multiple data: lines, or one carrying a notification plus the response, would concatenate into invalid JSON and throw. Harmless for the real server's current single-line, single-event tools/call reply (and it's live-tested), but brittle if the server ever streams/chunks.
Fix direction: parse per-event (split on blank lines), take the last data: event's payload, or join a single event's data lines with \n. Add a test with a multi-event / multi-data: body.
File: packages/outpost/ai/src/pathfinder.ts (parseJsonRpc).
- Lenguaje dominante
- TypeScript
- Estrellas
- 8
- Forks
- 4
- Merge medio
- 3 d 19 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin 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 CopilotKit/outpost
-
area: docs area: security roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CopilotKit/outpost#277 ·
Los mantenedores suelen responder en 3 días
-
area: infrastructure roadmap roadmap: later
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
CopilotKit/outpost#179 ·
Los mantenedores suelen responder en 3 días
-
area: ai roadmap roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CopilotKit/outpost#145 ·
Los mantenedores suelen responder en 3 días
-
area: integrations priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
CopilotKit/outpost#124 · 3 comentarios ·
Los mantenedores suelen responder en 3 días
-
area: infrastructure bug priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CopilotKit/outpost#120 · 2 comentarios ·
Los mantenedores suelen responder en 3 días
Todos los issues de CopilotKit/outpost
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
openedx/frontend-app-authoring#3274 ·
Los mantenedores suelen responder en 1 día
-
🎙️ task - fix(deployer): deploy --env prep runs deploy:dev where the repo declares deploy:prepAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
area/documentation status/need-triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
google-gemini/gemini-cli#29548 ·
Los mantenedores suelen responder en 1 día
-
sdk-typescript vector-store
Dificultad 2/5 Medio día Aptitud para principiantes 82/100
mem0ai/mem0#7495 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día