Repository navigation
Code Tribunal 1.0.0
Code Tribunal 1.0.0 — first stable release.
Release identity
Runtime source R |
88bc9412b283d4a44328ab3ffd9f9708b0290f8e |
Release commit P |
3ad443e0b3d91f2736c3dd3b4f1fb5d7f8d21997 |
| Publication run | 30125524008 |
| Manifest sha256 | b7570e173d86680998cfd77cff34d5c42de55f8e5cf57b4e17ea944744f02f7f |
Images (pull by digest, never by the mutable 1.0 tag):
ghcr.io/seanleecoder/code-tribunal/ai-review-base:1.0-88bc9412b283d4a44328ab3ffd9f9708b0290f8e@sha256:f2a433ac1094d45943a2973c334ff0d711d6aca73980cd44cfefe3aa0b403896
ghcr.io/seanleecoder/code-tribunal/ai-review-reviewer:1.0-88bc9412b283d4a44328ab3ffd9f9708b0290f8e@sha256:2fd84c43fc4529182bf077c809ba40bc6e628b5e77d6f1a2a0ffd24e902591fe
Both subjects are anonymously resolvable by digest, carry an OCI revision label equal to R, and have GitHub provenance attestations bound to the publication run above.
⚠️ Known defect: GitHub pull requests that add or delete files
On GitHub, findings can be dropped and the review can fail to complete when a pull request adds or deletes a file. GitHub renders an added file's diff with --- /dev/null, which anchor resolution rejects while scanning; affected findings are dropped, and when every seat is affected consensus exits 3, post/gate are skipped, and the required gate check cannot succeed.
- Triggers for a finding on an added/deleted file, or on a file ordered after one in the diff.
- Affects real reviewers, not only the deterministic mock. GitLab is unaffected.
- No state corruption; the failure is visible rather than silent.
- Workaround: land file additions in a separate change request from the code you want reviewed, or re-run once the added file has merged.
- Fix verified and scheduled for 1.0.1.
Detection symptoms are in release/1.0.0.md.
Live evidence
Release-gating evidence was re-run against this exact image pair:
| Row | Result |
|---|---|
| Image publication | passed — anonymous digests, revision labels, provenance attestations |
| GitHub lifecycle | passed — create, unchanged rerun, changed-body in-place update, resolve, persistence, reopen, stale-head no-op; required check genuinely blocked the merge |
| GitHub default-model smoke | passed — real three-seat panel, panel_status: full, four real security findings |
| GitLab lifecycle | passed — same lifecycle in the hardened child topology; "Pipelines must succeed" withheld the merge |
| GitLab hostile MR | passed — protected credentials withheld on an unprotected ref, prepare failed closed, empty input bundle, trust auditor rejected the hostile composition |
| GitHub revision failures (SPEC-34) | waived — non-gating and regression-covered; the stale-head boundary was reproduced live anyway |
The positive changed-body in-place update, previously never demonstrated live on either platform, is now proven on both.
Deployment posture — read before relying on isolation claims
- Trusted image pinning is not enforced in-pipeline. A consumer CI config can substitute the base/reviewer images by declaring them in its own top-level
variables:and enabling variable forwarding. This was reproduced live. Containment comes from protected-credential withholding plus the operator-runscripts/verify_pipeline_trust.py, which does reject such a composition — run it against your consumer config. - Credential isolation is evidenced narrowly: protected credentials withheld from a hostile MR on an unprotected ref in the hardened child topology. Not a product-wide guarantee. GitLab fork MRs untested; GitHub external forks are skipped by design.
/ai-review wontfixdurably dismisses a finding but does not clear the merge gate.- A reviewer that omits the required
confidencefield has all its findings dropped, which can silently degrade a panel. - Network egress is not enforced at the container/runner boundary.
- Cursor is experimental, has no evidence row, and is not evidence-backed.
Verifying this release
shasum -a 256 -c code-tribunal-1.0.0-release-manifest.json.sha256
python scripts/check_release_manifest.py code-tribunal-1.0.0-release-manifest.json
gh attestation verify \
oci://ghcr.io/seanleecoder/code-tribunal/ai-review-reviewer@sha256:2fd84c43fc4529182bf077c809ba40bc6e628b5e77d6f1a2a0ffd24e902591fe \
--repo seanleecoder/code-tribunalRollback means restoring the previous immutable template/image set, not moving a mutable tag. See docs/operations.md.