relay: a float-spelled timestamp is rejected, which the capture accepts
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 78/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- rust, typescript
研究方向
閱讀 crates/nostream-core/src/messages.rs:474-494,並將 created_at 的解析與 kind 分支進行比較。檢查 src/schemas/base-schema.ts:23-27,了解擷取邏輯接受整數的哪些行為。接受範圍內小數部分為零的時間戳,同時仍將真正的小數判為無效;確認 1700000000.0 會被接受,而帶小數部分的時間戳會被拒絕。
由索引模型根據 Issue 內容生成。
描述
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.
- 主要語言
- TypeScript
- 星號
- 829
- 分支
- 234
- 平均合併
- 17 小時 6 分鐘
- 30 天內合併 PR
- 92
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
cameri/nostream 的其他 Issue
-
factory rewrite rust
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
factory rewrite rust
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆
-
test: user-subscription specs fail outside UTC, so the pre-commit hook cannot pass可能已有人在做 @tejasvasingh2004 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆
-
bug factory rewrite rust
難度 2/5 1-3 小時 新手友好度 84/100
維護者通常 1 天內回覆
-
bug factory rewrite rust
難度 2/5 1-3 小時 新手友好度 77/100
維護者通常 1 天內回覆
相似的 Issue
-
難度 1/5 1 小時以內 新手友好度 70/100
microsoft/playwright#43640 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 82/100
grasshopper-protocol/grsshppr#172 ·
維護者通常 1 天內回覆
-
bug help wanted
難度 2/5 1-3 小時 新手友好度 78/100
Tencent/teamai-cli#1397 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 70/100
DouyinFE/semi-design#3641 ·
維護者通常 3 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 83/100
維護者通常 1 天內回覆