Problem: #4792 shipped buildLoopConsumptionEntry/totalConsumptionForTenant (packages/loopover-engine/src/loop-consumption.ts) as a pure decision core with deliberately no storage opinion — persisting entries was explicitly deferred as "the separate, blocked-on-#4789/#4790 integration." That integration was never filed as its own issue; it only existed as a sentence inside #4792's body, so there's nothing a contributor or maintainer can pick up once #4789/#4790 clear.
Area: Platform / gittensor economics — rental ledger
Proposal: Wire buildLoopConsumptionEntry's output into a real settlement backend via #6098's SettlementBackend interface (recordPayout/getPoolBalance) — call recordPayout with a PayoutEligibleEvent on every completed or killed loop run, per #6098's already-resolved contract. No new persistence design needed; #6098 already specifies the shape.
Deliverables:
Acceptance criteria:
Resources:
Boundaries:
Part of #4778.
Problem: #4792 shipped
buildLoopConsumptionEntry/totalConsumptionForTenant(packages/loopover-engine/src/loop-consumption.ts) as a pure decision core with deliberately no storage opinion — persisting entries was explicitly deferred as "the separate, blocked-on-#4789/#4790 integration." That integration was never filed as its own issue; it only existed as a sentence inside #4792's body, so there's nothing a contributor or maintainer can pick up once #4789/#4790 clear.Area: Platform / gittensor economics — rental ledger
Proposal: Wire
buildLoopConsumptionEntry's output into a real settlement backend via #6098'sSettlementBackendinterface (recordPayout/getPoolBalance) — callrecordPayoutwith aPayoutEligibleEventon every completed or killed loop run, per #6098's already-resolved contract. No new persistence design needed; #6098 already specifies the shape.Deliverables:
LoopConsumptionEntryrows viaSettlementBackend.recordPayout, wired into the loop-completion path.recordPayout(per Design spec: settlement-backend interface (gittensor-owned or self-built, pluggable either way) #6098's own idempotency requirement).Acceptance criteria:
recordPayoutcall, reconcilable against the tenant's pool balance.Resources:
packages/loopover-engine/src/loop-consumption.ts(Rental ledger integration #4792, the pure core this wires up)Boundaries:
SettlementBackenditself (gittensor-owned vs. self-built) — that's a separate decision Design spec: settlement-backend interface (gittensor-owned or self-built, pluggable either way) #6098 deliberately stayed agnostic to.Part of #4778.