Ledger
WEB-206
Admin Approvals inbox: two-person rule (owner may self-approve), decisions with reasons + step-up for critical, handler registry, requester notified
Evidence
From logs/evidence/WEB-206/. Click a thumbnail for the full image.
Images (7)
Tests
fail admin e2e: approvals (GM can't self-approve, owner approves critical with reason + step-up, requester notified) + shell · 165.8 s · raw log
$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-206 pnpm exec playwright test tests/e2e/approvals.spec.ts tests/e2e/shell.spec.ts --workers=1 --reporter=linepass admin e2e: approvals (GM can't self-approve, owner approves critical with reason + step-up, requester notified) + shell · 460.2 s · raw log
$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-206 pnpm exec playwright test tests/e2e/approvals.spec.ts tests/e2e/shell.spec.ts --workers=1 --reporter=linepass pgTAP 125 incl. approvals two-person rule + GM grant requests · 29.0 s · raw log
$ pnpm -s db:testNotes
2026-10-04 18:33 UTC · Evidence logs/evidence/WEB-206/desktop/approvals.png. decide_approval: two-person rule except owners (solo operator), requester notified, complete_approval/expire_approvals; GM role gains gm.grant + players.compensate to *request* (approval required). Inbox shows own requests with a 'waiting for someone else' note. Handler registry (lib/approvals.ts) for kinds carried out on approval (GM panel adds grants with the game demo module).







