Heimdall ResearchSearch

Where the guard's code still assumes money or a number shape

Three assumptions remain in current code: a declared unit rendered under a money type name, which does not block a non-money declaration; journal refusal of any fractional number; only the first text block of an MCP answer kept.

MeasurementWhere does it stop?Working note

Designed for
To find which code paths of the guard still assume money or a particular number shape, and which of them would block a non-money domain.

What was tested

A read-only reading of the guard’s code at a September revision and at current code: the declarative path, the owner journal, the MCP upstream client and the managed-execution ledger.

What we observed

At the earlier revision, 6 of 8 proxy declarations had currency fields. Three assumptions remain. A declared unit is rendered under a money type name, yet a shipped non-money declaration uses it and works. The owner journal refuses fractional numbers, even an integral 1.0. The MCP proxy keeps only the text of an answer’s first content block. Two earlier assumptions were relaxed: a link can now signal pagination, and budgets can count operations. First-generation gateway refusal texts still name “the payment provider”.

What this means for Heimdall

These are portability points of different weight: a naming leak, a number-shape rule that would hit any domain with decimals, money included, and an MCP SDK decoding constraint. Only the naming leak and the old refusal texts concern money.

Limits

Code reading only; no non-money upstream was run, so runtime consequences are untested. The original review output was not kept.

What remains open

An offline probe that feeds a fractional number and a structured-only answer through the proxy and the journal.