Cassette Build Report 035 — The Hostile Number Closed S13
GPT-5.6 Ultra reproduced S13's raw numeric failure, rejected an unsupported geometry conclusion, and added bounds before and after exact arithmetic.

Scope note — This report covers the S13 numeric remediation and its final Mac closeout. It includes the rejected geometry conclusion and the failed first probe; it does not claim that S14 has begun.
Kimi K3 found one defect in S13. A compact number such as 1e1000 passed the parser’s character limit, entered exact arithmetic, and eventually escaped as a raw OverflowError instead of Cassette’s typed error. The reviewer also reported a geometry limitation. I asked GPT-5.6 Ultra to remediate the issue, not to defend the step and not to accept the entire review as a single package.
The historical reproduction was narrower than the first account. Before the repair, both 1e1000 and an integer value of 10**400 reached the witness-loss comparison and escaped the five-field CassetteError contract. No schedule was admitted, so the mathematics did not silently produce a wrong result. The boundary still failed because an untyped runtime exception escaped where the project permits only typed termination.
I rebuilt Kimi’s independent arithmetic before changing the geometry. The oracle returned 401/100300 for the served condition and 601/300 for the unserved condition, recovered the three pair faces, and identified {a,b,c} as the sole minimal nonface. Nothing in that reconstruction supported changing the fixture. One review finding survived. The other did not.
The proposed one-line fix was also incomplete. A magnitude check after Fraction construction would arrive too late for a compact exponent bomb such as 1e1000000000. An input-only check would miss a finite value such as 1e200 whose derived witness loss becomes too large for the certificate’s finite numeric channel.
The repair therefore has two boundaries. _fraction checks exponent text, integer bit length, and the numerator and denominator before returning an exact value. _expect_number checks the conversion back into the finite certificate representation and turns overflow, non-finite values, and nonzero values that collapse to floating zero into CAPABILITY_MISMATCH.
The source names the first boundary plainly.
if isinstance(value, str) and 0 < len(value) <= 128:
try:
exponent = value.lower().rpartition("e")
if exponent[1] and abs(int(exponent[2])) > _MAX_EXACT_BITS:
raise ValueError
candidate = Fraction(value)
The bounded scalar parser in pager.py rejects the exponent before exact construction. The later _expect_number boundary handles the return to certificate numbers. These excerpts establish implemented guards in the tracked S13 source. They do not prove the fixture until the targeted attacks and full suite run.
The first targeted run failed because my probe was wrong — to drive 1e200 beyond target identity, I resealed the certificate with a digest over the normalized matrix alone even though the target authority hashes the complete record, including its field and shape, so the fixture stopped at Q19: target digest while my assertion expected the witness-loss guard.
I had built the appearance of the condition rather than the condition.
After rebuilding the records independently, the direct attacks reached the intended boundaries. 1e1000000000, 1e1000, and 10**400 returned INVALID_REQUEST for the canonical source scalar. A separately resealed 1e200 target returned CAPABILITY_MISMATCH at the witness-loss comparison. Removing the post-parse bound or the conversion guard made the fixtures fail. The tests depended on both protections.
The full Mac suite did not pass on the first run. Twenty-eight tests were green, while S06 reported APFS device-busy status 16. An exploratory process was still alive, and the failed run had left a 79 MB test image attached. GPT-5.6 Ultra stopped the exact process, detached the exact test image, removed the disposable directory, and reran the unchanged suite. All twenty-nine tests passed in 142.70 seconds with no skips.
That second run mattered because S13 was not closed by the targeted numeric fixtures alone; the project had to show that the new guards survived the complete Mac suite, the ledger reproduced every byte, and cleanup left no temporary resource carrying the result.
The ledger reproduced every generated byte and reported no violation. The final S13 closeout recorded the new scalar boundary, the mutation results, the clean suite, and the remaining queue state. S13 is done. S14 is next.
The practical point is narrower than “handle big numbers.” A parser that accepts a value has accepted a future computation, not just a string. Cassette now checks the value before exact arithmetic and checks the derived result before the certificate can name it. The hostile number forced the project to write that boundary down.
