Coop Testing And Validation
Date: March 13, 2026
This document tracks the validation entrypoints. The full operator flow, demo setup, and deploy steps live in demo-and-deploy-runbook.md.
Core Commands
List all suites:
bun run validate list
Fast confidence:
bun run validate smoke
Main extension workflow:
bun run validate core-loop
Receiver slice:
bun run validate receiver-slice
Final pre-demo production slice:
bun run validate production-readiness
Opt-in live Smart Session rehearsal:
bun run validate session-key-live
What The Named Suites Cover
smoke: unit tests plus workspace buildcore-loop: unit tests, build, then the two-profile extension flowreceiver-slice: unit tests, build, app shell checks, then pair + sync into extension intakereceiver-hardening: lint, unit tests, build, then receiver sync with the sidepanel closedflow-board: targeted board/archive tests plus focused Playwright checksagent-loop: trusted-node agent tests plus focused operator-console E2Eproduction-readiness: lint, build, targeted agent/onchain/session-key tests, extension E2E, receiver sync E2E, agent-loop E2E, and mobile app coveragesession-key-live: lint, targeted onchain/session-key tests, build, then an opt-in live Smart Session probe
Targeted Test Entry Points
bun run test:unit:onchain-config
bun run test:unit:agent-loop
bun run test:unit:session-key
bun run test:e2e:extension
bun run test:e2e:receiver-sync
bun run test:e2e:agent-loop
bun run test:e2e:app:mobile
Local Safety Defaults
Keep these defaults for normal local development:
VITE_COOP_CHAIN=sepolia
VITE_COOP_ONCHAIN_MODE=mock
VITE_COOP_ARCHIVE_MODE=mock
VITE_COOP_SESSION_MODE=off
Local validation and demo env guidance should come from the repo-root .env.local and the
runbook, not package-local env files.
Live Validation
Safe Probe
Use this when validating Safe deployment without live archive or session-key execution:
bun run validate arbitrum-safe-live
Required env:
VITE_PIMLICO_API_KEYCOOP_ONCHAIN_PROBE_PRIVATE_KEY
Optional:
COOP_ONCHAIN_PROBE_CHAIN=arbitrum
Session-Key Probe
Use this when validating bounded Smart Session execution onchain:
bun run validate session-key-live
Required env:
VITE_PIMLICO_API_KEYCOOP_SESSION_PROBE_PRIVATE_KEY
Optional:
COOP_SESSION_PROBE_CHAIN=arbitrum
This probe:
- deploys or reuses a probe Safe
- enables a bounded Smart Session
- executes one allowed
green-goods-create-gardenaction - confirms a disallowed action is rejected before send
- revokes the session and confirms subsequent rejection
Manual Adversarial Gates
Mirror these checks from the runbook before demos or production pushes.
Create A Coop
- Preset-specific copy renders correctly.
- Friends, family, and personal never leak back to generic
communitylanguage. - State badges and extension icon states match the real runtime state.
- Onchain, archive, and session modes are visible in Settings.
Pair And Sync
- A second profile can join and see published state.
- Expired or inactive pairing fails clearly.
- Missing signaling and sidepanel-closed sync fail safely.
- Local-only fallback remains usable.
Receiver Capture
/pair,/receiver, and/inboxwork on local and production origins.- QR, share, notifications, badges, and file export degrade gracefully.
- Receiver bridge injection works on local and Vercel origins.
- Wrong-member and expired-pairing envelopes are rejected.
Agent Loop
- Manual round-up, observation capture, plan generation, and draft creation stay legible.
- Auto-run never bypasses action policy.
Green Goods Session Keys
- Allowed session-key action succeeds.
- Disallowed action is blocked before send.
- Replay stays blocked.
- Revoked, expired, or exhausted sessions are blocked.
- Missing Safe, missing Pimlico, wrong chain, and missing session material surface actionable errors.
Publish, Archive, And Export
- Publish reaches Feed and the board route.
- Archive receipts stay legible.
- Export works with file picker or download fallback.