Ledger
WEB-209
Admin Releases: catalog from release.json, lifecycle + checklist per version, patch-notes draft to the site
Evidence
From logs/evidence/WEB-209/. Click a thumbnail for the full image.
Tests
pass pgTAP incl. release gate (checklist, transitions, permissions) · 6.7 s · raw log
$ pnpm -s db:testfail admin e2e: releases (track, building → testing, release blocked by open checklist, release with reason, patch-notes draft opens in the editor), all sizes · 59.1 s · raw log
$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-209 pnpm exec playwright test tests/e2e/releases.spec.ts --workers=1 --reporter=linefail admin e2e: releases (track, building → testing, release blocked by open checklist, release with reason, patch-notes draft opens in the editor), all sizes · 182.5 s · raw log
$ cd apps/admin && ZOEN_EVIDENCE_TASK=WEB-209 pnpm exec playwright test tests/e2e/releases.spec.ts --workers=1 --reporter=linefail admin e2e: releases (track, building → testing, release blocked by open checklist, release with reason, patch-notes draft opens in the editor), all sizes · 78.4 s · raw log
$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-209 pnpm exec playwright test tests/e2e/releases.spec.ts --workers=1 --reporter=linepass pgTAP release gate: empty/partial checklists stay open, saves merge, unknown items refused · 6.5 s · raw log
$ pnpm db:testpass admin e2e: releases (track, building → testing, release blocked by open checklist, release with reason, patch-notes draft opens in the editor), all sizes · 206.9 s · raw log
$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-209 pnpm exec playwright test tests/e2e/releases.spec.ts --workers=1 --reporter=lineNotes
2026-10-04 21:12 UTC · Releases module: versions from release.json, lifecycle planned → building → testing → released (or withdrawn), per-version checklist, patch-notes draft linked to the site editor. The first e2e run caught a real gate bug: an empty checklist from the console passed the release check. Fixed in ops.set_release (missing items count as open, saves merge into the stored checklist, unknown items refused) with 5 new pgTAP cases; friendly messages added for release, approval, AI and staff error codes. Evidence: logs/evidence/WEB-209/desktop/releases.png

