Skip to main content
GET
Read one round whole, to answer it

Authorizations

Authorization
string
header
required

Enforced on every transport, with no exempt operation. A person's request — over the default local unix socket exactly as over a TCP listener — must carry a JWT issued by the configured identity provider, which the host verifies itself against that issuer's key set: signature, issuer, expiry, and the person and organisation it names. Requests without a valid one receive 401 NRY-0011. The socket's file permissions are transport and are not an authorisation.

Path Parameters

roundId
string<uuid>
required

The refinement round's id, as proposeRefinement returned it or as refinement-proposed announced it.

Response

The round, with every body and every script in full.

One round whole: what the review proposed, what the service dropped and why, and every item at the index an answer names it by.

It is the only read that carries an item's body and an authored program's TEXT. The listing carries neither, for the reason listRefinements carries no script: a page nobody can read is not a page. Here the whole point is that everything is readable.

roundId
string<uuid>
required
itemCount
integer<int32>
required

How many items this round carries — the length of items.

Never zero, and the bound says so because the engine's three parking roads all guarantee it: the loop's review refuses to park a round with no surviving edits, and the other two — a proposal over this contract, and asking to widen one fact's reach — each park exactly one item. The document is written once and never edited afterwards, so a round that stands is a round with items. Same bound, same reason, as the listing's own itemCount, which counts the very same list.

Required range: x >= 1
proposed
integer<int32>
required

How many edits the review proposed, which is itemCount plus everything the service dropped. "6 proposed, 2 kept" is what tells somebody whether the loop is worth having, and it is the service's own count rather than a client's arithmetic.

Required range: x >= 0
items
object[]
required

The items in the order the engine put them, which is the order a client draws them in and the order the indices count. A client that sorted these rows would post somebody's approval onto a different edit.

sessionId
string<uuid>

The ONE conversation every citation in this round points into. It is on the round rather than on each citation because a review may only cite what it read, and what it read is one conversation.

Absent on a round whose stored conversation is not addressable — a round proposed with no session, or one whose id this host can no longer parse. A client then draws the round without the jump.

repository
string

The canonical checkout path the round is answered against, absent at the owner's global scope — the ledger's own repository column verbatim. It is what keeps a round a complete question after the session that proposed it has been purged.

origin
enum<string>

Which road a refinement came in on: narya's own review of a conversation, a client teaching it through this contract, or an import. Both roads land pending and pass the same consent.

Available options:
loop,
api,
import
originActor
string

Who asked for this round, on the roads where somebody did. Absent on loop, where the answer is nobody: narya read a conversation and proposed of its own accord, which is the fact that separates that road from the other two.

It is not the consenting actor. Who ALLOWED a fact is on its events, where an answer belongs; who asked for it is here and on the row, where provenance belongs, and the two are the same person only by coincidence.

Maximum string length: 128
dropped
object[]

What the service refused and how much of it, by reason, ordered by reason so two reads of one round agree. Empty when it kept everything the review returned.

rationale
string

What the gate said when it decided this round was worth running.