1.0.6
Patch release. Correctness fix to cost visibility. Routing is unchanged.
Fixed
Cost visibility was lying for a specific case. It's fixed.
The cost observer had a hole. It computed a dollar figure any time the
model was priced, without checking whether the call actually reported
token usage. When a priced call came back with no usage, or with
non-finite usage, the missing tokens got treated as zero. The result:
costUsd: 0.00. A reported number. Nothing distinguished it from a call
that actually cost nothing.
The whole point of cost visibility is that an unpriced call is loud and
never shows up as a false $0.00. This broke that for the missing-usage
case. A day full of these calls could read as zero spend. That's the
exact thing the feature exists to prevent.
It shipped this way in 1.0.3 on 2026-07-06 and has been in every build
since, including the 1.0.5 you can download today.
What changed: There are now three distinguishable outcomes instead
of two. A priced call with valid usage records its real cost. A priced
call with missing or non-finite usage goes loud. It is marked
usageMissing with the reason priced-but-usage-missing, no dollar
figure is recorded, and it counts in the loud bucket so a day full of
them can't read as $0.00. An unpriced model stays loud, same as before.
Tests
There was already a test carrying the guarantee's name. It only checked
the missing-price half. The missing-usage half that produced the false
zero had never been tested. That's how it shipped without anyone
catching it.
There is now a test covering all four cases: priced+usage-present,
priced+usage-missing, priced+usage-non-finite, unpriced. It fails on
1.0.5. It passes on 1.0.6. The old test is renamed to its actual scope.
Compatibility
Unchanged. Minimum OpenClaw >=2026.6.5. Validated through 2026.6.11.
OpenClaw's plugin manifest has a minimum floor field only. No ceiling
field exists in the loader, so the validated upper bound lives here,
not in the manifest.