Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen Anfängerfreundlich
#960 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
rust, typescript
Bereich
api, backend

Rechercherichtung

Lies crates/nostream-core/src/messages.rs:474-494 und vergleiche das Parsing von created_at mit dem Zweig für kind. Prüfe in src/schemas/base-schema.ts:23-27, welches Verhalten die Erfassung bei Ganzzahlen akzeptiert. Akzeptiere Zeitstempel im gültigen Bereich mit einem gebrochenen Anteil von null, während echte Bruchteile ungültig bleiben; bestätige, dass 1700000000.0 akzeptiert und ein Zeitstempel mit einem gebrochenen Anteil abgelehnt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
TypeScript
Sterne
829
Forks
234
Ø Merge
17 Std. 47 Min.
Gemergte PRs (30 T.)
91

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus cameri/nostream

Alle Issues in cameri/nostream

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.