Numbers travel exactly as typed

CLI v1.3.1September 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:1132313123123123123123123123 used to reach the server as 1.1323131231231232e+27, and price:1.50 as 1.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, and environments.json rewrites.
  • 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 -d body went out as the number 8. 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.