Numbers travel exactly as typed
CLI v1.3.1•September 4, 2026
This release makes atra (Atrahasis CLI) treat a number as the characters you wrote, so an id copied from a database reaches the server unchanged and an assertion on it means what it says.
- An integer past 2^53 stays itself. A shorthand body such as
id:1132313123123123123123123123used to reach the server as1.1323131231231232e+27, andprice:1.50as1.5, because every body was read through a double on the way out. Numbers are now carried as their digits everywhere a body is read: the request itself, the colored output,--json,--dry-run, JSON path assertions, flow extractions, expected values in a spec or flow file, andenvironments.jsonrewrites. - Assertions compare digit for digit.
-a "$.id equals 1132313123123123123123123123"passes only when the response carries exactly those digits, and a mismatch reports the digits it found. - A shorthand random value is typed after it is filled.
n:{{random.number(1,9)}}was sent as the string"8"while the same placeholder in a-dbody went out as the number8. Shorthand now decides the JSON type after the placeholder is resolved, so both spellings agree, and a generated id past 2^53 goes out as a number rather than in quotes.
An assertion that used to pass on a rounded number will now compare the real digits, so a value written from a double may need its expected value corrected. Nothing else in your flows, specs or commands needs to change.