Files
hanzo-dev 077fce140b money: credit is issued by a human, so every automatic path goes
An hourly goroutine in authors deposited credit with nobody in the loop, and a
GET on three surfaces accrued-and-paid on read. Both are gone, along with the
capability that made them one line each.

  - apps/authors/scheduler.go, sweepAndPayout, autoPayoutAuthor — the unattended
    hourly accrue+pay loop, default ON, no env var, no route, no human.
  - the lazy sweep on GET /v1/authors, /v1/affiliates, /v1/affiliates/me and
    /me/earnings. Reads read; the admin POST sweep still accrues.
  - payout settlement in both programs. A payout RECORDS what is owed, for every
    method including credits; a human settles it. Accrual — the product — stays.
  - treasury.Reserve/Credit returned backed=true when unmounted, and `mounted` is
    a package global, so in one-binary-per-app it was ALWAYS nil in callers: every
    "reserve-backed" payout was an unbacked mint that logged itself as reserved.
    With settlement gone it has no callers, so it is deleted rather than fixed.
  - POST /v1/admin/credits — a second admin mint with no cap and no positivity
    check, whose audit did not fail closed. core.ApplyGrant is the one door: it
    caps, rejects non-positive amounts, checks the org, and refuses without a
    durable audit store. The relay and its wire client are deleted.
  - payout.Client.Deposit, the ONE money-in primitive all three programs shared,
    and the deposit method on each program's seam. The seams now carry a single
    read, matching referrals: reviving a mint has to start by re-declaring the
    capability, in front of a test that says no.
  - the published POST /finance/starter op, advertising a grant deleted in
    41b23f12.

openapi.yaml, plugin/admin/openapi.json and openapi/floor.json drop the deleted
route in this commit, so the reduction is reviewed next to its reason.

Tests assert the guarantee rather than the old behaviour: a GET grants nothing
and the ledger receives zero deposits, proven at the wire against a commerce stub
that fails on any write.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-08-03 21:24:40 -07:00
..