Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

relay: a float-spelled timestamp is rejected, which the capture accepts

Ouverte Adaptée aux débutants
#960 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
rust, typescript
Domaine
api, backend

Piste de recherche

Lisez crates/nostream-core/src/messages.rs:474-494 et comparez l’analyse de created_at avec la branche kind. Vérifiez dans src/schemas/base-schema.ts:23-27 quel comportement concernant les entiers la capture accepte. Acceptez les horodatages dans la plage avec une partie fractionnaire nulle, tout en gardant les fractions réelles invalides ; confirmez que 1700000000.0 est accepté et qu’un horodatage fractionnaire est rejeté.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug factory rewrite rust

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.

Langage dominant
TypeScript
Étoiles
829
Forks
234
Merge moyen
17 h 6 min
PR mergées (30 j)
92

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cameri/nostream

Toutes les issues de cameri/nostream

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.