v3.1.0
-
rcl evidence statusreports a pull request nothing has been judged for
(RCL-44). Harness sendsconclusive: nullfor a projection without a
judged current-head run (statusnone,stale,unverified); the reader
refused every such answer as malformed, so the command failed exactly where
it should have said "no evidence yet".conclusiveis now boolean or null,
an unjudged projection prints without an(inconclusive)label, and the
exit status is unchanged (1, not converged). -
rcl review … --for-pr owner/repo#N(RCL-39;RCL_FOR_PR): a
patch-file review is bound to the pull request it was taken from
(target.repo,pr_number,urlon thepatchtarget), so Harness can
verify its--head-shaagainst that pull request's head; counting such a
round for the pull request's gate is the server half, IO-12585 — until it
lands,rcl evidence statusstill readsstale/nonefor patch-file loops.
A--converge-targetof the same form attributes the run too; the flag
needs--head-sha, lower-cases the names, and is refused on PR and
git-mode targets, which name their own (RCL_FOR_PRonly ever attributes a
patch file). The
rcl-convergeskill passes--converge-target '<TARGET>' --round <R> --attempt <ATTEMPT>on every launch and adds--for-pr <owner/repo#N>when
the round reviews a patch file taken from the pull request (a pull request or
git-mode target names its own), counts a
spooled round as evidence only once its flush is acknowledged (ledger
evidence: pendinguntil then), readsrcl evidence statusafter the loop
next to the machine resolution, and records that the converge ledger is
rendered by Harness (IO-12482) rather than uploaded — the server accepts
only artifacts a run declared at delivery. -
Org-wide model weights (RCL-38):
rcl modelsmerges Harness's
GET /api/v1/reviews/model-stats(the organization's window over every run
it recorded, backfilled history included) with this machine's store — the
server's weight for a model it holds ≥ 20 outcomes for, the local weight
below that, neutral for a model neither knows enough about — and shows each
row'ssource;--localkeeps to the machine. Reviews weight consensus the
same way (loadMergedWeights, three-second bound, local fallback). -
rcl telemetry backfill --from <dir> --repo <owner/repo> [--dry-run] [--json]
(RCL-38): pre-3.0 reports and converge ledgers become runs with
provenance: backfill(synthesized header bound to the repository, findings
with stable identities, reviewer calls, both report files as artifacts) and
verdicts_recordedevents; ids are UUIDv5 of(host, repo, sha256 of the report)so a second run adds nothing.RunHeader.provenanceanduuidv5
are new;openReadSinkis the shared credential-only sink for reads. -
rcl evidence status [<pr>]andrcl evidence show <run id>(RCL-41):
the read side of the evidence ledger.statusfetches
GET /api/v1/reviews/prs/:owner/:repo/:number— a bareNor#Nis read
against the checkout'soriginremote,owner/repo#Nand pull request URLs
stand alone — and prints both projections, their rounds, the open actionable
findings and the merge decision;--jsonprints the API object. Exit 0 only
when the judged projection (--enforcedor the default advisory) is
converged, 1 for any other status, 2 when the pull request cannot be
named, 3 when the read could not be answered (no credential, evidence off,
unknown pull request, refused credential, unreachable host).showfetches
GET /api/v1/reviews/runs/:idand lists the run's header, reviewer health,
artifact state and findings with identity, gating reason and verdict. Reads
use the delivery credential rules (reviews:read) and ignore the telemetry
level.HarnessSinkgainedgetGateStatusandgetRun, each refusing an
answer that is not about what was asked.
npm: https://www.npmjs.com/package/review-council/v/3.1.0
Tarball SHA-256: 7232a92ce5e89b3997f04369614fc21631a4013ade63bc8c75a6d7b61601e6f2