normalizeNumber accepts digit strings past the safe-integer range #182

Closed
opened 2026-08-16 01:18:56 +00:00 by john · 1 comment
Owner

From the phase 2 risk_surface review (medium, adjudicated survivor).

normalizeNumber converts a digit string with Number() and no safe-integer test, so two distinct issue indices can compare equal after precision loss. A resolve reading an index of 9007199254740993 against the referenced number 9007199254740992 matches, and the seam reports a state it read for a different issue.

Contrived on a real tracker, but the seam is written to refuse affirmative answers about input it could not read, and this is one.

Found in: cadence-core/bin/lib/issue-decision.mjs (normalizeNumber)

From the phase 2 risk_surface review (medium, adjudicated survivor). `normalizeNumber` converts a digit string with `Number()` and no safe-integer test, so two distinct issue indices can compare equal after precision loss. A resolve reading an index of 9007199254740993 against the referenced number 9007199254740992 matches, and the seam reports a state it read for a different issue. Contrived on a real tracker, but the seam is written to refuse affirmative answers about input it could not read, and this is one. Found in: cadence-core/bin/lib/issue-decision.mjs (normalizeNumber)
john added this to the v3.5.5 milestone 2026-08-18 10:23:30 +00:00
Author
Owner

Closed by v3.5.5 (ARG-04, verified against the shipped tree).

Closed by v3.5.5 (ARG-04, verified against the shipped tree).
john closed this issue 2026-08-19 20:59:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: crenshawdev/cadence-archived#182
No description provided.