Conversation
…ne shape - Egress: a blocked port hangs rather than refusing, inside a paid lease. Say so in bold and tell scripts to wrap every outbound call in `timeout`. - `setup` prints `legacy service=cpay` and instances are named `cpay-*`; say both are expected so an agent does not conclude it hit a different product. - The daily cap is stored as token-less atomic units; the "USDC" in the confirmation does not mean a USDT purchase is exempt or refused. - This gateway's 402 is x402 v1; Celo's facilitator speaks v2. - Paid response and poll response differ on `zone`; key on status fields. - Observed latency for the paid leg and first `done`. Closes #5, closes #9. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Reporter of #5 here — the egress rewrite is exactly right, and making the hang the headline rather than a clause is the important change. The 15–45s range matches what I measured: 28.95s wall clock on macOS for Two things I'd add, both about the hang: 1. The failure table has no row for "script hung past the lease." The new warning says the poll never reaches 2. A per-call timeout still leaves one unguarded call able to consume the lease. Worth suggesting a bound on the whole script as well — e.g. prefixing with Both are cheap to document, and both turn a silent loss into a reported one. |
Why
Two reports from completed
e2-microrentals (#5 on macOS, #9 on Linux) list things the skill either under-states or does not say:setupprintslegacy service=cpayand instances are namedcpay-<txprefix>([docs] Confirmations from a real e2-micro purchase, plus an undocumented x402 version mismatch #5 item 4, [feedback] Linux e2-micro rental OK — leftover cpay naming, USDC-labelled cap, zone shape drift, receipts still non-recoverable #9 item 1). An agent following docs that only say "buy" can conclude it hit the wrong product.accounts.jsin the published@celo/buy@0.5.0: the cap is stored as atomic units with no token, so it applies to USDT at the same rate.zoneis a short name in the paid response and a full GCE URL in the poll ([feedback] Linux e2-micro rental OK — leftover cpay naming, USDC-labelled cap, zone shape drift, receipts still non-recoverable #9, item 3).x402Version: 1while Celo's facilitator issues v2 ([docs] Confirmations from a real e2-micro purchase, plus an undocumented x402 version mismatch #5, item 3), and nothing signals it.What
skills/order-compute/SKILL.mdonly.timeoutexamples.setupcommand that thecpaynames are expected.zonefrom the paid response, not the poll.Not in this PR: the cross-wallet funding note (#9, item 5) is in #15, and the receipts limitation (#9, item 4) is already documented and tracked upstream. The CLI wording fixes themselves (cap message, legacy label, zone normalisation) are filed upstream; this PR documents the current behaviour so agents stop misreading it today.
Verification
npm pack @celo/buy@0.5.0→dist/commands/accounts.jswrites the cap viasetDailySpendCap(name, atomic.toString())and printsfmtAmount(atomic, 6, 'USDC'); no token is stored.dist/commands/setup.jsprintsstored in OS keychain (legacy service=cpay).POST https://usebuy.ai/gcloud/vmtoday returns"x402Version":1.check-against-gateway.mjspasses on this branch (prices and types unchanged).Closes #5, closes #9.
🤖 Generated with Claude Code