docs(known-issues): add settle-false-negative orphans + no-auto-refund#566
Conversation
The #562/#565 settle-first work landed the recovery metadata (EIP-3009 nonce + authorization + network) on every failed-settle task, but two structural gaps remain that operators should know about: - x402-settle-false-negative-silent-orphans: facilitator /settle can time out while the chain ultimately confirms — payer debited but task marked failed, no `payment-orphaned` tag because the worker's only signal was settle's `success=False`. Reconciliation worker (which would query the chain for AuthorizationUsed and flip these tasks) is scoped out as a follow-up. - x402-no-auto-refund-for-orphan-payments: even when orphans ARE tagged, Bindu has no outbound-wallet path (pay_to_address is a config string; no private key, no Base RPC). Refunding is fully manual. Custody surface is large enough that we agreed to wait for real volume before building. Both entries include the metadata fields operators need for manual reconciliation today, and reference each other as the detection/remediation pair. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughDocumentation update to ChangesSettle-first orphan payment known issues
🎯 2 (Simple) | ⏱️ ~8 minutes
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
Summary
Adds two medium-severity entries to bugs/known-issues.md under Bindu Core, both grounded in the #562/#565 settle-first work that just landed:
x402-settle-false-negative-silent-orphans/settlecan time out while the chain ultimately confirms — payer debited but task markedfailed, with nopayment-orphanedtag because the worker's only signal was settle'ssuccess=False. The fields needed for reconciliation are persisted (via_settle_payment's_failure_metadata), but the periodic worker that uses them doesn't exist.x402-no-auto-refund-for-orphan-paymentspay_to_addresshas only ever been a config string — no private key, no Base RPC, no gas balance. Refunding is fully manual. We agreed to defer because of the custody surface.Both entries include the operator workaround (manual reconciliation using the EIP-3009 metadata that we now persist on every failed task) and cross-reference each other as the detection/remediation pair.
Also bumps the Bindu Core medium-count in the TOC (6 → 8) and updates the "Last updated" preamble to reflect this session's additions.
Test plan
bindu/server/workers/manifest_worker.pyhas the_failure_metadatahelper and the_handle_task_failureorphan-payment tagging path).🤖 Generated with Claude Code
Summary by CodeRabbit