diff --git a/docs/release-integrity/release-evidence.md b/docs/release-integrity/release-evidence.md new file mode 100644 index 00000000..61635872 --- /dev/null +++ b/docs/release-integrity/release-evidence.md @@ -0,0 +1,58 @@ +# RI-050 Release Evidence Pack (alpha 0.0.50 release-integrity floor) + +> Status: **DRAFT — in progress** (evidence accumulating during the 2026-08-18 overnight run). +> Card: RI-V-001. All sections marked ⏳ pending their card's merge. Normative source: +> `docs/PRD.md` § Release Integrity Workstream (#1275). + +## RI-N1 — Canonical terminal verification + exact-commit publish gate + +| exhibit | evidence | where | +| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | +| Gate live, fail-closed | Push pipeline **2486**: `verify` ran at exact commit, FAILED on a real latent defect (gateway cross-user-isolation cleanup on the no-DB path), and `build` / `publish-npm` / `build-gateway` were all **skipped**. First push in repo history that did not publish ungated (prior ungated publishes beside failing builds: 2439, 2462, 2482). | Woodpecker repo 47 pipeline 2486 | +| Gate-caught defect fixed | PR **#1304** (afterAll honors `dbAvailable`; both paths verified: dead-port 28 skipped + file passes; live-5433 28 passed). Review 180 (fred). | PR #1304 | +| First gated green npm publish | Push pipeline **2488** (post-#1304): `verify` GREEN → `build` GREEN → `publish-next-npm` GREEN, all publish effects behind the gate. | Woodpecker pipeline 2488 | +| Negative controls | PR **#1305**: structural DAG tests (S1 missing edge, S2 renamed effect incl. command-based npm/kaniko detection, S3 detach, S4 failure:ignore/success override, S5 when-filter, S6 HEAD-mover between verify and publish with legitimate-recheckout positive control, S7 removal) + subset-stage composition control in verify-release.test.mjs. Mutation-verified by the dispatching seat in both directions (true bypass → S1 assertion fires; non-bypass edit → correctly green). Scripts tests 20/20, CI 2490 green. | PR #1305 | +| ⏳ Canonical command | `scripts/verify-release.mjs` (stage table pinned to ci.yml by checked-in test). Merged with #1277. | `scripts/verify-release.mjs` | + +## RI-N2 — Forge + MACP fail-closed (typed explicit simulation) + +- ⏳ Forge: PR **#1278** (head 4917df1f; CI 2477 green; forge 116/116 at head). Merge pending review at rebased head. +- ⏳ MACP: PR **#1293** (head 2097379e; CI 2465 green; review 173). Merge queued. +- Post-merge behavior docs: PR **#1299** (README + mosaic-forge SKILL.md; merges after #1278). + +## RI-N3 — PRD authority + +- ⏳ PR **#1294** (head 8d258e1d; CI 2466 green; review 174). Merge queued. + +## RI-N4 — Quality-rails evaluator + +- ⏳ Probe inventory: PR **#1302** (CI 2484 green). Review pending. +- ⏳ TS evaluator absorbs shell probes: RI-3-002, dispatch after #1302 merges. + +## RI-N5 — Consequence-aware stale UI + +- ⏳ PR **#1300** (head a337d787; CI 2481 green; review 179). Web suite 199 → 281 tests (failure matrix + negative controls), independently re-run by the dispatching seat. Merge queued. + +## Known-open infrastructure item (not a card) + +Gateway/ci-base **image** pushes fail on registry credentials: Woodpecker repo +secrets `REGISTRY_USERNAME`/`REGISTRY_PASSWORD` are rejected by the Gitea +container registry (explicit `UNAUTHORIZED` at `/v2/token`; pipeline 2494 after +PR #1306 corrected the secret references — previously masked as an ambiguous +push-permission error since at least 2439). Requires a package-scoped token +(Jason). The npm publish path is green and gated; this item tracks image pushes +only and predates the RI-050 floor. + +## Process record (audit trail) + +- Merges executed under the jarvis principal (topher seat; identity provisioning + pending) via the Gitea API replicating `pr-merge.sh` semantics (head-pin + + squash + keep branch): `pr-merge.sh` hard-codes `main`-only targets and cannot + express this repo's `next` trunk — wrapper gap captured to OpenBrain + (id 9db7a95a) and to the framework queue. +- Reviews tonight: 175/178 (zane's #1298, both heads, by topher); 176/177/179/ + 180/181/182 (fred) — cross-review rule (producer ≠ reviewer) held on every + merge: producers were pi workers / zane; reviewers were the other seat. +- CI contention note: concurrent PR pipelines on the single CI agent can time + out the web SPA suite (measured 2470/2472 vs serialized 2475/2476/2477); + serialize retries when the queue is busy.