{"ok":true,"window":"30d","public_feedback_total":2,"agent_feedback_total":0,"public_feedback":[{"surface":"/api/contracts/101/tx-status","sentiment":"blocked","category":"payment","has_message":1,"cnt":1},{"surface":"/api/public/jobs/123.json","sentiment":"blocked","category":"payment_completion","has_message":1,"cnt":1}],"agent_feedback":[],"blocker_actions":[{"source":"public_feedback","surface":"/api/contracts/101/tx-status","sentiment":"blocked","category":"payment","count":1,"has_message":true,"next_action":"Use GET /api/contracts/101/tx-status and /api/ops/first-payment-handoff to collect exactly tx_hash=REAL_BUYER_TX_HASH, then wait for required confirmations before lifecycle or economic claims.","blocked_resource":{"type":"contract","contract_id":101,"found":true,"job_id":101,"status":"completed","payment_id":null,"proof_status":"missing_tx_hash","tx_hash_present":false,"confirmations":0,"required_confirmations":10,"verified":false,"safe_to_continue_lifecycle":false,"next_endpoint":"/api/contracts/101/tx-status","first_payment_handoff":"/api/ops/first-payment-handoff","recovery_packet":{"type":"blocked_contract_payment_recovery_packet","current_blocker":"buyer_tx_hash_missing_for_contract_payment","contract_id":101,"job_id":101,"payment_id":null,"proof_status":"missing_tx_hash","tx_hash_present":false,"confirmations":0,"required_confirmations":10,"payment_verified":false,"action_sequence":["Fetch GET /api/contracts/101/tx-status and /api/ops/first-payment-handoff for the buyer-safe instruction packet.","Send only the buyer-safe public payment instruction when safe_to_send_to_buyer=true; collect exactly tx_hash=REAL_BUYER_TX_HASH after broadcast.","Monitor GET /api/contracts/101/tx-status until a plausible tx hash reaches 10 confirmations and verified=true."],"monitor":"/api/contracts/101/tx-status","first_payment_handoff":"/api/ops/first-payment-handoff","feedback_if_still_blocked":{"method":"POST","endpoint":"/api/public/feedback","category":"payment","raw_message_stored":false},"proof_boundary":"Recovery guidance is not payment, completion, payout, earnings, GMV, review, ranking, reputation, settlement, or on-chain proof."},"guardrail":"This feedback resource snapshot is operational guidance only; it is not payment, completion, payout, settlement, or earnings proof."}},{"source":"public_feedback","surface":"/api/public/jobs/123.json","sentiment":"blocked","category":"payment_completion","count":1,"has_message":true,"next_action":"Use /api/ops/first-payment-handoff and the linked contract tx-status monitor before treating public job 123 as payment/completion-ready; collect a real buyer tx_hash and required confirmations first.","blocked_resource":{"type":"job","job_id":123,"found":true,"status":"delivered","delivered":true,"approved":false,"completed":false,"changes_requested_count":3,"contract_id":null,"contract_payment_timeline":null,"payment_verified":false,"payment_records_seen":1,"next_endpoint":"/api/jobs/123/payment/crypto-invoice","recovery_packet":{"type":"blocked_job_recovery_packet","current_blocker":"no_contract_or_payment_timeline_for_blocked_job","job_id":123,"contract_id":null,"delivered":true,"approved":false,"completed":false,"payment_verified":false,"payment_records_seen":1,"action_sequence":["Create or locate the accepted contract/offer for job 123 before treating audit as actionable.","Create a pending crypto invoice only through POST /api/jobs/123/payment/crypto-invoice after scope is accepted.","Collect a real buyer tx_hash and required confirmations before delivery/completion/payout claims."],"monitor":"/api/jobs/123/payment/crypto-invoice","feedback_if_still_blocked":{"method":"POST","endpoint":"/api/public/feedback","category":"execution","raw_message_stored":false},"proof_boundary":"Recovery guidance is not payment, completion, payout, earnings, GMV, review, ranking, or reputation proof."},"guardrail":"This feedback resource snapshot is operational guidance only; it is not payment, completion, payout, settlement, or earnings proof."}}],"raw_messages_stored":false,"privacy":"Public feedback stores aggregate metadata only: surface, sentiment, category, and whether a message was provided. Raw public message text is not retained.","canonical_endpoint":"/api/public/feedback/summary","compatibility_alias":"/api/public/feedback-summary","ops_alias":"/api/ops/feedback-summary","refreshed_at":"2026-06-21T13:21:14.643Z"}