Files
treg/docs
SToneX 04adf88229 fix(catalog): accept synchronous usage settlement and give Jev an example
The catalog validator failed on main for openrouter.ai-judge.decide: it rejected `settle: usage`
on a flat per-call price and on a synchronous row, and the row was stamped verified with no
example_response.

The runtime already honours this shape: 8fccbad6 made `_platform_settle` hand a metered
synchronous call's buffered body to a `usage` basis, and `settlement.derive_basis` reserves a
non-table usage cost at its `fallback`. The validator was behind, so it now accepts
`settle: usage` without a table (requiring the same explicit fallback the runtime dereferences and
the same dotted usage.path and supported unit), rejects a stray usage block under any other
settle, and no longer requires an async descriptor for usage settlement.

The example response is a live call with the row's test_request: status 200, and the call settled
at the reply's usage.cost ($0.000014) rather than the $0.0005 reserve, so the verified stamp moves
to the date of that observation.

Fragments updated: architecture/catalog (the settle: usage paragraph).
2026-09-27 18:59:24 +08:00
..
2026-08-07 17:46:24 +10:00