Get the reviewer's decision context for a review (BYO review-agent plane)
GET /v1/reviews/{id}/decision-context
The reviewer’s read-only decision surface (D5; §9): the intent + current draft + the append-only thread + the two-circuit-breaker budget (hop_count vs max_hops, and the hard review_deadline). The reviewer is an AGENT granted review:act, authorized for THIS review ONLY via a matching ACTIVE review_link (per-inbox beats account-wide); review:act alone is necessary, not sufficient. force_to_human is true when EITHER breaker has tripped; the reviewer’s next reject would be FORCED to the human regardless of intent (the human is the only terminal authority, D17). A cross-tenant id is 404 (no existence leak); a non-reviewer is 403. No mutation, no LLM.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Responses
Section titled “ Responses ”Ok
The reviewer’s read-only decision surface for a review (D5; §9): the intent + current draft + thread + the two-circuit-breaker budget. force_to_human is true when EITHER breaker has tripped (hop_count ≥ max_hops, or the hard review_deadline); the reviewer’s next reject would be FORCED to the human regardless of intent (the human is the only terminal authority, D17).
object
A review request (rr_…); the server-owned pre-send record of a message under the Review Loop. Carries intent, the current proposed draft, category, state machine fields, and (once sent) the sent body + diff.
object
object
True once this review will never move again; sent, auto_sent, cancelled OR failed. It is the definitive per-review “am I done?” answer and the poll-side companion to the terminal review events; use it after a restart when your event cursor is gone. failed is included deliberately: nothing re-approves a failed review, so treating it as open means waiting forever.
Vendor-scrubbed delivery failure, present on a failed review.
How the message was released, once sent.
One immutable turn in a review’s append-only thread (turn_…).
object
object
object
Circuit breaker (a): reviewer hand-backs so far.
Circuit breaker (a): the ceiling; at hop_count ≥ max_hops the next action is forced to the human.
Circuit breaker (b): the hard per-review wall-clock deadline (created_at + review_deadline_s).
Breaker (b) tripped: now ≥ review_deadline.
Breaker (a) tripped: hop_count ≥ max_hops.
Either breaker tripped: a reject is overridden to a human escalation.
The tripped breaker (max_hops_reached | review_deadline_passed).
Missing or invalid credential.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeAuthenticated but lacking the required scope, or out of quota.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeResource not found.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scope