relay: a float-spelled timestamp is rejected, which the capture accepts
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
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
- Activo
- Stack tecnológico
- rust, typescript
Línea de trabajo
Lee crates/nostream-core/src/messages.rs:474-494 y compara el análisis de created_at con la rama de kind. Comprueba en src/schemas/base-schema.ts:23-27 qué comportamiento de enteros acepta la captura. Acepta marcas de tiempo dentro del rango con una parte fraccionaria igual a cero, manteniendo inválidas las fracciones reales; confirma que se acepta 1700000000.0 y se rechaza una marca de tiempo fraccionaria.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
A created_at written in float spelling — 1700000000.0, or any value a JSON encoder emits with a fractional part of zero — is rejected by the port and accepted by the capture.
Port: crates/nostream-core/src/messages.rs:474-486 matches Value::Number and requires as_i64(), which returns None for a float, then errors with Invalid timestamp. kind two fields later already handles this correctly (:491-494), rejecting only a float whose fract() != 0.0.
Capture: src/schemas/base-schema.ts:23-27 — z.number().int().min(0).refine(Number.isSafeInteger …). In JavaScript there is no float/int distinction after parsing: 1700000000.0 is the number 1700000000, Number.isInteger is true, and the value passes.
So the two disagree on an encoding nobody writes by hand but encoders emit routinely. A client that serialises with a floating-point formatter is rejected here and accepted there.
Fix direction: mirror the kind branch — accept a Value::Number whose f64 has a zero fractional part and lies in range. Keep rejecting a genuine fraction.
Measured on rewrite/main at 740ef69: pre-existing, outside #950–#952's diff, and not made more reachable by it.
- Lenguaje dominante
- TypeScript
- Estrellas
- 829
- Forks
- 234
- Merge medio
- 17 h 6 min
- PR fusionados (30 d)
- 92
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 cameri/nostream
-
factory rewrite rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
factory rewrite rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cameri/nostream#991 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
test: user-subscription specs fail outside UTC, so the pre-commit hook cannot passPosiblemente ocupada @tejasvasingh2004 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cameri/nostream#971 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug factory rewrite rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
bug factory rewrite rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
Todos los issues de cameri/nostream
Issues similares
-
[good first issue, hacktoberfest] 🏯 Hacktoberfest Task - Add new Japan Fact 898 (good-first-issue)Abiertocommunity first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
lingdojo/kana-dojo#33145 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
code-yeongyu/senpi#4278 ·
Los mantenedores suelen responder en 1 día
-
[Bug] Activity | The activity list ignores taskIds and returns the activities of every taskPosiblemente ocupada @NdekoCode la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ever-co/ever-gauzy#11469 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
griffinwork40/agent-afk#4408 ·
Los mantenedores suelen responder en 1 día