The fabric arc reaches the standard's receipts. The hybrid
backend wraps every complete() in an attribution-ledger
window: GFLOPs recorded per fabric member that ACTUALLY ran
each matmul, priced by the machine's IOReport calibration.
The summed figure rides LlmResponse.energy_joules, and the
L3 stage now grades it correctly per SPEC §6:
backend reports a figure → estimated_uj, ModelBased
(a calibrated per-operation
model — precisely what §6
defines ModelBased to mean)
no figure → catalog constant, Estimator
(the honest old behavior,
unchanged for Echo/llama.cpp)
Live, real checkpoint (Mellum2, fabric ON):
"The capital of France is" → " Paris. \nParis is"
fabric-priced energy: 113.0 J (ModelBased)
A coding-cascade L3 receipt now carries energy from the
silicon that actually executed the call — attributed per
member, priced by a calibration metered on this machine —
instead of a 1.0 J placeholder. The provenance ladder is
exercised end to end: Estimator (catalog) → ModelBased
(fabric ledger × calibration) → HwShunt (a meter wrapping
the whole call, as the joule-fix harness already does).
Test updated to the new contract: Some(>0) with the fabric
on, honest None without — both branches printed.
Co-Authored-By: Claude Fable 5 <[email protected]>