fix(catalog): proxybase pays to an account, not a minted wallet - #276
Conversation
I introduced this in #267 by carrying the payout block across from its similarly named sibling. proxybase (peer-cli) and proxybase-xyz (ProxyBase Markets) are the same org with OPPOSITE payout models. The evidence that peer-cli is `internal`, not `minted`: * it authenticates with an ACCESS TOKEN from an account dashboard * cashout is a redirect to peer.proxybase.org/dashboard, minimum $1 * its guide says "Payout frequency: On request" * docker.volumes is [] -- there is no persistence at all While it stood, the payout screen told the user "The container generates its own wallet" for a service where no such wallet exists, sending them looking for something that is not there and implying a backup obligation they do not have. THE DURABLE PART, and why this is more than a one-line edit: a DEPLOYABLE service declared `minted` must now declare `critical_volumes`. Minting a wallet means irreplaceable local state, so a wallet with no persisted, flagged volume dies with the container and takes the money with it. Either the label is wrong (as here) or the service is one recreate away from destroying funds -- both are worth failing a build over. Services with an empty docker.image are exempt; the catalog lists those as present but not Docker-deployable. Mutation-tested: restoring `minted` on proxybase fails 2 of the new tests. The guard carries a control asserting the catalog still HAS a deployable minted service, without which the invariant would hold vacuously. Also corrects tests/test_beads_batch_70.py, which asserted proxybase was minted -- it was encoding the bug rather than catching it.
|
Warning Review limit reached
Next review available in: 12 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Found while starting tier 3 (
e8u), which is about minted wallets — so the mislabel was directly in the way. I introduced it myself in #267, by carrying the payout block across from its similarly named sibling.proxybase(peer-cli) andproxybase-xyz(ProxyBase Markets) are the same org with opposite payout models.The evidence that peer-cli is
internaldocker.env ID, secret)method: redirecttopeer.proxybase.org/dashboard, minimum $1docker.volumesis[]— there is no persistence at allThat is the textbook
internalmodel. If it genuinely minted a wallet with no volume, every container recreate would destroy the money — a far more serious bug, but nothing supports that reading.Harm while it stood: the payout screen told the user "The container generates its own wallet" for a service where no such wallet exists — sending them looking for something that is not there, and implying a backup obligation they do not have.
The durable part
A deployable service declared
mintedmust now declarecritical_volumes.Minting a wallet means irreplaceable local state, so a wallet with no persisted, flagged volume dies with the container. Either the label is wrong (as here) or the service is one recreate away from destroying funds — both are worth failing a build over. Services with an empty
docker.imageare exempt: the catalog lists those as present but not Docker-deployable.Verification
mintedon proxybase fails 2 of the new tests — so this guard would have caught my original errortests/test_beads_batch_70.py, which asserted proxybase was minted: it was encoding the bug rather than catching it4163 passed, coverage 95.56%, ruff check + format clean.